summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_4.s (renamed from asm/rom_8045FFC.s)30555
-rw-r--r--asm/battle_5.s582
-rw-r--r--asm/battle_7.s3815
-rw-r--r--asm/battle_814AEAC.s20
-rw-r--r--asm/battle_9.s2847
-rw-r--r--asm/battle_anim_80FE840.s10
-rw-r--r--asm/battle_anim_8170478.s24
-rw-r--r--asm/battle_controller_linkopponent.s6266
-rw-r--r--asm/battle_controller_opponent.s6676
-rw-r--r--asm/battle_controller_player.s10419
-rw-r--r--asm/battle_transition.s2
-rw-r--r--asm/berry_blender.s6
-rw-r--r--asm/berry_tag_screen.s2
-rw-r--r--asm/cable_car.s2
-rw-r--r--asm/contest.s20
-rw-r--r--asm/contest_link_80F57C4.s8
-rw-r--r--asm/contest_painting.s2
-rw-r--r--asm/credits.s2
-rw-r--r--asm/decoration.s18
-rw-r--r--asm/diploma.s2
-rw-r--r--asm/easy_chat.s4
-rw-r--r--asm/egg_hatch.s10
-rw-r--r--asm/evolution_scene.s6
-rw-r--r--asm/field_effect.s4
-rw-r--r--asm/field_region_map.s2
-rw-r--r--asm/front_pic_anim.s4
-rw-r--r--asm/hall_of_fame.s4
-rw-r--r--asm/intro.s6
-rw-r--r--asm/intro_credits_graphics.s2
-rw-r--r--asm/link.s36
-rw-r--r--asm/mail.s6
-rw-r--r--asm/main_menu.s4
-rw-r--r--asm/mon_markings.s2
-rw-r--r--asm/mystery_event_menu.s2
-rw-r--r--asm/naming_screen.s8
-rw-r--r--asm/option_menu.s2
-rw-r--r--asm/pokeblock_feed.s8
-rw-r--r--asm/pokedex.s2
-rw-r--r--asm/pokemon_3.s4
-rw-r--r--asm/porthole.s2
-rw-r--r--asm/region_map.s6
-rw-r--r--asm/reset_rtc_screen.s2
-rw-r--r--asm/rom3.s12
-rw-r--r--asm/rom4.s2
-rw-r--r--asm/rom5.s6
-rw-r--r--asm/rom6.s6
-rw-r--r--asm/rom_8034C54.s2
-rw-r--r--asm/rom_8072304.s14
-rw-r--r--asm/rom_80A5C6C.s2
-rw-r--r--asm/rom_80C6FA0.s36
-rw-r--r--asm/rom_813C5BC.s2
-rw-r--r--asm/rom_8158B30.s28
-rw-r--r--asm/rom_8184DA4.s82
-rw-r--r--asm/rom_81BAD84.s94
-rw-r--r--asm/roulette.s12
-rw-r--r--asm/save_failed_screen.s2
-rw-r--r--asm/script_menu.s2
-rw-r--r--asm/script_pokemon_util_80F87D8.s2
-rw-r--r--asm/shop.s4
-rw-r--r--asm/slot_machine.s4
-rw-r--r--asm/sprite.s34
-rw-r--r--asm/starter_choose.s2
-rw-r--r--asm/title_screen.s2
-rw-r--r--asm/trade.s18
-rw-r--r--asm/trainer_card.s4
-rw-r--r--asm/wallclock.s2
-rw-r--r--data/data3.s2
-rw-r--r--data/graphics/field_objects/field_effect_objects.inc6
-rw-r--r--include/global.h12
-rw-r--r--ld_script.txt8
-rw-r--r--src/sprite.c2
-rw-r--r--sym_ewram.txt15
72 files changed, 30944 insertions, 30879 deletions
diff --git a/asm/rom_8045FFC.s b/asm/battle_4.s
index 8ab9cc0c6..683f61c79 100644
--- a/asm/rom_8045FFC.s
+++ b/asm/battle_4.s
@@ -4,7 +4,8 @@
.syntax unified
.text
-
+
+
thumb_func_start atk00_attackcanceler
atk00_attackcanceler: @ 8045FFC
push {r4-r7,lr}
@@ -31155,30555 +31156,5 @@ sub_8056EF8: @ 8056EF8
.pool
thumb_func_end sub_8056EF8
- thumb_func_start sub_8056F28
-sub_8056F28: @ 8056F28
- push {r4-r6,lr}
- ldr r5, =gBattleResources
- ldr r6, =gBattleTypeFlags
- ldr r0, [r6]
- movs r1, 0x80
- lsls r1, 19
- ands r0, r1
- cmp r0, 0
- beq _08056F3E
- bl sub_81D55D0
-_08056F3E:
- ldr r4, =gBattleStruct
- movs r0, 0xA9
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x20
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0xA0
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1]
- movs r0, 0x10
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x4]
- movs r0, 0x24
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x8]
- movs r0, 0x24
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0xC]
- movs r0, 0xC
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x10]
- movs r0, 0x1C
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x14]
- movs r0, 0x54
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x18]
- movs r0, 0x24
- bl AllocZeroed
- ldr r1, [r5]
- str r0, [r1, 0x1C]
- ldr r4, =gUnknown_020244A0
- movs r5, 0x80
- lsls r5, 5
- adds r0, r5, 0
- bl AllocZeroed
- str r0, [r4]
- ldr r4, =gUnknown_020244A4
- adds r0, r5, 0
- bl AllocZeroed
- str r0, [r4]
- ldr r4, =gUnknown_0202305C
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- str r0, [r4]
- ldr r4, =gUnknown_02023060
- adds r0, r5, 0
- bl AllocZeroed
- str r0, [r4]
- ldr r0, [r6]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08056FFA
- ldr r0, =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gSaveBlock1Ptr
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- ldr r0, =0x00001a9c
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- bl create_enemy_party
-_08056FFA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8056F28
-
- thumb_func_start sub_8057028
-sub_8057028: @ 8057028
- push {r4-r6,lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 19
- ands r0, r1
- cmp r0, 0
- beq _0805703C
- bl sub_81D5694
-_0805703C:
- ldr r6, =gBattleResources
- ldr r0, [r6]
- cmp r0, 0
- beq _080570D0
- ldr r4, =gBattleStruct
- ldr r0, [r4]
- bl Free
- movs r5, 0
- str r5, [r4]
- ldr r0, [r6]
- ldr r0, [r0]
- bl Free
- ldr r0, [r6]
- str r5, [r0]
- ldr r0, [r0, 0x4]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0x4]
- ldr r0, [r0, 0x8]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0x8]
- ldr r0, [r0, 0xC]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0xC]
- ldr r0, [r0, 0x10]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0x10]
- ldr r0, [r0, 0x14]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0x14]
- ldr r0, [r0, 0x18]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0x18]
- ldr r0, [r0, 0x1C]
- bl Free
- ldr r0, [r6]
- str r5, [r0, 0x1C]
- bl Free
- str r5, [r6]
- ldr r4, =gUnknown_020244A0
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_020244A4
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0202305C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_02023060
- ldr r0, [r4]
- bl Free
- str r5, [r4]
-_080570D0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8057028
-
- thumb_func_start sub_80570F4
-sub_80570F4: @ 80570F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08057140
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x3
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gBattleMons
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- adds r1, r2
- adds r1, 0x2A
- muls r0, r4
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bls _0805714A
- adds r4, r3, 0
- b _0805714A
- .pool
-_08057140:
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
-_0805714A:
- ldr r2, =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r2
- adds r3, r0, 0
- adds r3, 0x2A
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x2A
- ldrb r0, [r3]
- ldrb r2, [r1]
- cmp r0, r2
- bls _080571B8
- ldrb r1, [r1]
- subs r0, r1
- cmp r0, 0x1D
- ble _08057198
- ldr r1, =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- bl happiness_algorithm
- b _080571CE
- .pool
-_08057198:
- ldr r1, =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl happiness_algorithm
- b _080571CE
- .pool
-_080571B8:
- ldr r1, =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl happiness_algorithm
-_080571CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80570F4
-
- thumb_func_start sub_80571DC
-sub_80571DC: @ 80571DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08057248
- movs r2, 0
- ldr r6, =gBattlePartyID
- lsls r3, r4, 1
- ldr r5, =gUnknown_0203CF00
- ldr r4, =gBattleStruct
-_080571FE:
- adds r0, r2, r5
- ldr r1, [r4]
- adds r1, r2, r1
- adds r1, 0x60
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _080571FE
- adds r0, r3, r6
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_81B8FB0
- movs r2, 0
- ldr r4, =gBattleStruct
- ldr r3, =gUnknown_0203CF00
-_08057236:
- ldr r0, [r4]
- adds r0, r2, r0
- adds r0, 0x60
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08057236
-_08057248:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80571DC
-
- thumb_func_start sub_805725C
-sub_805725C: @ 805725C
- 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 r9, r0
- movs r0, 0
- mov r8, r0
- ldr r1, =gBattleCommunication
- mov r10, r1
- b _08057284
- .pool
-_0805727C:
- mov r2, r8
- cmp r2, 0
- beq _08057284
- b _08057406
-_08057284:
- mov r1, r10
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _0805728E
- b _08057390
-_0805728E:
- cmp r0, 0x1
- ble _08057294
- b _080573FC
-_08057294:
- cmp r0, 0
- beq _0805729A
- b _080573FC
-_0805729A:
- ldr r6, =gBattleMons
- movs r0, 0x58
- mov r5, r9
- muls r5, r0
- adds r0, r6, 0
- adds r0, 0x4C
- adds r4, r5, r0
- ldr r0, [r4]
- movs r7, 0x7
- ands r0, r7
- cmp r0, 0
- beq _08057372
- mov r0, r9
- bl sub_8050650
- lsls r0, 24
- cmp r0, 0
- beq _080572FC
- ldr r0, [r4]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r4]
- adds r2, r6, 0
- adds r2, 0x50
- adds r2, r5, r2
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- movs r0, 0x1
- mov r2, r10
- strb r0, [r2, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB220
- str r0, [r1]
- movs r0, 0x2
- mov r8, r0
- b _08057372
- .pool
-_080572FC:
- adds r0, r5, r6
- adds r0, 0x20
- ldrb r0, [r0]
- movs r2, 0x1
- cmp r0, 0x30
- bne _0805730A
- movs r2, 0x2
-_0805730A:
- ldr r1, [r4]
- adds r0, r1, 0
- ands r0, r7
- cmp r0, r2
- bcs _0805731E
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r4]
- b _08057322
-_0805731E:
- subs r0, r1, r2
- str r0, [r4]
-_08057322:
- ldr r2, =gBattleMons
- movs r0, 0x58
- mov r1, r9
- 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 _08057354
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB213
- str r0, [r1]
- movs r1, 0x2
- mov r8, r1
- b _08057372
- .pool
-_08057354:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r0, =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB220
- str r0, [r1]
- movs r2, 0x2
- mov r8, r2
-_08057372:
- ldr r1, =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r10, r1
- b _080573FC
- .pool
-_08057390:
- ldr r1, =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r0, [r4]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080573F4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080573D4
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB26A
- str r0, [r1]
- b _080573EC
- .pool
-_080573D4:
- ldr r0, [r4]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, =gBattlescriptCurrInstr
- ldr r0, =gUnknown_082DB277
- str r0, [r1]
- mov r0, r10
- strb r5, [r0, 0x5]
-_080573EC:
- movs r1, 0x2
- mov r8, r1
- ldr r2, =gBattleCommunication
- mov r10, r2
-_080573F4:
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080573FC:
- mov r2, r10
- ldrb r0, [r2]
- cmp r0, 0x2
- beq _08057406
- b _0805727C
-_08057406:
- mov r0, r8
- cmp r0, 0x2
- bne _08057430
- ldr r4, =gActiveBank
- mov r1, r9
- strb r1, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, =gUnknown_020240D0
- 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
-_08057430:
- mov r0, r8
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_805725C
-
- thumb_func_start nullsub_21
-nullsub_21: @ 8057458
- bx lr
- thumb_func_end nullsub_21
-
- thumb_func_start SetBankFuncToPlayerBufferRunCommand
-SetBankFuncToPlayerBufferRunCommand: @ 805745C
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =PlayerBufferRunCommand
- str r1, [r0]
- ldr r0, =gDoingBattleAnim
- movs r1, 0
- strb r1, [r0]
- ldr r0, =gUnknown_020244CC
- strb r1, [r0]
- bx lr
- .pool
- thumb_func_end SetBankFuncToPlayerBufferRunCommand
-
- thumb_func_start PlayerBufferExecCompleted
-PlayerBufferExecCompleted: @ 805748C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gBattleBankFunc
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =PlayerBufferRunCommand
- str r1, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080574E0
- bl link_get_multiplayer_id
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl PrepareBufferDataTransferLink
- ldr r1, =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _080574F2
- .pool
-_080574E0:
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_080574F2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayerBufferExecCompleted
-
- thumb_func_start PlayerBufferRunCommand
-PlayerBufferRunCommand: @ 8057504
- push {lr}
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08057550
- ldr r0, =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0805754C
- ldr r0, =gPlayerBufferCommands
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08057550
- .pool
-_0805754C:
- bl PlayerBufferExecCompleted
-_08057550:
- pop {r0}
- bx r0
- thumb_func_end PlayerBufferRunCommand
-
- thumb_func_start bx_0802E404
-bx_0802E404: @ 8057554
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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 _08057576
- bl PlayerBufferExecCompleted
-_08057576:
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_0802E404
-
- thumb_func_start sub_8057588
-sub_8057588: @ 8057588
- push {r4-r7,lr}
- ldr r3, =gBattleBufferA
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r3, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r3, 0x3
- adds r2, r3
- 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, =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _080575EC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x2
- bne _080575EC
- ldr r1, =gUnknown_020244CC
- ldrb r0, [r1]
- adds r0, 0x1
- b _080575F0
- .pool
-_080575EC:
- ldr r1, =gUnknown_020244CC
- movs r0, 0
-_080575F0:
- strb r0, [r1]
- ldr r0, =gMain
- ldrh r2, [r0, 0x2E]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08057658
- movs r0, 0x5
- bl audio_play
- ldr r1, =gUnknown_020244AC
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08057640
- cmp r0, 0x1
- bgt _08057630
- cmp r0, 0
- beq _0805763A
- b _080577C2
- .pool
-_08057630:
- cmp r0, 0x2
- beq _08057646
- cmp r0, 0x3
- beq _0805764C
- b _080577C2
-_0805763A:
- movs r0, 0x1
- movs r1, 0
- b _080577BC
-_08057640:
- movs r0, 0x1
- movs r1, 0x1
- b _080577BC
-_08057646:
- movs r0, 0x1
- movs r1, 0x2
- b _080577BC
-_0805764C:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _080577C2
-_08057658:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08057698
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08057674
- b _080577E8
-_08057674:
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _08057732
- .pool
-_08057698:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080576D8
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080576B4
- b _080577E8
-_080576B4:
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _08057732
- .pool
-_080576D8:
- movs r7, 0x40
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- beq _08057700
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080577E8
- b _0805771A
- .pool
-_08057700:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0805774C
- ldr r5, =gUnknown_020244AC
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080577E8
-_0805771A:
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8059CF8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_08057732:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8059CB4
- b _080577E8
- .pool
-_0805774C:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _0805775A
- ldrb r0, [r1]
- cmp r0, 0x3B
- bls _080577DC
-_0805775A:
- ldr r4, =gBattleTypeFlags
- ldr r0, [r4]
- ands r0, r3
- cmp r0, 0
- beq _080577E8
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080577E8
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080577E8
- ldr r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080577E8
- ldr r0, =gBattleBufferA
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _080577B2
- cmp r5, 0xC
- bhi _080577E8
- adds r0, r5, 0
- movs r1, 0x1
- bl bag_add_item
-_080577B2:
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- movs r1, 0xC
-_080577BC:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080577C2:
- bl PlayerBufferExecCompleted
- b _080577E8
- .pool
-_080577DC:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080577E8
- bl sub_8073314
-_080577E8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8057588
-
- thumb_func_start sub_80577F0
-sub_80577F0: @ 80577F0
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057824
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80577F0
-
- thumb_func_start sub_8057824
-sub_8057824: @ 8057824
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, =gUnknown_0831C5F8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldr r0, =gUnknown_03005D74
- ldrb r0, [r0]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl dp11b_obj_instanciate
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r0, 0
- beq _08057866
-_0805784A:
- ldr r0, =gUnknown_03005D74
- ldrb r0, [r0]
- cmp r4, r0
- beq _0805785C
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0x1
- bl dp11b_obj_free
-_0805785C:
- adds r4, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _0805784A
-_08057866:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _0805789C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x2
- bne _0805789C
- ldr r1, =gUnknown_020244CC
- ldrb r0, [r1]
- adds r0, 0x1
- b _080578A0
- .pool
-_0805789C:
- ldr r1, =gUnknown_020244CC
- movs r0, 0
-_080578A0:
- strb r0, [r1]
- ldrh r2, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08057910
- movs r0, 0x5
- bl audio_play
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r4, =gUnknown_03005D74
- 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, =sub_8039B2C
- str r1, [r0]
- ldr r1, =gUnknown_020244B0
- ldr r0, =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 _08057BC8
- .pool
-_08057910:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _0805791E
- ldrb r0, [r1]
- cmp r0, 0x3B
- bls _0805798C
-_0805791E:
- movs r0, 0x5
- bl audio_play
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r5, =gUnknown_03005D74
- 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, =sub_8039B2C
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057BFC
- 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 _08057BC8
- .pool
-_0805798C:
- movs r0, 0x60
- ands r0, r2
- cmp r0, 0
- bne _08057996
- b _08057AB0
-_08057996:
- movs r0, 0x5
- bl audio_play
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r3, =gUnknown_03005D74
- 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, =sub_8039B2C
- str r1, [r0]
- adds r5, r3, 0
-_080579B8:
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _080579E2
- .pool
-_080579D8:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080579E8
- mov r2, sp
- adds r0, r2, r4
-_080579E2:
- ldrb r0, [r0]
- cmp r1, r0
- bne _080579D8
-_080579E8:
- subs r4, 0x1
- cmp r4, 0
- bge _080579F0
- movs r4, 0x4
-_080579F0:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl GetBankByPlayerAI
- strb r0, [r5]
- ldr r1, =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _080579E8
- movs r4, 0
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08057A6E
- cmp r0, 0x1
- bgt _08057A28
- cmp r0, 0
- beq _08057A32
- b _08057A70
- .pool
-_08057A28:
- cmp r0, 0x2
- beq _08057A32
- cmp r0, 0x3
- beq _08057A6E
- b _08057A70
-_08057A32:
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _08057A6E
- ldr r1, =gBattlePartyID
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gUnknown_020244B0
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, =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 _08057A70
-_08057A6E:
- adds r4, 0x1
-_08057A70:
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, =gUnknown_03005D74
- cmp r1, 0
- beq _08057A88
- movs r4, 0
-_08057A88:
- cmp r4, 0
- beq _080579B8
- b _08057BB0
- .pool
-_08057AB0:
- movs r0, 0x90
- ands r0, r2
- cmp r0, 0
- bne _08057ABA
- b _08057BC8
-_08057ABA:
- movs r0, 0x5
- bl audio_play
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r3, =gUnknown_03005D74
- 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, =sub_8039B2C
- str r1, [r0]
- adds r5, r3, 0
-_08057ADC:
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _08057B06
- .pool
-_08057AFC:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08057B0C
- mov r2, sp
- adds r0, r2, r4
-_08057B06:
- ldrb r0, [r0]
- cmp r1, r0
- bne _08057AFC
-_08057B0C:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08057B14
- movs r4, 0
-_08057B14:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl GetBankByPlayerAI
- strb r0, [r5]
- ldr r1, =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _08057B0C
- movs r4, 0
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08057B92
- cmp r0, 0x1
- bgt _08057B4C
- cmp r0, 0
- beq _08057B56
- b _08057B94
- .pool
-_08057B4C:
- cmp r0, 0x2
- beq _08057B56
- cmp r0, 0x3
- beq _08057B92
- b _08057B94
-_08057B56:
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _08057B92
- ldr r1, =gBattlePartyID
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gUnknown_020244B0
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, =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 _08057B94
-_08057B92:
- adds r4, 0x1
-_08057B94:
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, =gUnknown_03005D74
- cmp r1, 0
- beq _08057BAC
- movs r4, 0
-_08057BAC:
- cmp r4, 0
- beq _08057ADC
-_08057BB0:
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- 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, =sub_8039AD8
- str r1, [r0]
-_08057BC8:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8057824
-
- thumb_func_start sub_8057BFC
-sub_8057BFC: @ 8057BFC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- ldr r1, =gUnknown_02023068
- adds r6, r0, r1
- ldr r2, =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0xF0
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _08057C44
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x2
- bne _08057C44
- ldr r1, =gUnknown_020244CC
- ldrb r0, [r1]
- adds r0, 0x1
- b _08057C48
- .pool
-_08057C44:
- ldr r1, =gUnknown_020244CC
- movs r0, 0
-_08057C48:
- strb r0, [r1]
- ldrh r2, [r2, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- bne _08057C58
- b _08057E04
-_08057C58:
- movs r0, 0x5
- bl audio_play
- ldr r1, =gUnknown_020244B0
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, 0xAE
- bne _08057C98
- ldrb r0, [r6, 0x12]
- movs r4, 0
- cmp r0, 0x7
- beq _08057CA6
- 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 _08057CA6
- .pool
-_08057C98:
- ldr r2, =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x6]
-_08057CA6:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _08057CC4
- ldr r0, =gUnknown_03005D74
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- strb r1, [r0]
- b _08057CDE
- .pool
-_08057CC4:
- ldr r0, =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, =gUnknown_03005D74
- strb r0, [r1]
-_08057CDE:
- ldr r5, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- lsls r2, r3, 9
- adds r1, r5, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0
- bne _08057D18
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _08057D5A
- adds r0, r5, 0x2
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08057D5A
- movs r0, 0x1
- add r8, r0
- b _08057D5A
- .pool
-_08057D18:
- movs r0, 0x7D
- ands r0, r4
- cmp r0, 0
- bne _08057D24
- movs r0, 0x1
- add r8, r0
-_08057D24:
- ldr r0, =gUnknown_020244B0
- adds r0, r3, r0
- adds r1, r6, 0
- adds r1, 0x8
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _08057D62
- movs r0, 0x12
- ands r0, r4
- cmp r0, 0
- bne _08057D5A
- movs r0, 0
- bl sub_8069DEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08057D5A
- ldrb r0, [r7]
- bl sub_8069F34
- ldr r1, =gUnknown_03005D74
- strb r0, [r1]
- movs r0, 0
- mov r8, r0
-_08057D5A:
- ldr r7, =gActiveBank
- mov r0, r8
- cmp r0, 0
- bne _08057D80
-_08057D62:
- ldr r1, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r0, r1
- ldrb r2, [r0]
- ldr r0, =gUnknown_03005D74
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- b _08057E1C
- .pool
-_08057D80:
- ldr r1, =gBattleBankFunc
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057824
- str r1, [r0]
- movs r0, 0x12
- ands r4, r0
- cmp r4, 0
- beq _08057DA8
- ldr r1, =gUnknown_03005D74
- ldrb r0, [r7]
- b _08057DD8
- .pool
-_08057DA8:
- movs r0, 0x1
- bl GetBankByPlayerAI
- ldr r1, =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08057DD0
- movs r0, 0x3
- b _08057DD2
- .pool
-_08057DD0:
- movs r0, 0x1
-_08057DD2:
- bl GetBankByPlayerAI
- ldr r1, =gUnknown_03005D74
-_08057DD8:
- strb r0, [r1]
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =gUnknown_03005D74
- 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, =sub_8039AD8
- b _08057F9C
- .pool
-_08057E04:
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- bne _08057E14
- ldrb r0, [r1]
- cmp r0, 0x3B
- bls _08057E30
-_08057E14:
- movs r0, 0x5
- bl audio_play
- ldr r2, =0x0000ffff
-_08057E1C:
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl PlayerBufferExecCompleted
- b _08057F9E
- .pool
-_08057E30:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08057E60
- ldr r4, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r2, r0, r4
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08057E4A
- b _08057F9E
-_08057E4A:
- ldrb r0, [r2]
- bl battle_menu_cursor_related
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- b _08057F08
- .pool
-_08057E60:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _08057EA4
- ldr r4, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r3, r0, r4
- ldrb r2, [r3]
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08057E7C
- b _08057F9E
-_08057E7C:
- ldr r1, =gUnknown_03005D78
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08057E8A
- b _08057F9E
-_08057E8A:
- ldrb r0, [r3]
- bl battle_menu_cursor_related
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r6
- b _08057F08
- .pool
-_08057EA4:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08057ED4
- ldr r4, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r2, r0, r4
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08057F9E
- ldrb r0, [r2]
- bl battle_menu_cursor_related
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- b _08057F08
- .pool
-_08057ED4:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08057F30
- ldr r4, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r3, r0, r4
- ldrb r2, [r3]
- movs r5, 0x2
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- bne _08057F9E
- ldr r1, =gUnknown_03005D78
- adds r0, r5, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08057F9E
- ldrb r0, [r3]
- bl battle_menu_cursor_related
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r5
-_08057F08:
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
- bl sub_8059B3C
- bl sub_8059BB0
- b _08057F9E
- .pool
-_08057F30:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _08057F9E
- ldr r0, =gUnknown_03005D78
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _08057F9E
- ldr r0, =gBattleTypeFlags
- ldr r5, [r0]
- ands r5, r6
- cmp r5, 0
- bne _08057F9E
- ldr r4, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1D
- bl battle_menu_cursor_related_2
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08057F78
- ldr r0, =gUnknown_03005D74
- strb r5, [r0]
- b _08057F80
- .pool
-_08057F78:
- ldr r1, =gUnknown_03005D74
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_08057F80:
- ldrb r0, [r0]
- movs r1, 0x1B
- bl battle_menu_cursor_related_2
- ldr r0, =gUnknown_085CCACA
- movs r1, 0xB
- bl battle_show_message_maybe
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8058138
-_08057F9C:
- str r1, [r0]
-_08057F9E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8057BFC
-
- thumb_func_start sub_8057FBC
-sub_8057FBC: @ 8057FBC
- push {r4-r7,lr}
- movs r7, 0
- ldr r4, =gMain
- ldrh r1, [r4, 0x2E]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08057FD6
- movs r0, 0x5
- bl audio_play
- movs r7, 0x1
-_08057FD6:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08057FF8
- movs r0, 0x5
- bl audio_play
- ldr r1, =gUnknown_02022E14
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gUnknown_02022E16
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- movs r7, 0xFF
-_08057FF8:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08058038
- ldr r5, =gUnknown_020244B0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r2, r0, r5
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08058038
- ldrb r0, [r2]
- bl battle_menu_cursor_related
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
-_08058038:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08058086
- ldr r5, =gUnknown_020244B0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r3, r0, r5
- ldrb r2, [r3]
- movs r6, 0x1
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08058086
- ldr r1, =gUnknown_03005D78
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08058086
- ldrb r0, [r3]
- bl battle_menu_cursor_related
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- eors r0, r6
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
-_08058086:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080580C8
- ldr r5, =gUnknown_020244B0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r2, r0, r5
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080580C8
- ldrb r0, [r2]
- bl battle_menu_cursor_related
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
-_080580C8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08058116
- ldr r5, =gUnknown_020244B0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r3, r0, r5
- ldrb r2, [r3]
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _08058116
- ldr r1, =gUnknown_03005D78
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08058116
- ldrb r0, [r3]
- bl battle_menu_cursor_related
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- eors r0, r6
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
-_08058116:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8057FBC
-
- thumb_func_start sub_8058138
-sub_8058138: @ 8058138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- bne _08058152
- b _08058500
-_08058152:
- movs r0, 0x5
- bl audio_play
- ldr r0, =gUnknown_020244B0
- mov r10, r0
- ldr r1, =gActiveBank
- mov r8, r1
- ldrb r1, [r1]
- adds r2, r1, r0
- ldr r5, =gUnknown_03005D74
- ldrb r0, [r2]
- ldrb r3, [r5]
- cmp r0, r3
- bne _08058170
- b _080584A8
-_08058170:
- lsls r1, 9
- ldr r0, =gUnknown_02023068
- 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, =gDisableStructs
- adds r6, r0, r2
- ldrb r4, [r6, 0x18]
- lsls r3, r4, 24
- lsrs r2, r3, 28
- ldr r0, =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 _0805822A
- 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, =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]
-_0805822A:
- bl sub_8059AAC
- movs r6, 0
- mov r12, r7
- mov r5, sp
- adds r5, 0x18
- str r5, [sp, 0x1C]
- ldr r2, =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
-_0805824E:
- mov r1, sp
- adds r3, r1, r6
- 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 _0805824E
- ldr r1, =gUnknown_020244B0
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- add r0, sp
- ldrb r0, [r0]
- ldr r2, [sp, 0x1C]
- strb r0, [r2]
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- mov r3, sp
- adds r2, r3, r0
- ldr r1, =gUnknown_03005D74
- ldrb r0, [r1]
- add r0, sp
- ldrb r0, [r0]
- movs r3, 0
- strb r0, [r2]
- ldrb r0, [r1]
- mov r5, sp
- adds r1, r5, r0
- ldr r2, [sp, 0x1C]
- ldrb r0, [r2]
- strb r0, [r1]
- strb r3, [r2]
- movs r6, 0
- ldr r2, [sp, 0x1C]
-_0805829E:
- mov r3, sp
- adds r0, r3, r6
- 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 _0805829E
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x3B
- ldr r5, [sp, 0x1C]
- ldrb r1, [r5]
- strb r1, [r0]
- movs r6, 0
- adds r4, r7, 0
- movs r3, 0x58
- movs r0, 0x24
- add r0, r10
- mov r8, r0
- mov r2, r9
- mov r7, r10
- adds r7, 0xC
- mov r5, r12
-_080582D8:
- 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 _080582D8
- ldr r2, =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 _0805831A
- b _080584A8
-_0805831A:
- movs r6, 0
- mov r1, sp
- adds r1, 0x4
- str r1, [sp, 0x20]
- add r3, sp, 0xC
- mov r10, r3
- ldr r5, =gBattlePartyID
- mov r9, r5
- mov r8, r2
- movs r7, 0x64
- ldr r5, =gPlayerParty
- adds r4, r1, 0
-_08058332:
- 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 _08058332
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- ldr r5, [sp, 0x1C]
- strb r0, [r5]
- movs r6, 0
- movs r5, 0x3
- ldr r4, [sp, 0x1C]
-_08058392:
- mov r0, sp
- adds r3, r0, r6
- 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 _08058392
- ldr r4, =gUnknown_020244B0
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 1
- ldr r2, [sp, 0x20]
- adds r1, r2, r1
- ldrh r6, [r1]
- ldr r2, =gUnknown_03005D74
- ldrb r0, [r2]
- lsls r0, 1
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldrh r0, [r0]
- movs r5, 0
- strh r0, [r1]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r1, [sp, 0x20]
- 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
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- mov r3, sp
- adds r1, r3, r0
- ldrb r0, [r2]
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- adds r1, r3, r0
- ldr r2, [sp, 0x1C]
- ldrb r0, [r2]
- strb r0, [r1]
- strb r5, [r2]
- movs r6, 0
- ldr r2, [sp, 0x1C]
-_0805841E:
- mov r3, sp
- adds r0, r3, r6
- 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 _0805841E
- movs r6, 0
- ldr r5, =gBattlePartyID
- mov r10, r5
- ldr r0, =gActiveBank
- mov r9, r0
- movs r1, 0x64
- mov r8, r1
- ldr r7, =gPlayerParty
- ldr r5, [sp, 0x20]
- adds r5, 0x8
- ldr r4, [sp, 0x20]
-_0805844A:
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0xD
- adds r2, r4, 0
- bl SetMonData
- 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, 0x11
- adds r2, r5, 0
- bl SetMonData
- adds r5, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0805844A
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- ldr r2, [sp, 0x1C]
- bl SetMonData
-_080584A8:
- ldr r1, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057BFC
- str r1, [r0]
- ldr r3, =gUnknown_020244B0
- ldrb r0, [r2]
- adds r0, r3
- ldr r1, =gUnknown_03005D74
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
- b _08058532
- .pool
-_08058500:
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _08058554
- movs r0, 0x5
- bl audio_play
- ldr r0, =gUnknown_03005D74
- ldrb r0, [r0]
- bl battle_menu_cursor_related
- ldr r1, =gUnknown_020244B0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057BFC
- str r1, [r0]
-_08058532:
- bl sub_8059B18
- bl sub_8059B3C
- bl sub_8059BB0
- b _080586E8
- .pool
-_08058554:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080585A4
- ldr r3, =gUnknown_03005D74
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0805856A
- b _080586E8
-_0805856A:
- ldr r0, =gUnknown_020244B0
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _08058590
-_08058578:
- ldrb r0, [r1]
- movs r1, 0x1D
- bl battle_menu_cursor_related_2
- b _08058596
- .pool
-_08058590:
- ldrb r0, [r3]
- bl battle_menu_cursor_related
-_08058596:
- ldr r4, =gUnknown_03005D74
- ldrb r0, [r4]
- movs r1, 0x1
- b _0805862C
- .pool
-_080585A4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080585E8
- ldr r3, =gUnknown_03005D74
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080585BA
- b _080586E8
-_080585BA:
- ldr r1, =gUnknown_03005D78
- movs r0, 0x1
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080585C8
- b _080586E8
-_080585C8:
- ldr r0, =gUnknown_020244B0
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- beq _08058578
- b _08058590
- .pool
-_080585E8:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0805865C
- ldr r3, =gUnknown_03005D74
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080586E8
- ldr r0, =gUnknown_020244B0
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _08058620
- ldrb r0, [r1]
- movs r1, 0x1D
- bl battle_menu_cursor_related_2
- b _08058626
- .pool
-_08058620:
- ldrb r0, [r3]
- bl battle_menu_cursor_related
-_08058626:
- ldr r4, =gUnknown_03005D74
- ldrb r0, [r4]
- movs r1, 0x2
-_0805862C:
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl audio_play
- ldr r1, =gUnknown_020244B0
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _080586CA
- ldrb r0, [r4]
- movs r1, 0x1B
- bl battle_menu_cursor_related_2
- b _080586E8
- .pool
-_0805865C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080586E8
- ldr r3, =gUnknown_03005D74
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _080586E8
- ldr r1, =gUnknown_03005D78
- movs r0, 0x2
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080586E8
- ldr r0, =gUnknown_020244B0
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _080586A4
- ldrb r0, [r1]
- movs r1, 0x1D
- bl battle_menu_cursor_related_2
- b _080586AA
- .pool
-_080586A4:
- ldrb r0, [r3]
- bl battle_menu_cursor_related
-_080586AA:
- ldr r4, =gUnknown_03005D74
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl audio_play
- ldr r1, =gUnknown_020244B0
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _080586E0
-_080586CA:
- adds r0, r1, 0
- movs r1, 0
- bl battle_menu_cursor_related_2
- b _080586E8
- .pool
-_080586E0:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl battle_menu_cursor_related_2
-_080586E8:
- 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 sub_8058138
-
- thumb_func_start sub_80586F8
-sub_80586F8: @ 80586F8
- push {lr}
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805875C
- ldr r0, =gUnknown_03003124
- ldrb r0, [r0]
- cmp r0, 0
- bne _08058798
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, =gMain
- ldr r0, =0x00000439
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, =gUnknown_03005D00
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, =sub_8038D64
- bl SetMainCallback2
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08058738
- bl sub_817E3F4
-_08058738:
- bl FreeAllWindowBuffers
- b _08058798
- .pool
-_0805875C:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _08058798
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, =gMain
- ldr r0, =0x00000439
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, =gUnknown_03005D00
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, =sub_8038D64
- bl SetMainCallback2
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08058794
- bl sub_817E3F4
-_08058794:
- bl FreeAllWindowBuffers
-_08058798:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80586F8
-
- thumb_func_start sub_80587B0
-sub_80587B0: @ 80587B0
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08058832
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08058810
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _08058832
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _080587F0
- bl sub_800AC34
- b _080587F4
- .pool
-_080587F0:
- bl sub_800ADF8
-_080587F4:
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80586F8
- str r1, [r0]
- b _08058832
- .pool
-_08058810:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, =gMain
- ldr r0, =0x00000439
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, =gUnknown_03005D00
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08058832:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80587B0
-
- thumb_func_start sub_8058844
-sub_8058844: @ 8058844
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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, =DummyObjectCallback
- cmp r1, r0
- bne _08058868
- bl PlayerBufferExecCompleted
-_08058868:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8058844
-
- thumb_func_start sub_805887C
-sub_805887C: @ 805887C
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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, =DummyObjectCallback
- cmp r1, r0
- bne _080588A0
- bl PlayerBufferExecCompleted
-_080588A0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805887C
-
- thumb_func_start bx_802F7A0
-bx_802F7A0: @ 80588B4
- push {r4-r6,lr}
- ldr r6, =gSprites
- ldr r5, =gBankSpriteIds
- ldr r4, =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, =DummyObjectCallback
- cmp r1, r0
- bne _08058908
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- bl nullsub_25
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl obj_free_rotscale_entry
- 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
-_08058908:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_802F7A0
-
- thumb_func_start sub_8058924
-sub_8058924: @ 8058924
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r1, [r4]
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0805895C
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- bl PlayerBufferExecCompleted
-_0805895C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8058924
-
- thumb_func_start sub_805896C
-sub_805896C: @ 805896C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08058998
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080589D0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080589D0
-_08058998:
- ldr r2, =gSprites
- ldr r1, =gUnknown_03005D70
- ldr r3, =gActiveBank
- 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, [r0]
- ldr r0, =DummyObjectCallback
- mov r10, r3
- cmp r1, r0
- bne _08058A0A
- b _08058A0E
- .pool
-_080589D0:
- ldr r3, =gSprites
- ldr r6, =gUnknown_03005D70
- ldr r2, =gActiveBank
- ldrb r4, [r2]
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r3, 0
- adds r5, 0x1C
- adds r0, r5
- ldr r3, [r0]
- ldr r0, =DummyObjectCallback
- mov r10, r2
- cmp r3, r0
- bne _08058A0A
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- cmp r0, r3
- bne _08058A0A
- movs r7, 0x1
-_08058A0A:
- cmp r7, 0
- beq _08058B08
-_08058A0E:
- ldr r0, =gUnknown_020244D0
- mov r9, r0
- ldr r0, [r0]
- mov r6, r10
- ldrb r2, [r6]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r3
- ldrb r1, [r4, 0x1]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08058B08
- movs r1, 0x2
- mov r8, r1
- mov r1, r8
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08058B08
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- mov r2, r9
- ldr r0, [r2]
- ldrb r2, [r6]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- mov r0, r9
- ldr r2, [r0]
- ldrb r0, [r6]
- mov r1, r8
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- mov r1, r9
- ldr r2, [r1]
- ldrb r0, [r6]
- mov r1, r8
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- ldr r7, =gBattlePartyID
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =gPlayerParty
- adds r0, r4
- bl sub_805E990
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08058AE4
- ldrb r0, [r6]
- mov r1, r8
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- bl sub_805E990
-_08058AE4:
- mov r2, r9
- ldr r0, [r2]
- mov r2, r10
- ldrb r1, [r2]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, =gBattleBankFunc
- mov r2, r10
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8058924
- str r1, [r0]
-_08058B08:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805896C
-
- thumb_func_start sub_8058B40
-sub_8058B40: @ 8058B40
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r7, =gActiveBank
- ldrb r2, [r7]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r5, 0x88
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08058B80
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_08058B80:
- ldr r1, [r4]
- ldrb r0, [r7]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- ldr r1, [r1, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08058BB2
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_08058BB2:
- ldr r0, [r4]
- ldrb r2, [r7]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r3
- ldrb r1, [r4]
- movs r5, 0x8
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08058C82
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08058C82
- ldrb r1, [r4, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08058C68
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08058C38
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08058C38
- ldr r4, =gUnknown_03005D70
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r7]
- eors r0, r6
- bl sub_8076918
- ldrb r0, [r7]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80729D0
-_08058C38:
- ldr r5, =gUnknown_03005D70
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r4]
- bl sub_8076918
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_80729D0
-_08058C68:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x1]
-_08058C82:
- ldr r5, =gUnknown_020244D0
- ldr r0, [r5]
- ldr r4, =gActiveBank
- ldrb r2, [r4]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x80
- bne _08058D32
- movs r1, 0x2
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08058D32
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _08058D32
- ldr r0, [r5]
- ldrb r1, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08058D14
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x42
- ands r0, r1
- cmp r0, 0x42
- bne _08058D08
- ldr r0, =gMPlay_BGM
- bl m4aMPlayContinue
- b _08058D14
- .pool
-_08058D08:
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08058D14:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x1
- mov r9, r0
-_08058D32:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08058D52
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08058DAC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08058DAC
-_08058D52:
- ldr r2, =gSprites
- ldr r0, =gUnknown_03005D7C
- ldr r1, =gActiveBank
- ldrb r4, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r3, [r0]
- ldr r0, =DummyObjectCallback
- cmp r3, r0
- bne _08058E0A
- ldr r0, =gBankSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r3
- bne _08058E0A
- b _08058E06
- .pool
-_08058DAC:
- ldr r2, =gSprites
- ldr r7, =gUnknown_03005D7C
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- adds r0, r3, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, =DummyObjectCallback
- cmp r4, r0
- bne _08058E0A
- ldr r6, =gBankSpriteIds
- adds r0, r3, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r5, [r0]
- cmp r5, r4
- bne _08058E0A
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r4, [r0]
- cmp r4, r5
- bne _08058E0A
- adds r0, r3, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _08058E0A
-_08058E06:
- movs r0, 0x1
- mov r8, r0
-_08058E0A:
- mov r0, r9
- cmp r0, 0
- beq _08058EAA
- mov r0, r8
- cmp r0, 0
- beq _08058EAA
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08058E48
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08058E48
- ldr r2, =gUnknown_03005D7C
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
-_08058E48:
- ldr r1, =gUnknown_03005D7C
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r0, [r3]
- ldrb r2, [r4]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r0, [r3]
- ldrb r2, [r4]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805896C
- str r1, [r0]
-_08058EAA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8058B40
-
- thumb_func_start sub_8058EDC
-sub_8058EDC: @ 8058EDC
- push {r4-r6,lr}
- ldr r2, =gSprites
- ldr r0, =gUnknown_03005D70
- ldr r6, =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 r4, [r0]
- ldr r0, =DummyObjectCallback
- cmp r4, r0
- bne _08058F94
- ldr r5, =gUnknown_020244D0
- ldr r0, [r5]
- ldr r1, [r0, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08058F94
- ldr r0, =gBankSpriteIds
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _08058F94
- adds r0, r3, 0
- bl sub_805E408
- ldr r0, [r5]
- ldrb r2, [r6]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r2, [r6]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- ldr r0, [r5]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08058F88
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_08058F88:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_8058FC0
- str r0, [r1]
-_08058F94:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8058EDC
-
- thumb_func_start sub_8058FC0
-sub_8058FC0: @ 8058FC0
- push {r4,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805900E
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _0805900E
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r2, =gBattlePartyID
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, =gPlayerParty
- adds r0, r2
- bl sub_805E990
- bl PlayerBufferExecCompleted
-_0805900E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8058FC0
-
- thumb_func_start sub_805902C
-sub_805902C: @ 805902C
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0805905E
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_0805905E:
- ldr r4, =gSprites
- ldr r0, =gUnknown_03005D7C
- 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, =DummyObjectCallback
- cmp r1, r0
- bne _080590D2
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080590D2
- adds r0, r3, r4
- bl DestroySprite
- ldr r4, =gUnknown_03005D70
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r5]
- bl sub_8076918
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80729D0
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8058EDC
- str r1, [r0]
-_080590D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805902C
-
- thumb_func_start c3_0802FDF4
-c3_0802FDF4: @ 8059100
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _08059122
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- adds r0, r4, 0
- bl DestroyTask
-_08059122:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c3_0802FDF4
-
- thumb_func_start bx_t1_healthbar_update
-bx_t1_healthbar_update: @ 8059130
- push {r4-r6,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- ldr r6, =gUnknown_03005D70
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8074AA0
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_80729D0
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08059178
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl heathbar_draw_hp
- b _08059192
- .pool
-_08059178:
- ldr r2, =gBattlePartyID
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, =gPlayerParty
- adds r0, r2
- bl sub_805E990
- bl PlayerBufferExecCompleted
-_08059192:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_t1_healthbar_update
-
- thumb_func_start sub_80591A0
-sub_80591A0: @ 80591A0
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080591B2
- bl PlayerBufferExecCompleted
-_080591B2:
- pop {r0}
- bx r0
- thumb_func_end sub_80591A0
-
- thumb_func_start sub_80591B8
-sub_80591B8: @ 80591B8
- 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, =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 _080591FE
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _080591FE
- b _08059314
-_080591FE:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, =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, =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, =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 _080592EC
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl pokemon_calc_effective_stats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, =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 battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080592D4
- ldr r2, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _080592B2
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _080592D4
-_080592B2:
- ldr r0, =sub_8059544
- b _08059316
- .pool
-_080592D4:
- ldr r0, =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_805965C
- b _08059318
- .pool
-_080592EC:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, =gBattleBankFunc
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, =sub_80591A0
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _0805931A
- .pool
-_08059314:
- ldr r0, =sub_8059330
-_08059316:
- mov r1, r8
-_08059318:
- str r0, [r1]
-_0805931A:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80591B8
-
- thumb_func_start sub_8059330
-sub_8059330: @ 8059330
- 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, =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, =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, =gExperienceTables
- lsls r1, r4, 2
- ldr r2, =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, =gUnknown_03005D70
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl sub_807294C
- movs r0, 0x21
- bl audio_play
- ldr r0, =sub_8059400
- 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
- .pool
- thumb_func_end sub_8059330
-
- thumb_func_start sub_8059400
-sub_8059400: @ 8059400
- 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, =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 _08059430
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _0805952C
- .pool
-_08059430:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, =gUnknown_03005D70
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8074AA0
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl sub_80729D0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0805952C
- movs r0, 0x21
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, =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, =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, =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 _08059510
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl pokemon_calc_effective_stats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, =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, =sub_8059544
- str r0, [r6]
- b _0805952C
- .pool
-_08059510:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, =gBattleBankFunc
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, =sub_80591A0
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_0805952C:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059400
-
- thumb_func_start sub_8059544
-sub_8059544: @ 8059544
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =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 _08059578
- ldr r1, =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 _08059578
- adds r4, r2, 0
-_08059578:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl move_anim_start_t4
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80595A4
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059544
-
- thumb_func_start sub_80595A4
-sub_80595A4: @ 80595A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08059646
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, =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 _08059624
- ldr r1, =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 _08059624
- ldr r0, =gUnknown_03005D70
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl healthbar_draw_field_maybe
- b _08059638
- .pool
-_08059624:
- ldr r0, =gUnknown_03005D70
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
-_08059638:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_805965C
- str r0, [r1]
-_08059646:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80595A4
-
- thumb_func_start sub_805965C
-sub_805965C: @ 805965C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =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, =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, =gBattleBankFunc
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80591A0
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805965C
-
- thumb_func_start sub_80596A8
-sub_80596A8: @ 80596A8
- push {r4-r6,lr}
- ldr r6, =gSprites
- ldr r5, =gBankSpriteIds
- ldr r4, =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 _08059724
- ldr r1, =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_24
- 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 rotscale_free_entry
- 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, =gUnknown_03005D70
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl PlayerBufferExecCompleted
-_08059724:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80596A8
-
- thumb_func_start sub_8059744
-sub_8059744: @ 8059744
- push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08059798
- ldr r5, =gBankSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl obj_free_rotscale_entry
- 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, =gUnknown_03005D70
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl PlayerBufferExecCompleted
-_08059798:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059744
-
- thumb_func_start sub_80597B4
-sub_80597B4: @ 80597B4
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080597C6
- bl PlayerBufferExecCompleted
-_080597C6:
- pop {r0}
- bx r0
- thumb_func_end sub_80597B4
-
- thumb_func_start sub_80597CC
-sub_80597CC: @ 80597CC
- push {r4,lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0805980A
- ldr r1, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8059828
- str r1, [r0]
- ldr r3, =gTasks
- ldr r1, =gUnknown_03005D7C
- 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
- bl FreeAllWindowBuffers
- adds r0, r4, 0
- bl sub_81B89AC
-_0805980A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80597CC
-
- thumb_func_start sub_8059828
-sub_8059828: @ 8059828
- push {lr}
- ldr r0, =gMain
- ldr r1, [r0, 0x4]
- ldr r0, =sub_8038420
- cmp r1, r0
- bne _08059898
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08059898
- ldr r0, =gUnknown_0203CEE8
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08059870
- ldr r0, =gUnknown_0203CEE9
- ldrb r1, [r0]
- ldr r2, =gUnknown_0203CF00
- movs r0, 0x1
- bl dp01_build_cmdbuf_x22_a_three_bytes
- b _0805987A
- .pool
-_08059870:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
-_0805987A:
- ldr r1, =gBattleBufferA
- ldr r0, =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 _08059894
- bl b_link_standby_message
-_08059894:
- bl PlayerBufferExecCompleted
-_08059898:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059828
-
- thumb_func_start sub_80598A4
-sub_80598A4: @ 80598A4
- push {lr}
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080598CC
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80598E0
- str r1, [r0]
- bl nullsub_35
- bl FreeAllWindowBuffers
- bl sub_81AABB0
-_080598CC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80598A4
-
- thumb_func_start sub_80598E0
-sub_80598E0: @ 80598E0
- push {lr}
- ldr r0, =gMain
- ldr r1, [r0, 0x4]
- ldr r0, =sub_8038420
- cmp r1, r0
- bne _08059906
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08059906
- ldr r0, =gUnknown_0203CE7C
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl PlayerBufferExecCompleted
-_08059906:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80598E0
-
- thumb_func_start bx_wait_t1
-bx_wait_t1: @ 805991C
- push {lr}
- ldr r0, =gDoingBattleAnim
- ldrb r0, [r0]
- cmp r0, 0
- beq _08059942
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08059946
-_08059942:
- bl PlayerBufferExecCompleted
-_08059946:
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_wait_t1
-
- thumb_func_start bx_blink_t1
-bx_blink_t1: @ 8059958
- push {r4,lr}
- ldr r1, =gBankSpriteIds
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, =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 _080599A4
- 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, =gDoingBattleAnim
- strb r3, [r0]
- bl PlayerBufferExecCompleted
- b _080599CE
- .pool
-_080599A4:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080599C8
- 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]
-_080599C8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080599CE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t1
-
- thumb_func_start sub_80599D4
-sub_80599D4: @ 80599D4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08059A02
- ldr r4, =gUnknown_03005D74
- ldrb r0, [r4]
- cmp r0, 0
- beq _08059A02
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- bl sub_8056BAC
- movs r0, 0
- strb r0, [r4]
- movs r0, 0
- bl sub_8056B74
-_08059A02:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08059A2C
- ldr r4, =gUnknown_03005D74
- ldrb r0, [r4]
- cmp r0, 0
- bne _08059A2C
- movs r0, 0x5
- bl audio_play
- ldrb r0, [r4]
- bl sub_8056BAC
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- bl sub_8056B74
-_08059A2C:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08059A7A
- str r2, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_8056A3C
- movs r0, 0x5
- bl audio_play
- ldr r0, =gUnknown_03005D74
- ldrb r0, [r0]
- cmp r0, 0
- beq _08059A6C
- movs r0, 0x1
- movs r1, 0xE
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _08059A76
- .pool
-_08059A6C:
- movs r0, 0x1
- movs r1, 0xD
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_08059A76:
- bl PlayerBufferExecCompleted
-_08059A7A:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08059AA0
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_8056A3C
- movs r0, 0x5
- bl audio_play
- bl PlayerBufferExecCompleted
-_08059AA0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80599D4
-
- thumb_func_start sub_8059AAC
-sub_8059AAC: @ 8059AAC
- push {r4-r7,lr}
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- lsls r1, 9
- ldr r3, =gUnknown_02023068
- ldr r2, =gUnknown_03005D78
- movs r0, 0
- strb r0, [r2]
- movs r5, 0
- ldr r7, =gUnknown_02022E2C
- adds r4, r1, r3
- adds r6, r2, 0
-_08059AC4:
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_menu_cursor_related
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- adds r1, r5, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl battle_show_message_maybe
- ldrh r0, [r4]
- cmp r0, 0
- beq _08059AF4
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_08059AF4:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08059AC4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059AAC
-
- thumb_func_start sub_8059B18
-sub_8059B18: @ 8059B18
- push {r4,lr}
- ldr r4, =gUnknown_02022E2C
- ldr r1, =gUnknown_085CCA6F
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x7
- bl battle_show_message_maybe
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059B18
-
- thumb_func_start sub_8059B3C
-sub_8059B3C: @ 8059B3C
- push {r4-r7,lr}
- ldr r5, =gBattleBufferA
- ldr r7, =gActiveBank
- ldrb r0, [r7]
- lsls r0, 9
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08059B98
- bl sub_814FBAC
- ldrb r1, [r7]
- lsls r4, r1, 9
- adds r0, r5, 0x4
- adds r4, r0
- ldr r6, =gUnknown_02022E2C
- ldr r5, =gUnknown_020244B0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0x8
- ldrb r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r1, 0xBA
- strb r1, [r0]
- adds r0, 0x1
- ldrb r1, [r7]
- adds r1, r5
- adds r4, 0xC
- ldrb r1, [r1]
- adds r4, r1
- ldrb r1, [r4]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- movs r1, 0x9
- bl battle_show_message_maybe
-_08059B98:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059B3C
-
- thumb_func_start sub_8059BB0
-sub_8059BB0: @ 8059BB0
- push {r4-r6,lr}
- ldr r5, =gActiveBank
- ldrb r4, [r5]
- lsls r4, 9
- ldr r0, =gUnknown_02023068
- adds r4, r0
- ldr r6, =gUnknown_02022E2C
- ldr r1, =gUnknown_085CCA73
- adds r0, r6, 0
- bl StringCopy
- movs r1, 0xFC
- strb r1, [r0]
- adds r0, 0x1
- movs r1, 0x6
- strb r1, [r0]
- adds r0, 0x1
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- ldr r3, =gBattleMoves
- ldr r2, =gUnknown_020244B0
- ldrb r1, [r5]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 1
- adds r4, r1
- ldrh r2, [r4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x2]
- lsls r1, r2, 3
- subs r1, r2
- ldr r2, =gTypeNames
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0
- movs r1, 0xA
- bl battle_show_message_maybe
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059BB0
-
- thumb_func_start battle_menu_cursor_related_2
-battle_menu_cursor_related_2: @ 8059C28
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r1, 24
- lsrs r1, 24
- add r2, sp, 0xC
- adds r0, r1, 0x1
- strh r0, [r2]
- adds r0, r2, 0
- adds r1, 0x2
- strh r1, [r0, 0x2]
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r0, 3
- adds r2, r0
- adds r2, 0x1
- movs r0, 0x2
- ands r3, r0
- adds r3, 0x37
- str r1, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x10
- pop {r0}
- bx r0
- thumb_func_end battle_menu_cursor_related_2
-
- thumb_func_start battle_menu_cursor_related
-battle_menu_cursor_related: @ 8059C70
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- add r0, sp, 0xC
- ldr r1, =0x00001016
- strh r1, [r0]
- strh r1, [r0, 0x2]
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r0, 3
- adds r2, r0
- adds r2, 0x1
- movs r0, 0x2
- ands r3, r0
- adds r3, 0x37
- str r1, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end battle_menu_cursor_related
-
- thumb_func_start sub_8059CB4
-sub_8059CB4: @ 8059CB4
- push {r4,lr}
- sub sp, 0x10
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- add r0, sp, 0xC
- movs r4, 0x1
- strh r4, [r0]
- movs r1, 0x2
- strh r1, [r0, 0x2]
- adds r0, r3, 0
- ands r0, r4
- lsls r2, r0, 3
- subs r2, r0
- adds r2, 0x10
- lsls r2, 24
- lsrs r2, 24
- ands r3, r1
- adds r3, 0x23
- str r4, [sp]
- str r1, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059CB4
-
- thumb_func_start sub_8059CF8
-sub_8059CF8: @ 8059CF8
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- add r0, sp, 0xC
- ldr r1, =0x00001016
- strh r1, [r0]
- strh r1, [r0, 0x2]
- movs r1, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r0, 3
- subs r2, r0
- adds r2, 0x10
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x2
- ands r3, r0
- adds r3, 0x23
- str r1, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- add r1, sp, 0xC
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059CF8
-
- thumb_func_start sub_8059D40
-sub_8059D40: @ 8059D40
- push {lr}
- ldr r0, =sub_80A92F8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059D40
-
- thumb_func_start sub_8059D50
-sub_8059D50: @ 8059D50
- push {lr}
- ldr r0, =sub_80A92F8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059D50
-
- thumb_func_start sub_8059D60
-sub_8059D60: @ 8059D60
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08059D82
- bl PlayerBufferExecCompleted
-_08059D82:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8059D60
-
- thumb_func_start bx_8030B2C
-bx_8030B2C: @ 8059D90
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08059DB2
- bl PlayerBufferExecCompleted
-_08059DB2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_8030B2C
-
- thumb_func_start b_link_standby_message
-b_link_standby_message: @ 8059DC0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08059DE0
- ldr r0, =gUnknown_02022E14
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E16
- strh r1, [r0]
- ldr r0, =gUnknown_085CCA29
- movs r1, 0
- bl battle_show_message_maybe
-_08059DE0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end b_link_standby_message
-
- thumb_func_start dp01t_00_1_getattr
-dp01t_00_1_getattr: @ 8059DF4
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08059E2C
- ldr r0, =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 _08059E4E
- .pool
-_08059E2C:
- ldrb r4, [r1]
- movs r5, 0
-_08059E30:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08059E46
- 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
-_08059E46:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08059E30
-_08059E4E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl PlayerBufferExecCompleted
- 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_: @ 8059E68
- 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, =gBattleBufferA
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _08059E92
- bl _0805A5FE
-_08059E92:
- lsls r0, 2
- ldr r1, =_08059EA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08059EA8:
- .4byte _08059F98
- .4byte _0805A1BC
- .4byte _0805A1CC
- .4byte _0805A1DC
- .4byte _0805A244
- .4byte _0805A244
- .4byte _0805A244
- .4byte _0805A244
- .4byte _0805A260
- .4byte _0805A29C
- .4byte _0805A29C
- .4byte _0805A29C
- .4byte _0805A29C
- .4byte _0805A5FE
- .4byte _0805A5FE
- .4byte _0805A5FE
- .4byte _0805A5FE
- .4byte _0805A2B8
- .4byte _0805A2C8
- .4byte _0805A2F8
- .4byte _0805A308
- .4byte _0805A318
- .4byte _0805A328
- .4byte _0805A338
- .4byte _0805A348
- .4byte _0805A358
- .4byte _0805A368
- .4byte _0805A378
- .4byte _0805A388
- .4byte _0805A398
- .4byte _0805A3A8
- .4byte _0805A3B8
- .4byte _0805A408
- .4byte _0805A418
- .4byte _0805A428
- .4byte _0805A438
- .4byte _0805A448
- .4byte _0805A458
- .4byte _0805A468
- .4byte _0805A478
- .4byte _0805A488
- .4byte _0805A4BC
- .4byte _0805A4CC
- .4byte _0805A4DC
- .4byte _0805A4EC
- .4byte _0805A4FC
- .4byte _0805A50C
- .4byte _0805A51C
- .4byte _0805A52C
- .4byte _0805A54C
- .4byte _0805A55C
- .4byte _0805A56C
- .4byte _0805A57C
- .4byte _0805A58C
- .4byte _0805A59C
- .4byte _0805A5AC
- .4byte _0805A5BC
- .4byte _0805A5CC
- .4byte _0805A5DC
- .4byte _0805A5EC
-_08059F98:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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
-_08059FE4:
- 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 _08059FE4
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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, =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, =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, =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
-_0805A19C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0805A19C
- b _0805A5FE
- .pool
-_0805A1BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _0805A536
- .pool
-_0805A1CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _0805A536
- .pool
-_0805A1DC:
- 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, =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_0805A1F2:
- 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 _0805A1F2
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0805A230:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0805A230
- b _0805A5FE
- .pool
-_0805A244:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0805A536
- .pool
-_0805A260:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, =gPlayerParty
- mov r8, r2
-_0805A26C:
- 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 _0805A26C
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0805A5FE
- .pool
-_0805A29C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0805A5F6
- .pool
-_0805A2B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _0805A2D2
- .pool
-_0805A2C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_0805A2D2:
- 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 _0805A5FE
- .pool
-_0805A2F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _0805A5F6
- .pool
-_0805A308:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _0805A5F6
- .pool
-_0805A318:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _0805A5F6
- .pool
-_0805A328:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _0805A5F6
- .pool
-_0805A338:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _0805A5F6
- .pool
-_0805A348:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _0805A5F6
- .pool
-_0805A358:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _0805A5F6
- .pool
-_0805A368:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _0805A5F6
- .pool
-_0805A378:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _0805A5F6
- .pool
-_0805A388:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _0805A5F6
- .pool
-_0805A398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _0805A5F6
- .pool
-_0805A3A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _0805A5F6
- .pool
-_0805A3B8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _0805A5FE
- .pool
-_0805A408:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _0805A5F6
- .pool
-_0805A418:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _0805A5F6
- .pool
-_0805A428:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _0805A5F6
- .pool
-_0805A438:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _0805A5F6
- .pool
-_0805A448:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _0805A5F6
- .pool
-_0805A458:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _0805A5F6
- .pool
-_0805A468:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _0805A492
- .pool
-_0805A478:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _0805A536
- .pool
-_0805A488:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_0805A492:
- 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 _0805A5FE
- .pool
-_0805A4BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _0805A5F6
- .pool
-_0805A4CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _0805A536
- .pool
-_0805A4DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _0805A536
- .pool
-_0805A4EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _0805A536
- .pool
-_0805A4FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _0805A536
- .pool
-_0805A50C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _0805A536
- .pool
-_0805A51C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _0805A536
- .pool
-_0805A52C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_0805A536:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0805A5FE
- .pool
-_0805A54C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _0805A5F6
- .pool
-_0805A55C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _0805A5F6
- .pool
-_0805A56C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _0805A5F6
- .pool
-_0805A57C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _0805A5F6
- .pool
-_0805A58C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _0805A5F6
- .pool
-_0805A59C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _0805A5F6
- .pool
-_0805A5AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _0805A5F6
- .pool
-_0805A5BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _0805A5F6
- .pool
-_0805A5CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _0805A5F6
- .pool
-_0805A5DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _0805A5F6
- .pool
-_0805A5EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_0805A5F6:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0805A5FE:
- 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
- .pool
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
-
- thumb_func_start sub_805A614
-sub_805A614: @ 805A614
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, =gBattlePartyID
- ldr r5, =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, =gBattleBufferA
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, =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 _0805A66A
- adds r3, r0, 0
-_0805A650:
- 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 _0805A650
-_0805A66A:
- 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 PlayerBufferExecCompleted
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805A614
-
- thumb_func_start dp01t_02_1_setattr
-dp01t_02_1_setattr: @ 805A69C
- push {r4,r5,lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0805A6CC
- ldr r0, =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl dp01_setattr_by_ch1_for_player_pokemon
- b _0805A6EA
- .pool
-_0805A6CC:
- ldrb r4, [r1]
- movs r5, 0
-_0805A6D0:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0805A6DE
- adds r0, r5, 0
- bl dp01_setattr_by_ch1_for_player_pokemon
-_0805A6DE:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0805A6D0
-_0805A6EA:
- bl PlayerBufferExecCompleted
- 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: @ 805A6F4
- 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, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, =gUnknown_02023067
- 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 _0805A720
- bl _0805B0BA
-_0805A720:
- lsls r0, 2
- ldr r1, =_0805A738
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0805A738:
- .4byte _0805A828
- .4byte _0805A9C0
- .4byte _0805A9E0
- .4byte _0805AA00
- .4byte _0805AA58
- .4byte _0805AA58
- .4byte _0805AA58
- .4byte _0805AA58
- .4byte _0805AA80
- .4byte _0805AAE4
- .4byte _0805AAE4
- .4byte _0805AAE4
- .4byte _0805AAE4
- .4byte _0805B0BA
- .4byte _0805B0BA
- .4byte _0805B0BA
- .4byte _0805B0BA
- .4byte _0805AB14
- .4byte _0805AB34
- .4byte _0805AB54
- .4byte _0805AB74
- .4byte _0805AB94
- .4byte _0805ABB4
- .4byte _0805ABD4
- .4byte _0805ABF4
- .4byte _0805AC14
- .4byte _0805AC34
- .4byte _0805AC54
- .4byte _0805AC74
- .4byte _0805AC94
- .4byte _0805ACB4
- .4byte _0805ACD4
- .4byte _0805AD44
- .4byte _0805AD64
- .4byte _0805AD84
- .4byte _0805ADA4
- .4byte _0805ADC4
- .4byte _0805ADE4
- .4byte _0805AE04
- .4byte _0805AE24
- .4byte _0805AE44
- .4byte _0805AE64
- .4byte _0805AE84
- .4byte _0805AEA4
- .4byte _0805AEC4
- .4byte _0805AEE4
- .4byte _0805AF04
- .4byte _0805AF24
- .4byte _0805AF44
- .4byte _0805AF64
- .4byte _0805AF84
- .4byte _0805AFA4
- .4byte _0805AFC4
- .4byte _0805AFE4
- .4byte _0805B004
- .4byte _0805B024
- .4byte _0805B044
- .4byte _0805B064
- .4byte _0805B084
- .4byte _0805B0A4
-_0805A828:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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
-_0805A88E:
- 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 _0805A88E
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _0805B0BA
- .pool
-_0805A9C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0805B0BA
- .pool
-_0805A9E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AA00:
- 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, =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0805AA1A:
- 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 _0805AA1A
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AA58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r3, =gBattleBufferA
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0805AAFC
- .pool
-_0805AA80:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- ldr r5, =gActiveBank
- 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 _0805B0BA
- .pool
-_0805AAE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r3, =gBattleBufferA
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0805AAFC:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AB14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AB34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AB54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AB74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AB94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ABB4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ABD4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ABF4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AC14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AC34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AC54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AC74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AC94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ACB4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ACD4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- ldr r5, =gActiveBank
- 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 _0805ADF4
- .pool
-_0805AD44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AD64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AD84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ADA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ADC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0805B0BA
- .pool
-_0805ADE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0805ADF4:
- movs r1, 0x2C
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AE04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AE24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AE44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AE64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AE84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AEA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AEC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AEE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AF04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AF24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AF44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AF64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AF84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AFA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AFC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0805B0BA
- .pool
-_0805AFE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0805B0BA
- .pool
-_0805B004:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0805B0BA
- .pool
-_0805B024:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0805B0BA
- .pool
-_0805B044:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0805B0BA
- .pool
-_0805B064:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0805B0BA
- .pool
-_0805B084:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0805B0BA
- .pool
-_0805B0A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0805B0BA:
- ldr r2, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, =gPlayerParty
- adds r0, r2
- bl sub_805E990
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_805B0F0
-sub_805B0F0: @ 805B0F0
- push {r4-r7,lr}
- ldr r1, =gBattlePartyID
- ldr r7, =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, =gBattleBufferA
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, =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 _0805B148
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0805B126:
- 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 _0805B126
-_0805B148:
- bl PlayerBufferExecCompleted
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B0F0
-
- thumb_func_start sub_805B164
-sub_805B164: @ 805B164
- push {r4,lr}
- ldr r2, =gBattlePartyID
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, =gPlayerParty
- adds r0, r2
- bl sub_805DD7C
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- 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, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_0802E404
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B164
-
- thumb_func_start sub_805B1CC
-sub_805B1CC: @ 805B1CC
- push {r4-r6,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- ldr r4, =gBattleBufferA
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_805EF84
- ldr r2, =gBattlePartyID
- 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, =gPlayerParty
- adds r0, r2
- bl sub_805DD7C
- ldr r1, =gUnknown_020244AC
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldr r1, =gUnknown_020244B0
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_805B258
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805902C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B1CC
-
- thumb_func_start sub_805B258
-sub_805B258: @ 805B258
- 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_805EF84
- ldr r0, =gBattlePartyID
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, =gBattleBufferA
- 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, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =sub_805D714
- bl CreateInvisibleSpriteWithCallback
- ldr r1, =gUnknown_03005D7C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_806A068
- ldr r0, =gUnknown_0202499C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_80A5C6C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_80A6138
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_80A82E4
- 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, =gBankSpriteIds
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, =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]
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- 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, =gUnknown_020244E4
- adds r6, r1
- ldrb r1, [r6]
- bl StartObjectImageAnim
- 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, =DummyObjectCallback
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_80753E8
- 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
- .pool
- thumb_func_end sub_805B258
-
- thumb_func_start sub_805B3D4
-sub_805B3D4: @ 805B3D4
- push {r4-r6,lr}
- ldr r1, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0805B41C
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805B464
- str r1, [r0]
- b _0805B452
- .pool
-_0805B41C:
- ldr r5, =gBankSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl obj_free_rotscale_entry
- 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, =gUnknown_03005D70
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl PlayerBufferExecCompleted
-_0805B452:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B3D4
-
- thumb_func_start sub_805B464
-sub_805B464: @ 805B464
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r4, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r4, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0805B48C
- cmp r0, 0x1
- beq _0805B4BA
- b _0805B4E2
- .pool
-_0805B48C:
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0805B4A6
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0805B4A6:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _0805B4E2
-_0805B4BA:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0805B4E2
- 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, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8059744
- str r1, [r0]
-_0805B4E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B464
-
- thumb_func_start sub_805B4F0
-sub_805B4F0: @ 805B4F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0805B5B4
- bl link_get_multiplayer_id
- ldr r5, =gUnknown_020229E8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- movs r4, 0xFF
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0805B538
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x5
- bne _0805B558
-_0805B538:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x13]
- adds r4, r0, 0x2
- b _0805B5BA
- .pool
-_0805B558:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x2
- beq _0805B58A
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1]
- ands r4, r0
- cmp r4, 0x1
- bne _0805B5A0
-_0805B58A:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x13]
- adds r4, r0, 0x4
- b _0805B5BA
-_0805B5A0:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r4, [r1, 0x13]
- b _0805B5BA
-_0805B5B4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r4, [r0, 0x8]
-_0805B5BA:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x40
- ands r1, r2
- adds r5, r0, 0
- cmp r1, 0
- beq _0805B63C
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r1, 0x2
- ands r1, r0
- movs r0, 0x20
- mov r9, r0
- cmp r1, 0
- beq _0805B5E0
- movs r1, 0x5A
- mov r9, r1
-_0805B5E0:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- ands r0, r1
- cmp r0, 0
- beq _0805B618
- ldr r0, =gUnknown_02038BCE
- ldrh r1, [r0]
- ldr r0, =0x00000c03
- cmp r1, r0
- beq _0805B618
- movs r0, 0x5A
- mov r9, r0
- ldr r1, =gUnknown_083054E0
- b _0805B642
- .pool
-_0805B618:
- ldr r1, =gUnknown_08305D2C
- lsls r0, r4, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- subs r0, r1
- lsls r0, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r0, r1
- lsrs r7, r0, 16
- ldr r5, =gBattleTypeFlags
- b _0805B656
- .pool
-_0805B63C:
- movs r0, 0x50
- mov r9, r0
- ldr r1, =gUnknown_08305D2C
-_0805B642:
- lsls r0, r4, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- subs r0, r1
- lsls r0, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r0, r1
- lsrs r7, r0, 16
-_0805B656:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- ands r0, r1
- cmp r0, 0
- bne _0805B664
- b _0805B794
-_0805B664:
- ldr r0, =gUnknown_02038BCE
- ldrh r1, [r0]
- ldr r0, =0x00000c03
- cmp r1, r0
- bne _0805B670
- b _0805B794
-_0805B670:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- bl sub_806F000
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- ldr r6, =gActiveBank
- ldrb r1, [r6]
- adds r0, r5, 0
- bl sub_805DF38
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806A1C0
- ldr r0, =gUnknown_0202499C
- mov r8, r0
- lsls r4, r7, 16
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_80A82E4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- mov r1, r9
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, =gBankSpriteIds
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r0, =gTrainerFrontPicPaletteTable
- lsls r5, 3
- adds r5, r0
- ldrh r0, [r5, 0x4]
- bl IndexOfSpritePaletteTag
- ldr r5, =gSprites
- ldrb r1, [r6]
- adds r1, r4
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r5
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- ldrb r0, [r6]
- adds r0, r4
- 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, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x30
- strh r1, [r0, 0x26]
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r4
- 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, =sub_805D7AC
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0805B82A
- .pool
-_0805B794:
- ldr r5, =gActiveBank
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_805DF84
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl template_build_for_pokemon_or_trainer
- ldr r6, =gUnknown_0202499C
- mov r8, r9
- lsls r4, r7, 16
- asrs r4, 16
- ldrb r0, [r5]
- bl sub_80A82E4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- mov r1, r8
- adds r2, r4, 0
- bl CreateSprite
- ldr r6, =gBankSpriteIds
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, =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, =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, =sub_805D7AC
- str r1, [r0]
-_0805B82A:
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8058844
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B4F0
-
- thumb_func_start dp01t_08_1_8032428
-dp01t_08_1_8032428: @ 805B864
- push {r4-r6,lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0805B920
- bl link_get_multiplayer_id
- ldr r5, =gUnknown_020229E8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- movs r4, 0xFF
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _0805B8A6
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x5
- bne _0805B8C4
-_0805B8A6:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x13]
- adds r4, r0, 0x2
- b _0805B926
- .pool
-_0805B8C4:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x2
- beq _0805B8F6
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1]
- ands r4, r0
- cmp r4, 0x1
- bne _0805B90C
-_0805B8F6:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x13]
- adds r4, r0, 0x4
- b _0805B926
-_0805B90C:
- bl link_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r4, [r1, 0x13]
- b _0805B926
-_0805B920:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r4, [r0, 0x8]
-_0805B926:
- ldr r5, =gActiveBank
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_805DF84
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl template_build_for_pokemon_or_trainer
- ldr r0, =gUnknown_0202499C
- ldr r1, =gUnknown_08305D2C
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- 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, =gBankSpriteIds
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, =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, =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, =sub_805D7AC
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805887C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_08_1_8032428
-
- thumb_func_start sub_805B9F8
-sub_805B9F8: @ 805B9F8
- push {r4-r6,lr}
- ldr r5, =gBankSpriteIds
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =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, =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, =sub_80A6EEC
- 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, =DummyObjectCallback
- 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 StartObjectImageAnim
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_802F7A0
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805B9F8
-
- thumb_func_start sub_805BAB8
-sub_805BAB8: @ 805BAB8
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r4, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r0, [r4, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0805BB0C
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0805BAEC
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0805BAEC:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- adds r1, 0x1
- strb r1, [r0, 0x4]
- b _0805BB82
- .pool
-_0805BB0C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0805BB82
- strb r4, [r3, 0x4]
- ldr r2, =gBattlePartyID
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, =gPlayerParty
- adds r0, r2
- bl sub_805E990
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl audio_play_and_stuff
- ldr r2, =gSprites
- ldr r3, =gBankSpriteIds
- 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, =sub_8039C00
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80596A8
- str r1, [r0]
-_0805BB82:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805BAB8
-
- thumb_func_start sub_805BBA4
-sub_805BBA4: @ 805BBA4
- 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 PlayerBufferExecCompleted
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_805BBA4
-
- thumb_func_start sub_805BBC4
-sub_805BBC4: @ 805BBC4
- push {r4,r5,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, =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, 0x3
- bl move_anim_start_t4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805BBC4
-
- thumb_func_start sub_805BC18
-sub_805BC18: @ 805BC18
- push {r4,r5,lr}
- ldr r1, =gBattleBufferA
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- strb r1, [r0, 0x8]
- ldr r1, =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, 0x3
- bl move_anim_start_t4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805BC18
-
- thumb_func_start sub_805BC78
-sub_805BC78: @ 805BC78
- push {lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805BC96
-_0805BC8C:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0805BC8C
-_0805BC96:
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805BC78
-
- thumb_func_start dp01t_0F_1_move_anim
-dp01t_0F_1_move_anim: @ 805BCA8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0805BCBE
- b _0805BDE4
-_0805BCBE:
- ldr r0, =gBattleBufferA
- mov r12, r0
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, 0x1
- adds r0, r1, r0
- ldrb r6, [r0]
- mov r0, r12
- adds r0, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- ldr r0, =gUnknown_02038432
- mov r8, r0
- mov r0, r12
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- mov r1, r8
- strb r0, [r1]
- ldr r3, =gUnknown_02038408
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0x4
- adds r0, r1, r0
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0x5
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- strh r2, [r3]
- ldr r3, =gUnknown_02038404
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0x6
- adds r0, r1, r0
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0x7
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- mov r0, r12
- adds r0, 0x8
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 16
- orrs r2, r0
- mov r0, r12
- adds r0, 0x9
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 24
- orrs r2, r0
- str r2, [r3]
- ldr r2, =gUnknown_0203841A
- ldrb r0, [r5]
- lsls r0, 9
- mov r1, r12
- adds r1, 0xA
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r4, =gUnknown_0203841C
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0xC
- adds r0, r1, r0
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0xD
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- strh r2, [r4]
- ldr r7, =gUnknown_02038400
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0x10
- adds r1, r0
- str r1, [r7]
- ldr r2, =gUnknown_020244BC
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- str r1, [r0]
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_805DB8C
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0805BDBC
- bl PlayerBufferExecCompleted
- b _0805BDE4
- .pool
-_0805BDBC:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x4]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_move_anim_1
- str r1, [r0]
- ldrh r1, [r4]
- ldr r2, [r7]
- adds r0, r6, 0
- bl sub_817E0FC
-_0805BDE4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_0F_1_move_anim
-
- thumb_func_start bx_move_anim_1
-bx_move_anim_1: @ 805BDFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r3, [r6]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r10, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, r2, 0x2
- mov r9, r5
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- ldr r7, =gUnknown_020244D0
- ldr r5, [r7]
- ldr r1, [r5, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0805BE94
- cmp r2, 0x1
- bgt _0805BE54
- cmp r2, 0
- beq _0805BE5E
- b _0805BF70
- .pool
-_0805BE54:
- cmp r2, 0x2
- beq _0805BEBE
- cmp r2, 0x3
- beq _0805BF34
- b _0805BF70
-_0805BE5E:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0805BE80
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r6]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0805BE80:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _0805BF70
-_0805BE94:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805BF70
- movs r0, 0
- bl sub_805EB9C
- adds r0, r4, 0
- bl move_anim_start_t1
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x4]
- b _0805BF70
-_0805BEBE:
- ldr r0, =gUnknown_020383F8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gUnknown_020383FD
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805BF70
- movs r0, 0x1
- bl sub_805EB9C
- ldr r0, [r7]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0805BF0C
- mov r0, r8
- cmp r0, 0x1
- bhi _0805BF0C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0805BF0C:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _0805BF70
- .pool
-_0805BF34:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0805BF70
- bl sub_805E394
- ldrb r0, [r6]
- lsls r2, r0, 9
- mov r3, r10
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r9
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_805E94C
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r4, [r0, 0x4]
- bl PlayerBufferExecCompleted
-_0805BF70:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end bx_move_anim_1
-
- thumb_func_start sub_805BF80
-sub_805BF80: @ 805BF80
- push {r4,r5,lr}
- ldr r0, =gUnknown_02022E14
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E16
- strh r1, [r0]
- ldr r5, =gActiveBank
- ldrb r4, [r5]
- lsls r4, 9
- ldr r0, =gUnknown_02023066
- adds r4, r0
- ldrh r0, [r4]
- bl battle_pick_message
- ldr r0, =gUnknown_02022E2C
- movs r1, 0
- bl battle_show_message_maybe
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80597B4
- str r1, [r0]
- ldrh r0, [r4]
- bl sub_817C95C
- ldrb r0, [r5]
- ldrh r1, [r4]
- bl sub_81A57E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805BF80
-
- thumb_func_start dp01t_11_1_message_for_player_only
-dp01t_11_1_message_for_player_only: @ 805BFE0
- push {lr}
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0805BFFC
- bl sub_805BF80
- b _0805C000
- .pool
-_0805BFFC:
- bl PlayerBufferExecCompleted
-_0805C000:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_1_message_for_player_only
-
- thumb_func_start sub_805C004
-sub_805C004: @ 805C004
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805C02A
- ldr r0, =gUnknown_02022E14
- strh r1, [r0]
- ldr r1, =gUnknown_02022E16
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057588
- str r1, [r0]
-_0805C02A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C004
-
- thumb_func_start dp01t_12_6_battle_menu
-dp01t_12_6_battle_menu: @ 805C044
- push {r4,lr}
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805C004
- str r1, [r0]
- bl sub_817F2A8
- ldr r0, =gUnknown_085CCA3A
- movs r1, 0x2
- bl battle_show_message_maybe
- movs r4, 0
-_0805C062:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8059CF8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0805C062
- ldr r1, =gUnknown_020244AC
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8059CB4
- ldr r0, =gUnknown_085CC9F3
- bl get_battle_strings_
- ldr r0, =gUnknown_02022E2C
- movs r1, 0x1
- bl battle_show_message_maybe
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_12_6_battle_menu
-
- thumb_func_start sub_805C0B0
-sub_805C0B0: @ 805C0B0
- push {r4,lr}
- sub sp, 0x4
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0805C108
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_8056A3C
- ldr r0, =gUnknown_085CCABB
- movs r1, 0xC
- bl battle_show_message_maybe
- ldr r1, =gUnknown_03005D74
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8056B74
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80599D4
- str r1, [r0]
- b _0805C10C
- .pool
-_0805C108:
- bl PlayerBufferExecCompleted
-_0805C10C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805C0B0
-
- thumb_func_start sub_805C114
-sub_805C114: @ 805C114
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0805C13E
- ldr r0, =gUnknown_02022E14
- strh r1, [r0]
- ldr r1, =gUnknown_02022E16
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8057BFC
- str r1, [r0]
-_0805C13E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C114
-
- thumb_func_start sub_805C158
-sub_805C158: @ 805C158
- push {lr}
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r1, r0
- movs r0, 0xA6
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0805C194
- ldr r1, =gUnknown_0203BD30
- ldr r0, =gRngValue
- ldr r0, [r0]
- str r0, [r1]
- bl sub_805D19C
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl PlayerBufferExecCompleted
-_0805C194:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C158
-
- thumb_func_start dp01t_14_5_move_menu_pokedude
-dp01t_14_5_move_menu_pokedude: @ 805C1A8
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- beq _0805C1EC
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strb r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805C158
- b _0805C1FC
- .pool
-_0805C1EC:
- bl sub_805C210
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805C114
-_0805C1FC:
- str r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_14_5_move_menu_pokedude
-
- thumb_func_start sub_805C210
-sub_805C210: @ 805C210
- push {lr}
- bl sub_8059AAC
- ldr r1, =gUnknown_03005D74
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, =gUnknown_020244B0
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl battle_menu_cursor_related_2
- bl sub_8059B18
- bl sub_8059B3C
- bl sub_8059BB0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C210
-
- thumb_func_start sub_805C248
-sub_805C248: @ 805C248
- 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, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80598A4
- str r1, [r0]
- ldr r1, =gUnknown_020244B8
- ldrb r0, [r2]
- strb r0, [r1]
- movs r3, 0
- ldr r5, =gUnknown_0203CF00
- ldr r4, =gBattleBufferA
-_0805C276:
- 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 _0805C276
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C248
-
- thumb_func_start sub_805C2AC
-sub_805C2AC: @ 805C2AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r3, 0
- ldr r0, =gUnknown_0203CF00
- mov r12, r0
- ldr r1, =gBattleBufferA
- mov r8, r1
- ldr r2, =gActiveBank
- ldr r7, =gBattleTypeFlags
- mov r6, r12
- mov r5, r8
- adds r4, r2, 0
-_0805C2C8:
- adds r0, r3, r6
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r3, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _0805C2C8
- ldr r0, [r7]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- beq _0805C330
- ldrb r3, [r2]
- lsls r0, r3, 9
- mov r1, r8
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x2
- beq _0805C330
- ldr r1, =gBattlePartyID
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- mov r2, r12
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl PlayerBufferExecCompleted
- b _0805C3BC
- .pool
-_0805C330:
- ldr r0, =TaskDummy
- movs r1, 0xFF
- bl CreateTask
- ldr r3, =gUnknown_03005D7C
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- adds r1, r3
- movs r2, 0
- mov r8, r2
- strb r0, [r1]
- ldr r5, =gTasks
- ldrb r2, [r4]
- adds r3, r2, r3
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- ldr r5, =gBattleBufferA
- lsls r2, 9
- adds r6, r5, 0x1
- adds r2, r6
- ldrb r2, [r2]
- movs r0, 0xF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldr r3, =gBattleStruct
- ldr r1, [r3]
- adds r1, 0x49
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- lsrs r0, 4
- strb r0, [r1]
- ldr r2, [r3]
- adds r2, 0x8B
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, [r3]
- adds r1, 0xB0
- ldrb r0, [r4]
- lsls r0, 9
- adds r5, 0x3
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- mov r1, r8
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80597CC
- str r1, [r0]
- ldr r1, =gUnknown_020244B8
- ldrb r0, [r4]
- strb r0, [r1]
-_0805C3BC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C2AC
-
- thumb_func_start sub_805C3EC
-sub_805C3EC: @ 805C3EC
- push {lr}
- sub sp, 0x4
- bl sub_805EA60
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl PlayerBufferExecCompleted
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_805C3EC
-
- thumb_func_start sub_805C410
-sub_805C410: @ 805C410
- 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, =gBattleBufferA
- ldr r0, =gActiveBank
- mov r9, r0
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r3, 0x2
- adds r0, r1, r0
- ldrb r2, [r0]
- adds r3, 0x3
- adds r1, r3
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- lsls r2, 16
- asrs r7, r2, 16
- cmp r7, 0
- ble _0805C44A
- ldr r1, =gUnknown_0203CD70
- ldr r0, [r1]
- adds r0, r7
- str r0, [r1]
-_0805C44A:
- ldr r0, =0x00007fff
- cmp r7, r0
- beq _0805C4B4
- ldr r6, =gBattlePartyID
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r2, r9
- ldrb r0, [r2]
- 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, =gUnknown_03005D70
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_807294C
- b _0805C4F2
- .pool
-_0805C4B4:
- ldr r1, =gBattlePartyID
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, =gUnknown_03005D70
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_807294C
- mov r2, r9
- ldrb r0, [r2]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl heathbar_draw_hp
-_0805C4F2:
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =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
- .pool
- thumb_func_end sub_805C410
-
- thumb_func_start sub_805C528
-sub_805C528: @ 805C528
- push {r4-r7,lr}
- ldr r5, =gBattleBufferA
- ldr r6, =gActiveBank
- 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, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x63
- bls _0805C560
- bl PlayerBufferExecCompleted
- b _0805C5AC
- .pool
-_0805C560:
- 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, =sub_80591B8
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =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, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =nullsub_21
- str r1, [r0]
-_0805C5AC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C528
-
- thumb_func_start sub_805C5C4
-sub_805C5C4: @ 805C5C4
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0805C618
- ldr r0, =gUnknown_03005D70
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl healthbar_draw_field_maybe
- ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8059D60
- str r1, [r0]
-_0805C618:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C5C4
-
- thumb_func_start sub_805C63C
-sub_805C63C: @ 805C63C
- push {r4,r5,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0805C68C
- ldr r4, =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, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8059D60
- str r1, [r0]
-_0805C68C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C63C
-
- thumb_func_start sub_805C6A4
-sub_805C6A4: @ 805C6A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r0, =gBattlePartyID
- mov r8, r0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gPlayerParty
- adds r0, r5
- movs r1, 0x37
- bl GetMonData
- ldr r2, =gBattleBufferA
- 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 PlayerBufferExecCompleted
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C6A4
-
- thumb_func_start sub_805C710
-sub_805C710: @ 805C710
- push {lr}
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C710
-
- thumb_func_start sub_805C71C
-sub_805C71C: @ 805C71C
- push {r4,r5,lr}
- ldr r3, =gBattleBufferA
- ldr r0, =gActiveBank
- 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 _0805C78C
- ldr r0, =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 _0805C7B8
- .pool
-_0805C78C:
- ldr r3, =0x040000d4
- str r2, [r3]
- str r5, [r3, 0x4]
- ldr r0, =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r2, r0
- adds r5, r0
- ldr r1, =0xfffff000
- adds r4, r1
- cmp r4, r0
- bhi _0805C78C
- 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]
-_0805C7B8:
- bl PlayerBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C71C
-
- thumb_func_start sub_805C7D0
-sub_805C7D0: @ 805C7D0
- push {lr}
- ldr r2, =gBattleBufferA
- ldr r0, =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 song_play_for_text
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C7D0
-
- thumb_func_start sub_805C800
-sub_805C800: @ 805C800
- push {lr}
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C800
-
- thumb_func_start sub_805C80C
-sub_805C80C: @ 805C80C
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C80C
-
- thumb_func_start sub_805C820
-sub_805C820: @ 805C820
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C820
-
- thumb_func_start sub_805C834
-sub_805C834: @ 805C834
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x23_aa_0
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C834
-
- thumb_func_start sub_805C848
-sub_805C848: @ 805C848
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x24_aa_0
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C848
-
- thumb_func_start sub_805C85C
-sub_805C85C: @ 805C85C
- push {lr}
- ldr r2, =gUnknown_02022D0C
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C85C
-
- thumb_func_start sub_805C878
-sub_805C878: @ 805C878
- push {lr}
- ldr r3, =gUnknown_02022D0C
- ldr r1, =gBattleBufferA
- ldr r0, =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 PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C878
-
- thumb_func_start sub_805C8B0
-sub_805C8B0: @ 805C8B0
- push {lr}
- ldr r2, =gUnknown_02022D0C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C8B0
-
- thumb_func_start sub_805C8C8
-sub_805C8C8: @ 805C8C8
- push {lr}
- ldr r3, =gUnknown_02022D0C
- 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 PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C8C8
-
- thumb_func_start dp01t_29_1_blink
-dp01t_29_1_blink: @ 805C8F0
- push {r4,lr}
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- ldr r4, =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 _0805C924
- bl PlayerBufferExecCompleted
- b _0805C94E
- .pool
-_0805C924:
- ldr r1, =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_80769F4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_blink_t1
- str r1, [r0]
-_0805C94E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_29_1_blink
-
- thumb_func_start sub_805C960
-sub_805C960: @ 805C960
- push {lr}
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_805C960
-
- thumb_func_start sub_805C96C
-sub_805C96C: @ 805C96C
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0805C980
- movs r3, 0xC0
-_0805C980:
- ldr r2, =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 audio_play_and_stuff
- bl PlayerBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805C96C
-
- thumb_func_start sub_805C9B0
-sub_805C9B0: @ 805C9B0
- push {r4,r5,lr}
- ldr r4, =gBattleBufferA
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r3, r0, 9
- adds r0, r4, 0x3
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805C9EC
- bl sub_805EA60
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, r4, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl song_play_for_text
- b _0805CA00
- .pool
-_0805C9EC:
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl fanfare_play
-_0805CA00:
- bl PlayerBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_805C9B0
-
- thumb_func_start sub_805CA0C
-sub_805CA0C: @ 805CA0C
- push {lr}
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =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 sub_80A32E4
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CA0C
-
- thumb_func_start dp01t_2E_1_battle_intro
-dp01t_2E_1_battle_intro: @ 805CA4C
- push {lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl battle_intro_launch
- ldr r2, =gUnknown_020243FC
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_2E_1_battle_intro
-
- thumb_func_start dp01t_2F_1_pokemon_enter
-dp01t_2F_1_pokemon_enter: @ 805CA80
- push {r4-r7,lr}
- ldr r6, =gBankSpriteIds
- ldr r7, =gActiveBank
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =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, =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, =sub_80A6EEC
- 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, =sub_805CC00
- 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 StartObjectImageAnim
- ldr r0, =0x0000d6f8
- bl AllocObjectPalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r1, =gTrainerBackPicPaletteTable
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- 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, =task05_08033660
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldrb r2, [r7]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805CBA2
- ldr r0, =gUnknown_020244B4
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, =sub_8073C30
- str r1, [r0]
-_0805CBA2:
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, =nullsub_21
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_2F_1_pokemon_enter
-
- thumb_func_start sub_805CC00
-sub_805CC00: @ 805CC00
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r4, [r5, 0x38]
- lsls r4, 24
- lsrs r4, 24
- bl obj_free_rotscale_entry
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetObjectPaletteTagBySlot
- lsls r0, 16
- lsrs r0, 16
- bl FreeObjectPaletteByTag
- adds r0, r5, 0
- bl DestroySprite
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_805DD7C
- ldr r0, =gBankSpriteIds
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0
- bl StartObjectImageAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CC00
-
- thumb_func_start task05_08033660
-task05_08033660: @ 805CC68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, =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 _0805CC94
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _0805CD50
- .pool
-_0805CC94:
- ldr r7, =gActiveBank
- 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 _0805CCB4
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0805CCE4
-_0805CCB4:
- ldr r0, =gBattleBufferA
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, =gBattlePartyID
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_805B258
- b _0805CD38
- .pool
-_0805CCE4:
- ldr r4, =gBattleBufferA
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, =gBattlePartyID
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_805B258
- 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, =gPlayerParty
- adds r0, r2
- bl sub_805DD7C
- ldrb r0, [r7]
- movs r1, 0
- bl sub_805B258
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_0805CD38:
- ldr r1, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8058B40
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_0805CD50:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task05_08033660
-
- thumb_func_start sub_805CD74
-sub_805CD74: @ 805CD74
- push {r4-r6,lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805CDA4
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0805CDA4
- bl PlayerBufferExecCompleted
- b _0805CE18
- .pool
-_0805CDA4:
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldr r5, =gActiveBank
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, =gUnknown_02023068
- 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_80735DC
- ldr r2, =gUnknown_020244B4
- ldrb r1, [r5]
- adds r1, r2
- movs r3, 0
- strb r0, [r1]
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805CE0C
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0805CE0C:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_805CE38
- str r0, [r1]
-_0805CE18:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CD74
-
- thumb_func_start sub_805CE38
-sub_805CE38: @ 805CE38
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0805CE70
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x5]
- bl PlayerBufferExecCompleted
-_0805CE70:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CE38
-
- thumb_func_start sub_805CE80
-sub_805CE80: @ 805CE80
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r1, [r0]
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805CEB2
- ldr r2, =gTasks
- ldr r0, =gUnknown_020244B4
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_8073C30
- str r1, [r0]
-_0805CEB2:
- bl PlayerBufferExecCompleted
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CE80
-
- thumb_func_start sub_805CED0
-sub_805CED0: @ 805CED0
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- bl PlayerBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CED0
-
- thumb_func_start dp01t_33_1_enemy_move
-dp01t_33_1_enemy_move: @ 805CEF4
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl sub_80A6A90
- lsls r0, 24
- cmp r0, 0
- beq _0805CF3A
- ldr r3, =gSprites
- ldr r0, =gBankSpriteIds
- 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, =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_805E408
-_0805CF3A:
- bl PlayerBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_33_1_enemy_move
-
- thumb_func_start sub_805CF54
-sub_805CF54: @ 805CF54
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0805CFB6
- ldr r4, =gBattleBufferA
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r6, [r0]
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r4, 0x3
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- adds r3, r6, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0805CFA4
- bl PlayerBufferExecCompleted
- b _0805CFB0
- .pool
-_0805CFA4:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, =bx_8030B2C
- str r0, [r1]
-_0805CFB0:
- adds r0, r6, 0
- bl sub_817E32C
-_0805CFB6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805CF54
-
- thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
-dp01t_35_1_link_standby_message_and_free_vram: @ 805CFC8
- push {r4,r5,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r0, 9
- ldr r4, =gUnknown_02023066
- adds r0, r4
- bl sub_81851A8
- ldrb r0, [r5]
- lsls r0, 9
- subs r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0805D002
- cmp r0, 0x1
- bgt _0805CFF8
- cmp r0, 0
- beq _0805CFFE
- b _0805D020
- .pool
-_0805CFF8:
- cmp r0, 0x2
- beq _0805D01C
- b _0805D020
-_0805CFFE:
- bl b_link_standby_message
-_0805D002:
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- b _0805D020
- .pool
-_0805D01C:
- bl b_link_standby_message
-_0805D020:
- bl PlayerBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
-
- thumb_func_start sub_805D02C
-sub_805D02C: @ 805D02C
- push {r4,lr}
- ldr r1, =gBattleBufferA
- ldr r4, =gActiveBank
- ldrb r3, [r4]
- lsls r0, r3, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _0805D074
- cmp r2, 0x1
- bgt _0805D054
- cmp r2, 0
- beq _0805D05A
- b _0805D084
- .pool
-_0805D054:
- cmp r2, 0x2
- beq _0805D07C
- b _0805D084
-_0805D05A:
- ldr r0, =gUnknown_020244AC
- adds r0, r3, r0
- strb r2, [r0]
- ldr r1, =gUnknown_020244B0
- ldrb r0, [r4]
- adds r0, r1
- strb r2, [r0]
- b _0805D084
- .pool
-_0805D074:
- ldr r0, =gUnknown_020244AC
- b _0805D07E
- .pool
-_0805D07C:
- ldr r0, =gUnknown_020244B0
-_0805D07E:
- adds r0, r3, r0
- movs r1, 0
- strb r1, [r0]
-_0805D084:
- bl PlayerBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805D02C
-
- thumb_func_start sub_805D094
-sub_805D094: @ 805D094
- push {r4,r5,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r0, 9
- ldr r4, =gUnknown_02023068
- adds r0, r4
- bl sub_81851A8
- ldr r2, =gBattleOutcome
- ldrb r0, [r5]
- lsls r0, 9
- subs r1, r4, 0x3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- subs r4, 0x2
- adds r0, r4
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x5
- bl sub_80A2F50
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl PlayerBufferExecCompleted
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80587B0
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805D094
-
- thumb_func_start nullsub_22
-nullsub_22: @ 805D114
- bx lr
- thumb_func_end nullsub_22
-
- thumb_func_start dp11_init
-dp11_init: @ 805D118
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- movs r0, 0x10
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x10
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1]
- movs r0, 0x30
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x4]
- movs r0, 0x10
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0x8]
- movs r0, 0x50
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp11_init
-
- thumb_func_start dp11_free
-dp11_free: @ 805D158
- push {r4,r5,lr}
- ldr r5, =gUnknown_020244D0
- ldr r0, [r5]
- cmp r0, 0
- beq _0805D192
- ldr r0, [r0, 0xC]
- bl Free
- ldr r0, [r5]
- movs r4, 0
- str r4, [r0, 0xC]
- ldr r0, [r0, 0x8]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x8]
- ldr r0, [r0, 0x4]
- bl Free
- ldr r0, [r5]
- str r4, [r0, 0x4]
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- str r4, [r0]
- bl Free
- str r4, [r5]
-_0805D192:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp11_free
-
- thumb_func_start sub_805D19C
-sub_805D19C: @ 805D19C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 9
- ldr r1, =gUnknown_02023068
- adds r2, r1
- mov r10, r2
- movs r1, 0
- movs r2, 0xFF
- bl sub_803FECC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x92
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- asrs r4, r0, 31
- movs r0, 0x2
- ands r4, r0
- adds r6, r4, 0
- adds r5, r4, 0x2
- b _0805D20E
- .pool
-_0805D20C:
- adds r4, 0x1
-_0805D20E:
- cmp r4, r5
- bge _0805D234
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r1, =gUnknown_020240CC
- adds r0, r1
- ldr r0, [r0]
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4, r0
- ldr r2, =gUnknown_0831C494
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, r7
- ble _0805D20C
-_0805D234:
- subs r7, r4, r6
- cmp r4, r5
- bne _0805D23C
- movs r7, 0x2
-_0805D23C:
- movs r6, 0
- movs r4, 0
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, 0
- beq _0805D27C
- mov r5, r10
-_0805D24A:
- ldrh r0, [r5]
- bl sub_805D4A8
- lsls r0, 24
- lsrs r0, 24
- cmp r7, r0
- bne _0805D26E
- mov r0, r10
- adds r0, 0x8
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805D26E
- ldr r0, =gBitTable
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- orrs r6, r0
-_0805D26E:
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0805D27C
- ldrh r0, [r5]
- cmp r0, 0
- bne _0805D24A
-_0805D27C:
- cmp r6, 0
- beq _0805D2AC
- ldr r3, =gBattleStruct
- ldr r1, [r3]
- adds r1, 0x92
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0x92
- lsls r0, r6, 4
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- lsls r0, r6, 24
- lsrs r0, 24
- bl BattleAI_SetupAIData
- bl sub_8130BA4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0805D2AC:
- movs r0, 0x1
- negs r0, r0
- cmp r9, r0
- beq _0805D2B6
- b _0805D40C
-_0805D2B6:
- mov r2, r8
- cmp r2, 0xF
- bne _0805D2BE
- b _0805D3EA
-_0805D2BE:
- movs r5, 0
- movs r6, 0
- ldr r7, =gBitTable
- mov r4, r10
-_0805D2C6:
- ldrh r0, [r4]
- bl sub_805D4A8
- lsls r0, 24
- cmp r0, 0
- bne _0805D2DE
- ldr r0, [r7]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _0805D2DE
- adds r5, 0x1
-_0805D2DE:
- ldrh r0, [r4]
- bl sub_805D4A8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805D2F8
- ldr r0, [r7]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- bne _0805D2F8
- adds r5, 0x10
-_0805D2F8:
- ldrh r0, [r4]
- bl sub_805D4A8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805D316
- ldr r0, [r7]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _0805D316
- movs r2, 0x80
- lsls r2, 1
- adds r5, r2
-_0805D316:
- adds r7, 0x4
- adds r4, 0x2
- ldr r0, =gBitTable
- adds r0, 0xC
- cmp r7, r0
- ble _0805D2C6
- movs r1, 0xF
- ands r1, r5
- cmp r1, 0x1
- ble _0805D32C
- adds r6, 0x1
-_0805D32C:
- movs r0, 0xF0
- ands r0, r5
- cmp r0, 0x1F
- ble _0805D336
- adds r6, 0x1
-_0805D336:
- ldr r2, =0x000001ff
- cmp r0, r2
- ble _0805D33E
- adds r6, 0x1
-_0805D33E:
- cmp r6, 0x1
- bgt _0805D346
- cmp r6, 0
- bne _0805D388
-_0805D346:
- ldr r5, =gBitTable
-_0805D348:
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r4, r1, 16
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _0805D366
- mov r9, r4
-_0805D366:
- movs r0, 0x1
- negs r0, r0
- cmp r9, r0
- beq _0805D348
- b _0805D3D4
- .pool
-_0805D388:
- cmp r1, 0x1
- ble _0805D38E
- movs r6, 0
-_0805D38E:
- cmp r0, 0x1F
- ble _0805D394
- movs r6, 0x1
-_0805D394:
- cmp r0, r2
- ble _0805D39A
- movs r6, 0x2
-_0805D39A:
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r4, r1, 16
- ldr r1, =gBitTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- bne _0805D3CC
- lsls r0, r4, 1
- add r0, r10
- ldrh r0, [r0]
- bl sub_805D4A8
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0805D3CC
- mov r9, r4
-_0805D3CC:
- movs r0, 0x1
- negs r0, r0
- cmp r9, r0
- beq _0805D39A
-_0805D3D4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x31
- bls _0805D40C
-_0805D3EA:
- ldr r2, =gProtectStructs
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x2]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x2]
- movs r0, 0
- b _0805D496
- .pool
-_0805D40C:
- mov r1, r9
- lsls r0, r1, 1
- mov r2, r10
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0xAE
- bne _0805D434
- ldrb r0, [r2, 0x12]
- movs r5, 0
- cmp r0, 0x7
- beq _0805D442
- ldrb r1, [r2, 0x13]
- movs r0, 0x7
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- asrs r5, r0, 31
- movs r0, 0x10
- ands r5, r0
- b _0805D442
-_0805D434:
- ldr r2, =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r5, [r0, 0x6]
-_0805D442:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0805D45C
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 8
- b _0805D48A
- .pool
-_0805D45C:
- cmp r5, 0
- bne _0805D470
- bl sub_805D5F4
- lsls r0, 16
- lsrs r0, 16
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- b _0805D490
-_0805D470:
- ldr r0, =gActiveBank
- 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 r0, 16
-_0805D48A:
- mov r1, r9
- orrs r1, r0
- mov r9, r1
-_0805D490:
- mov r2, r9
- lsls r0, r2, 16
- lsrs r0, 16
-_0805D496:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_805D19C
-
- thumb_func_start sub_805D4A8
-sub_805D4A8: @ 805D4A8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- adds r3, r1, 0
- cmp r0, 0x40
- bls _0805D4C2
- b _0805D5EE
-_0805D4C2:
- lsls r0, 2
- ldr r1, =_0805D4D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0805D4D4:
- .4byte _0805D5D8
- .4byte _0805D5E6
- .4byte _0805D5D8
- .4byte _0805D5EE
- .4byte _0805D5D8
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5D8
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EA
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5D8
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5EE
- .4byte _0805D5E6
-_0805D5D8:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0805D5EE
-_0805D5E6:
- movs r0, 0x2
- b _0805D5F0
-_0805D5EA:
- movs r0, 0x1
- b _0805D5F0
-_0805D5EE:
- movs r0, 0
-_0805D5F0:
- pop {r1}
- bx r1
- thumb_func_end sub_805D4A8
-
- thumb_func_start sub_805D5F4
-sub_805D5F4: @ 805D5F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805D6FA
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0805D630
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x3
- b _0805D63E
- .pool
-_0805D630:
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
-_0805D63E:
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gBattleMons
- movs r2, 0x58
- mov r0, r8
- muls r0, r2
- adds r5, r0, r1
- adds r0, r7, 0
- muls r0, r2
- adds r6, r0, r1
- ldrh r0, [r5, 0x28]
- ldrh r3, [r6, 0x28]
- cmp r0, r3
- bne _0805D680
- bl Random
- adds r3, r0, 0
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- movs r1, 0x2
- ands r1, r3
- adds r0, r1
- b _0805D702
- .pool
-_0805D680:
- ldr r4, =gUnknown_0831C604
- ldr r0, =gActiveBank
- mov r9, r0
- ldrb r0, [r0]
- muls r0, r2
- adds r1, 0x48
- adds r0, r1
- ldr r0, [r0]
- bl GetNatureFromPersonality
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r4, [r0]
- cmp r4, 0x1
- beq _0805D6CC
- cmp r4, 0x1
- bgt _0805D6B4
- cmp r4, 0
- beq _0805D6BA
- b _0805D6FA
- .pool
-_0805D6B4:
- cmp r4, 0x2
- beq _0805D6DE
- b _0805D6FA
-_0805D6BA:
- ldrh r0, [r5, 0x28]
- ldrh r6, [r6, 0x28]
- cmp r0, r6
- bls _0805D6C8
- mov r1, r8
- lsls r0, r1, 8
- b _0805D704
-_0805D6C8:
- lsls r0, r7, 8
- b _0805D704
-_0805D6CC:
- ldrh r0, [r5, 0x28]
- ldrh r6, [r6, 0x28]
- cmp r0, r6
- bcs _0805D6DA
- mov r3, r8
- lsls r0, r3, 8
- b _0805D704
-_0805D6DA:
- lsls r0, r7, 8
- b _0805D704
-_0805D6DE:
- bl Random
- adds r3, r0, 0
- mov r0, r9
- ldrb r1, [r0]
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- ands r4, r3
- adds r0, r4
- lsls r0, 24
- lsrs r0, 16
- b _0805D704
-_0805D6FA:
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
-_0805D702:
- lsls r0, 8
-_0805D704:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_805D5F4
-
- thumb_func_start sub_805D714
-sub_805D714: @ 805D714
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r3, [r0]
- lsls r0, r3, 26
- cmp r0, 0
- bge _0805D766
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _0805D766
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- lsls r0, r1, 25
- cmp r0, 0
- bge _0805D75C
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _0805D766
- .pool
-_0805D75C:
- lsls r0, r3, 27
- cmp r0, 0
- bge _0805D766
- ldr r0, =DummyObjectCallback
- str r0, [r4, 0x1C]
-_0805D766:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805D714
-
- thumb_func_start sub_805D770
-sub_805D770: @ 805D770
- 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, =DummyObjectCallback
- str r0, [r4, 0x1C]
- cmp r1, 0
- bne _0805D798
- adds r0, r4, 0
- movs r1, 0x1
- bl StartObjectRotScalAnim
- b _0805D7A0
- .pool
-_0805D798:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartObjectRotScalAnim
-_0805D7A0:
- adds r0, r4, 0
- bl AnimateSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805D770
-
- thumb_func_start sub_805D7AC
-sub_805D7AC: @ 805D7AC
- push {lr}
- adds r2, r0, 0
- ldr r0, =gUnknown_020243FC
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0805D7E4
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0805D7E4
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0805D7E0
- ldr r0, =sub_805D7EC
- b _0805D7E2
- .pool
-_0805D7E0:
- ldr r0, =DummyObjectCallback
-_0805D7E2:
- str r0, [r2, 0x1C]
-_0805D7E4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805D7AC
-
- thumb_func_start sub_805D7EC
-sub_805D7EC: @ 805D7EC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _0805D800
- ldr r0, =DummyObjectCallback
- str r0, [r1, 0x1C]
-_0805D800:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805D7EC
-
- thumb_func_start move_anim_start_t2_for_situation
-move_anim_start_t2_for_situation: @ 805D808
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- ldr r6, =gUnknown_020244D0
- ldr r1, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r3, [r1, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r1]
- cmp r0, 0
- bne _0805D888
- cmp r4, 0x20
- bne _0805D844
- ldrb r0, [r5]
- movs r1, 0x6
- bl move_anim_start_t2
- b _0805D902
- .pool
-_0805D844:
- cmp r4, 0x8
- beq _0805D850
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _0805D85A
-_0805D850:
- ldrb r0, [r5]
- movs r1, 0
- bl move_anim_start_t2
- b _0805D902
-_0805D85A:
- cmp r4, 0x10
- bne _0805D868
- ldrb r0, [r5]
- movs r1, 0x2
- bl move_anim_start_t2
- b _0805D902
-_0805D868:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _0805D87A
- ldrb r0, [r5]
- movs r1, 0x4
- bl move_anim_start_t2
- b _0805D902
-_0805D87A:
- cmp r4, 0x40
- bne _0805D8EA
- ldrb r0, [r5]
- movs r1, 0x5
- bl move_anim_start_t2
- b _0805D902
-_0805D888:
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r4
- cmp r0, 0
- beq _0805D89C
- ldrb r0, [r5]
- movs r1, 0x3
- bl move_anim_start_t2
- b _0805D902
-_0805D89C:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _0805D8AE
- ldrb r0, [r5]
- movs r1, 0x1
- bl move_anim_start_t2
- b _0805D902
-_0805D8AE:
- movs r0, 0x80
- lsls r0, 21
- ands r0, r4
- cmp r0, 0
- beq _0805D8C2
- ldrb r0, [r5]
- movs r1, 0x7
- bl move_anim_start_t2
- b _0805D902
-_0805D8C2:
- movs r0, 0x80
- lsls r0, 20
- ands r0, r4
- cmp r0, 0
- beq _0805D8D6
- ldrb r0, [r5]
- movs r1, 0x8
- bl move_anim_start_t2
- b _0805D902
-_0805D8D6:
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r4
- cmp r0, 0
- beq _0805D8EA
- ldrb r0, [r5]
- movs r1, 0x9
- bl move_anim_start_t2
- b _0805D902
-_0805D8EA:
- ldr r0, [r6]
- ldrb r2, [r5]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0805D902:
- 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: @ 805D908
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 16
- lsrs r7, r4, 16
- cmp r5, 0
- bne _0805D950
- movs r0, 0x80
- ands r0, r7
- cmp r0, 0
- beq _0805D950
- ldr r0, =gUnknown_020244E4
- adds r0, r6, r0
- movs r2, 0x7F
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1
- b _0805DA1E
- .pool
-_0805D950:
- ldr r0, =gUnknown_020244D0
- mov r9, r0
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r4, r6, 2
- adds r0, r4, r0
- ldrb r1, [r0]
- movs r2, 0x4
- mov r8, r2
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _0805D9CC
- adds r0, r5, 0
- bl sub_805DAA0
- lsls r0, 24
- cmp r0, 0
- bne _0805D980
- movs r0, 0x1
- b _0805DA1E
- .pool
-_0805D980:
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0]
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _0805D9CC
- cmp r5, 0x2
- bne _0805D9CC
- ldr r1, =gSprites
- ldr r0, =gBankSpriteIds
- 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 _0805D9CC
- adds r0, r6, 0
- movs r1, 0x1
- bl refresh_graphics_maybe
- adds r0, r6, 0
- bl sub_805E974
- movs r0, 0x1
- b _0805DA1E
- .pool
-_0805D9CC:
- ldr r0, =gUnknown_02038436
- mov r2, r10
- strb r2, [r0]
- ldr r0, =gUnknown_02038437
- mov r1, sp
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- strh r7, [r0]
- ldr r0, =gUnknown_082C9320
- adds r1, r5, 0
- movs r2, 0
- bl move_something
- ldr r0, =task0A_0803415C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0x8]
- ldr r0, [r4]
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
-_0805DA1E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end move_anim_start_t3
-
- thumb_func_start task0A_0803415C
-task0A_0803415C: @ 805DA48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_020383F8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gUnknown_020383FD
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805DA8A
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- ldr r2, [r2, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0805DA8A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task0A_0803415C
-
- thumb_func_start sub_805DAA0
-sub_805DAA0: @ 805DAA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bgt _0805DAB4
- cmp r0, 0xA
- bge _0805DAB8
- cmp r0, 0x2
- beq _0805DAB8
- b _0805DABC
-_0805DAB4:
- cmp r0, 0x11
- bne _0805DABC
-_0805DAB8:
- movs r0, 0x1
- b _0805DABE
-_0805DABC:
- movs r0, 0
-_0805DABE:
- pop {r1}
- bx r1
- thumb_func_end sub_805DAA0
-
- thumb_func_start move_anim_start_t4
-move_anim_start_t4: @ 805DAC4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_02038436
- strb r1, [r0]
- ldr r0, =gUnknown_02038437
- strb r2, [r0]
- ldr r0, =gUnknown_082C937C
- adds r1, r3, 0
- movs r2, 0
- bl move_something
- ldr r0, =task0A_08034248
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_anim_start_t4
-
- thumb_func_start task0A_08034248
-task0A_08034248: @ 805DB34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_020383F8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gUnknown_020383FD
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805DB76
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- ldr r2, [r2, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0805DB76:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task0A_08034248
-
- thumb_func_start sub_805DB8C
-sub_805DB8C: @ 805DB8C
- movs r0, 0
- bx lr
- thumb_func_end sub_805DB8C
-
- thumb_func_start mplay_80342A4
-mplay_80342A4: @ 805DB90
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- bl mplay_has_finished_maybe
- lsls r0, 24
- cmp r0, 0
- beq _0805DBD8
- ldr r2, =gUnknown_020244D0
- ldr r0, [r2]
- ldr r1, [r0, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- adds r1, 0x1
- strb r1, [r0, 0x8]
- ldr r2, [r2]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1D
- bls _0805DBDC
- ldr r0, =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, =gMPlay_SE2
- bl m4aMPlayStop
-_0805DBD8:
- cmp r5, 0
- beq _0805DBF0
-_0805DBDC:
- movs r0, 0x1
- b _0805DC02
- .pool
-_0805DBF0:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strb r5, [r0, 0x8]
- movs r0, 0
-_0805DC02:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end mplay_80342A4
-
- thumb_func_start sub_805DC0C
-sub_805DC0C: @ 805DC0C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _0805DC50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r6, [sp]
- b _0805DC58
- .pool
-_0805DC50:
- ldrh r5, [r2, 0x2]
- ldr r0, =gUnknown_020244BC
- adds r0, r1, r0
- ldr r6, [r0]
-_0805DC58:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r8
- bl GetBankIdentity
- lsls r0, 24
- lsls r2, r5, 3
- ldr r1, =gMonFrontPicTable
- adds r2, r1
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsrs r0, 22
- adds r1, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
- mov r3, r8
- lsls r2, r3, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r1, r3, 2
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x4]
- mov r9, r2
- cmp r0, 0
- bne _0805DCBC
- adds r0, r4, 0
- bl pokemon_get_pal
- b _0805DCC6
- .pool
-_0805DCBC:
- adds r0, r5, 0
- mov r1, r10
- ldr r2, [sp]
- bl species_and_otid_get_pal
-_0805DCC6:
- adds r6, r0, 0
- ldr r4, =0x0201c000
- adds r0, r6, 0
- adds r1, r4, 0
- bl LZDecompressWram
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- mov r1, r9
- adds r1, 0x80
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =0x00000181
- cmp r5, r0
- bne _0805DD1A
- movs r7, 0x80
- lsls r7, 1
- add r7, r9
- ldr r5, =gBattleStruct
- ldr r1, [r5]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4
- adds r0, r6, 0
- bl LZDecompressWram
- ldr r0, =gUnknown_020244E4
- add r0, r8
- ldrb r1, [r0]
- lsls r1, 5
- adds r1, r4
- ldr r0, [r5]
- adds r0, r1
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_0805DD1A:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- ldr r1, [sp, 0x4]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0805DD46
- ldr r3, =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
-_0805DD46:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805DC0C
-
- thumb_func_start sub_805DD7C
-sub_805DD7C: @ 805DD7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _0805DDC0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, [sp]
- b _0805DDC8
- .pool
-_0805DDC0:
- ldrh r5, [r2, 0x2]
- ldr r0, =gUnknown_020244BC
- adds r0, r1, r0
- ldr r4, [r0]
-_0805DDC8:
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x4]
- mov r0, r8
- bl GetBankIdentity
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x1
- mov r1, r8
- bl sub_80688F8
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- lsls r1, 2
- mov r10, r1
- cmp r0, 0x1
- beq _0805DE00
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- add r0, r10
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0805DE2C
-_0805DE00:
- lsls r0, r5, 3
- ldr r1, =gMonBackPicTable
- adds r0, r1
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsls r2, r7, 2
- adds r1, 0x4
- adds r1, r2
- ldr r1, [r1]
- adds r2, r5, 0
- adds r3, r4, 0
- bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
- b _0805DE46
- .pool
-_0805DE2C:
- lsls r0, r5, 3
- ldr r1, =gMonBackPicTable
- adds r0, r1
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsls r2, r7, 2
- adds r1, 0x4
- adds r1, r2
- ldr r1, [r1]
- adds r2, r5, 0
- adds r3, r4, 0
- bl DecompressMonPic_DetectFrontOrBack
-_0805DE46:
- mov r2, r8
- lsls r1, r2, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r1, r0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- add r0, r10
- ldrh r0, [r0, 0x2]
- mov r9, r1
- cmp r0, 0
- bne _0805DE74
- adds r0, r6, 0
- bl pokemon_get_pal
- b _0805DE7E
- .pool
-_0805DE74:
- adds r0, r5, 0
- ldr r1, [sp, 0x4]
- ldr r2, [sp]
- bl species_and_otid_get_pal
-_0805DE7E:
- adds r6, r0, 0
- ldr r4, =0x0201c000
- adds r0, r6, 0
- adds r1, r4, 0
- bl LZDecompressWram
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- mov r1, r9
- adds r1, 0x80
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =0x00000181
- cmp r5, r0
- bne _0805DED2
- movs r7, 0x80
- lsls r7, 1
- add r7, r9
- ldr r5, =gBattleStruct
- ldr r1, [r5]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4
- adds r0, r6, 0
- bl LZDecompressWram
- ldr r0, =gUnknown_020244E4
- add r0, r8
- ldrb r1, [r0]
- lsls r1, 5
- adds r1, r4
- ldr r0, [r5]
- adds r0, r1
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_0805DED2:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- add r0, r10
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0805DEFC
- ldr r3, =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
-_0805DEFC:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805DD7C
-
- thumb_func_start nullsub_23
-nullsub_23: @ 805DF30
- bx lr
- thumb_func_end nullsub_23
-
- thumb_func_start nullsub_24
-nullsub_24: @ 805DF34
- bx lr
- thumb_func_end nullsub_24
-
- thumb_func_start sub_805DF38
-sub_805DF38: @ 805DF38
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- bl GetBankIdentity
- lsls r0, 24
- lsls r4, 3
- ldr r2, =gTrainerFrontPicTable
- adds r2, r4, r2
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsrs r0, 22
- adds r1, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- movs r2, 0
- bl DecompressPicFromTable_2
- ldr r0, =gTrainerFrontPicPaletteTable
- adds r4, r0
- adds r0, r4, 0
- bl LoadCompressedObjectPalette
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805DF38
-
- thumb_func_start sub_805DF84
-sub_805DF84: @ 805DF84
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- lsls r5, 3
- ldr r2, =gTrainerBackPicTable
- adds r2, r5, r2
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsrs r0, 22
- adds r1, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- movs r2, 0
- bl DecompressPicFromTable_2
- ldr r0, =gTrainerBackPicPaletteTable
- adds r5, r0
- ldr r0, [r5]
- lsls r4, 20
- movs r1, 0x80
- lsls r1, 17
- adds r4, r1
- lsrs r4, 16
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805DF84
-
- thumb_func_start nullsub_25
-nullsub_25: @ 805DFE0
- bx lr
- thumb_func_end nullsub_25
-
- thumb_func_start sub_805DFE4
-sub_805DFE4: @ 805DFE4
- push {lr}
- lsls r0, 16
- ldr r1, =gTrainerFrontPicPaletteTable
- lsrs r0, 13
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeObjectPaletteByTag
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805DFE4
-
- thumb_func_start sub_805DFFC
-sub_805DFFC: @ 805DFFC
- push {r4-r7,lr}
- ldr r4, =gUnknown_0832C128
- adds r0, r4, 0
- bl LoadTaggedObjectPalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadTaggedObjectPalette
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0805E034
- ldr r0, =gUnknown_0832C0D0
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0832C0D8
- bl LoadCompressedObjectPic
- movs r5, 0x2
- b _0805E056
- .pool
-_0805E034:
- ldr r4, =gUnknown_0832C0E0
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r4, =gUnknown_0832C0F0
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- movs r5, 0x4
-_0805E056:
- movs r4, 0
- cmp r4, r5
- bcs _0805E076
- ldr r7, =gBanksBySide
- ldr r6, =gUnknown_0832C108
-_0805E060:
- 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 _0805E060
-_0805E076:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805DFFC
-
- thumb_func_start sub_805E08C
-sub_805E08C: @ 805E08C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r6, 0
- cmp r4, 0
- bne _0805E09C
- b _0805E1AE
-_0805E09C:
- cmp r4, 0x1
- bne _0805E0B8
- ldr r4, =gUnknown_0832C128
- adds r0, r4, 0
- bl LoadTaggedObjectPalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadTaggedObjectPalette
- b _0805E1AE
- .pool
-_0805E0B8:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0805E120
- cmp r4, 0x2
- bne _0805E0F0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0805E0E4
- ldr r0, =gUnknown_0832C100
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E0E4:
- ldr r0, =gUnknown_0832C0D0
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E0F0:
- cmp r4, 0x3
- bne _0805E100
- ldr r0, =gUnknown_0832C0D8
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E100:
- cmp r4, 0x4
- bne _0805E110
- ldr r0, =gBanksBySide
- ldrb r0, [r0]
- b _0805E198
- .pool
-_0805E110:
- cmp r4, 0x5
- bne _0805E1AC
- ldr r0, =gBanksBySide
- ldrb r0, [r0, 0x1]
- b _0805E198
- .pool
-_0805E120:
- cmp r4, 0x2
- bne _0805E130
- ldr r0, =gUnknown_0832C0E0
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E130:
- cmp r4, 0x3
- bne _0805E140
- ldr r0, =gUnknown_0832C0E8
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E140:
- cmp r4, 0x4
- bne _0805E150
- ldr r0, =gUnknown_0832C0F0
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E150:
- cmp r4, 0x5
- bne _0805E160
- ldr r0, =gUnknown_0832C0F8
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E160:
- cmp r4, 0x6
- bne _0805E170
- ldr r0, =gBanksBySide
- ldrb r0, [r0]
- b _0805E198
- .pool
-_0805E170:
- cmp r4, 0x7
- bne _0805E180
- ldr r0, =gBanksBySide
- ldrb r0, [r0, 0x1]
- b _0805E198
- .pool
-_0805E180:
- cmp r4, 0x8
- bne _0805E190
- ldr r0, =gBanksBySide
- ldrb r0, [r0, 0x2]
- b _0805E198
- .pool
-_0805E190:
- cmp r5, 0x9
- bne _0805E1AC
- ldr r0, =gBanksBySide
- ldrb r0, [r0, 0x3]
-_0805E198:
- lsls r0, 3
- ldr r1, =gUnknown_0832C108
- adds r0, r1
- bl LoadCompressedObjectPic
- b _0805E1AE
- .pool
-_0805E1AC:
- movs r6, 0x1
-_0805E1AE:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_805E08C
-
- thumb_func_start load_gfxc_health_bar
-load_gfxc_health_bar: @ 805E1B8
- push {lr}
- ldr r0, =gUnknown_08C093F0
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- movs r2, 0xBA
- lsls r2, 1
- adds r1, r2
- ldr r1, [r1]
- bl LZDecompressWram
- pop {r0}
- bx r0
- .pool
- thumb_func_end load_gfxc_health_bar
-
- thumb_func_start battle_load_something
-battle_load_something: @ 805E1D8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r6, 0
- ldrb r0, [r5]
- cmp r0, 0x6
- bls _0805E1E8
- b _0805E346
-_0805E1E8:
- lsls r0, 2
- ldr r1, =_0805E1F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0805E1F8:
- .4byte _0805E214
- .4byte _0805E21A
- .4byte _0805E324
- .4byte _0805E230
- .4byte _0805E260
- .4byte _0805E29C
- .4byte _0805E33C
-_0805E214:
- bl sub_805E378
- b _0805E324
-_0805E21A:
- ldrb r0, [r4]
- bl sub_805E08C
- lsls r0, 24
- cmp r0, 0
- beq _0805E228
- b _0805E320
-_0805E228:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0805E346
-_0805E230:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0805E24C
- ldrb r0, [r4]
- cmp r0, 0
- bne _0805E24C
- bl battle_make_oam_safari_battle
- b _0805E252
- .pool
-_0805E24C:
- ldrb r0, [r4]
- bl battle_make_oam_normal_battle
-_0805E252:
- ldr r2, =gUnknown_03005D70
- ldrb r1, [r4]
- adds r1, r2
- strb r0, [r1]
- b _0805E30E
- .pool
-_0805E260:
- ldrb r0, [r4]
- bl sub_8072B18
- ldr r0, =gBanksBySide
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _0805E288
- ldr r0, =gUnknown_03005D70
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0
- bl nullsub_30
- b _0805E30E
- .pool
-_0805E288:
- ldr r0, =gUnknown_03005D70
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0x1
- bl nullsub_30
- b _0805E30E
- .pool
-_0805E29C:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0805E2E4
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0805E302
- ldr r0, =gUnknown_03005D70
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- b _0805E302
- .pool
-_0805E2E4:
- ldr r0, =gUnknown_03005D70
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
-_0805E302:
- ldr r1, =gUnknown_03005D70
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
-_0805E30E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0805E346
-_0805E320:
- movs r0, 0
- strb r0, [r4]
-_0805E324:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0805E346
- .pool
-_0805E33C:
- bl sub_805EC84
- bl sub_81B8C68
- movs r6, 0x1
-_0805E346:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end battle_load_something
-
- thumb_func_start sub_805E350
-sub_805E350: @ 805E350
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- movs r1, 0
- movs r2, 0x30
- bl memset
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805E350
-
- thumb_func_start sub_805E378
-sub_805E378: @ 805E378
- push {lr}
- bl sub_805E350
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805E378
-
- thumb_func_start sub_805E394
-sub_805E394: @ 805E394
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r5, =gNoOfAllBanks
- ldrb r0, [r5]
- cmp r4, r0
- bge _0805E3EA
- ldr r0, =gSprites
- mov r9, r0
- movs r0, 0x1
- mov r12, r0
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ldr r7, =gUnknown_020244D0
- ldr r6, =gBankSpriteIds
-_0805E3B8:
- ldr r0, [r7]
- ldr r0, [r0]
- lsls r3, r4, 2
- adds r3, r0
- adds r0, r4, r6
- 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
- mov r0, r12
- ands r1, r0
- ldrb r2, [r3]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _0805E3B8
-_0805E3EA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805E394
-
- thumb_func_start sub_805E408
-sub_805E408: @ 805E408
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_020244D0
- ldr r1, [r1]
- ldr r1, [r1]
- lsls r3, r0, 2
- adds r3, r1
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- 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
- .pool
- thumb_func_end sub_805E408
-
- thumb_func_start sub_805E448
-sub_805E448: @ 805E448
- 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
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r2, 24
- cmp r2, 0
- beq _0805E51C
- ldr r0, =gBankSpriteIds
- adds r5, r7, r0
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- mov r8, r1
- add r0, r8
- ldr r4, =gUnknown_020244D0
- ldr r1, [r4]
- ldr r1, [r1, 0x8]
- ldrb r1, [r1]
- bl StartObjectImageAnim
- lsls r0, r7, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r6, r0, 16
- ldr r2, =gBattleStruct
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrh r1, [r0]
- lsls r1, 5
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3
- ldr r0, [r2]
- adds r0, r1
- adds r1, r6, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =gUnknown_020244E4
- adds r1, r7, r1
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r4]
- ldr r1, [r0]
- lsls r0, r7, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0805E4DE
- ldr r3, =0x00007fff
- adds r0, r6, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r6, 1
- ldr r0, =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
-_0805E4DE:
- adds r0, r7, 0
- bl sub_80A6138
- ldrb r2, [r5]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- b _0805E77A
- .pool
-_0805E51C:
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0805E558
- movs r0, 0
- mov r10, r0
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r2, [r0, 0x18]
- ldrh r1, [r2, 0x2]
- mov r8, r1
- ldr r3, [r2, 0x8]
- mov r9, r3
- ldr r4, [r2, 0xC]
- lsls r0, r1, 3
- ldr r1, =gMonBackPicTable
- adds r0, r1
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- ldr r1, [r1, 0x4]
- ldr r3, [r2, 0x10]
- b _0805E5FA
- .pool
-_0805E558:
- adds r0, r7, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805E58C
- ldr r1, =gBattlePartyID
- ldr r2, [sp]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _0805E59C
- .pool
-_0805E58C:
- ldr r1, =gBattlePartyID
- ldr r3, [sp]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_0805E59C:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0805E618
- ldr r0, =gBattlePartyID
- lsls r4, r7, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =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 r4, r0, 0
- mov r1, r8
- lsls r0, r1, 3
- ldr r1, =gMonBackPicTable
- adds r0, r1
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- mov r3, r10
- lsls r2, r3, 2
- adds r1, 0x4
- adds r1, r2
- ldr r1, [r1]
- ldr r3, =gUnknown_020244BC
- lsls r2, r7, 2
- adds r2, r3
- ldr r3, [r2]
-_0805E5FA:
- mov r2, r8
- bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
- b _0805E662
- .pool
-_0805E618:
- ldr r0, =gBattlePartyID
- lsls r4, r7, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =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 r4, r0, 0
- mov r1, r8
- lsls r0, r1, 3
- ldr r1, =gMonFrontPicTable
- adds r0, r1
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- mov r3, r10
- lsls r2, r3, 2
- adds r1, 0x4
- adds r1, r2
- ldr r1, [r1]
- ldr r3, =gUnknown_020244BC
- lsls r2, r7, 2
- adds r2, r3
- ldr r3, [r2]
- mov r2, r8
- bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
-_0805E662:
- ldr r0, =gUnknown_020244D4
- ldr r0, [r0]
- mov r2, r10
- lsls r1, r2, 2
- adds r0, 0x4
- adds r0, r1
- ldr r2, [r0]
- ldr r0, =gBankSpriteIds
- adds r0, r7
- mov r10, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r3, =gSprites
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, =0x06010000
- adds r0, r1
- ldr r1, =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, =0x84000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- lsls r0, r7, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r6, r0, 16
- mov r0, r8
- adds r1, r4, 0
- mov r2, r9
- bl species_and_otid_get_pal
- mov r9, r0
- ldr r4, =0x0201c000
- adds r1, r4, 0
- bl LZDecompressWram
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =0x00000181
- cmp r8, r0
- bne _0805E70A
- mov r2, r10
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r1, 0x8
- adds r0, r1
- ldr r1, =gUnknown_08309AAC
- mov r3, r8
- lsls r2, r3, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldr r5, =gBattleStruct
- ldr r1, [r5]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4
- mov r0, r9
- bl LZDecompressWram
- ldr r0, =gUnknown_020244E4
- ldr r1, [sp]
- adds r0, r1, r0
- ldrb r1, [r0]
- lsls r1, 5
- adds r1, r4
- ldr r0, [r5]
- adds r0, r1
- adds r1, r6, 0
- movs r2, 0x20
- bl LoadPalette
-_0805E70A:
- ldr r3, =0x00007fff
- adds r0, r6, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r6, 1
- ldr r0, =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0805E74A
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r7, 2
- adds r0, r1
- mov r2, r8
- strh r2, [r0, 0x2]
- ldr r0, =gUnknown_020244E4
- adds r1, r7, r0
- ldr r3, [sp]
- adds r0, r3, r0
- ldrb r0, [r0]
- strb r0, [r1]
-_0805E74A:
- adds r0, r7, 0
- bl sub_80A6138
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, =gSprites
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- mov r3, r10
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =gUnknown_020244E4
- adds r1, r7, r1
- ldrb r1, [r1]
- bl StartObjectImageAnim
-_0805E77A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805E448
-
- thumb_func_start sub_805E7DC
-sub_805E7DC: @ 805E7DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r1, 24
- cmp r1, 0
- bne _0805E898
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0805E7F8
- movs r4, 0
- b _0805E802
-_0805E7F8:
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r4, r0, 24
-_0805E802:
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- beq _0805E814
- ldr r0, =gUnknown_08C2D120
- b _0805E822
- .pool
-_0805E814:
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0805E83C
- ldr r0, =gUnknown_08C2CEE0
-_0805E822:
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsls r4, 2
- adds r1, 0x4
- adds r1, r4
- ldr r1, [r1]
- bl LZDecompressVram
- b _0805E84E
- .pool
-_0805E83C:
- ldr r0, =gUnknown_08C2D120
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- lsls r4, 2
- adds r1, 0x4
- adds r1, r4
- ldr r1, [r1]
- bl LZDecompressVram
-_0805E84E:
- movs r3, 0x1
- lsls r6, r5, 4
- ldr r7, =gUnknown_08C2CEBC
- ldr r0, =gUnknown_020244D4
- ldr r0, [r0]
- adds r0, 0x4
- adds r4, r0, r4
- ldr r2, =0x040000d4
- ldr r5, =0x84000200
-_0805E860:
- ldr r0, [r4]
- lsls r1, r3, 11
- adds r1, r0, r1
- str r0, [r2]
- str r1, [r2, 0x4]
- str r5, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r3, 0x1
- cmp r3, 0x3
- ble _0805E860
- movs r0, 0x80
- lsls r0, 1
- adds r1, r6, r0
- adds r0, r7, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _0805E8E6
- .pool
-_0805E898:
- bl sub_80A4DF0
- lsls r0, 24
- cmp r0, 0
- bne _0805E8E6
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0805E8D0
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_805DC0C
- b _0805E8E6
- .pool
-_0805E8D0:
- ldr r1, =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- bl sub_805DD7C
-_0805E8E6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805E7DC
-
- thumb_func_start refresh_graphics_maybe
-refresh_graphics_maybe: @ 805E8F4
- 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_805E7DC
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- ldr r0, =gUnknown_020244E4
- adds r0, r6, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartObjectImageAnim
- cmp r5, 0
- bne _0805E938
- adds r0, r6, 0
- bl sub_80A614C
- b _0805E93E
- .pool
-_0805E938:
- adds r0, r6, 0
- bl sub_80A6138
-_0805E93E:
- 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_805E94C
-sub_805E94C: @ 805E94C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xA4
- bne _0805E96C
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0805E96C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805E94C
-
- thumb_func_start sub_805E974
-sub_805E974: @ 805E974
- lsls r0, 24
- ldr r1, =gUnknown_020244D0
- ldr r1, [r1]
- ldr r1, [r1]
- lsrs r0, 22
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_805E974
-
- thumb_func_start sub_805E990
-sub_805E990: @ 805E990
- 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_8075060
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805EA08
- ldr r7, =gUnknown_020244D0
- ldr r0, [r7]
- ldr r2, [r0]
- lsls r4, r6, 2
- adds r0, r4, r2
- ldrb r1, [r0]
- movs r5, 0x2
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0805EA5A
- adds r0, r6, 0
- eors r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0805E9F6
- movs r0, 0x5A
- bl audio_play
-_0805E9F6:
- ldr r0, [r7]
- ldr r1, [r0]
- adds r1, r4, r1
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- b _0805EA5A
- .pool
-_0805EA08:
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r0, [r0]
- lsls r1, r6, 2
- adds r1, r0
- 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 _0805EA34
- movs r0, 0x5A
- bl m4aSongNumStop
- b _0805EA5A
- .pool
-_0805EA34:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805EA5A
- ldr r1, [r4]
- movs r0, 0x2
- eors r7, r0
- ldr r1, [r1]
- lsls r0, r7, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0805EA5A
- movs r0, 0x5A
- bl m4aSongNumStop
-_0805EA5A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_805E990
-
- thumb_func_start sub_805EA60
-sub_805EA60: @ 805EA60
- push {r4-r6,lr}
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gUnknown_020244D0
- ldr r0, [r5]
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r6, 0x3
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805EAA2
- ldr r2, [r5]
- movs r0, 0x2
- adds r1, r4, 0
- eors r1, r0
- ldr r0, [r2]
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
-_0805EAA2:
- movs r0, 0x5A
- bl m4aSongNumStop
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EA60
-
- thumb_func_start sub_805EAB4
-sub_805EAB4: @ 805EAB4
- 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_8075060
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805EAB4
-
- thumb_func_start sub_805EAE8
-sub_805EAE8: @ 805EAE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0805EB7E
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r5, =gBattlePartyID
- 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, =gPlayerParty
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0805EB5A
- adds r0, r4, 0
- mov r1, r8
- bl sub_805E990
-_0805EB5A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805EB7E
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0805EB7E
- adds r0, r4, 0
- mov r1, r9
- bl sub_805E990
-_0805EB7E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EAE8
-
- thumb_func_start sub_805EB9C
-sub_805EB9C: @ 805EB9C
- 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, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- bge _0805EC6C
- 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
-_0805EBC8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80A6A90
- lsls r0, 24
- cmp r0, 0
- beq _0805EC60
- ldr r4, =gSprites
- ldr r0, =gBankSpriteIds
- 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 _0805EC3C
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r2, [r0, 0x4]
- 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 _0805EC60
- .pool
-_0805EC3C:
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- 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]
-_0805EC60:
- adds r6, 0xC
- adds r5, 0x1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r5, r0
- blt _0805EBC8
-_0805EC6C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EB9C
-
- thumb_func_start sub_805EC84
-sub_805EC84: @ 805EC84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gUnknown_0831C6A0
- bl LoadCompressedObjectPic
- movs r0, 0x1
- bl GetBankByPlayerAI
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0831C6B0
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A5C6C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A5C6C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0xE8
- lsls r0, 13
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- ldr r6, =gUnknown_020244D0
- ldr r1, [r6]
- ldr r2, [r1, 0x4]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r2, r1, r2
- strb r0, [r2, 0x7]
- ldr r7, =gSprites
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r1, r0
- 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 _0805ED56
- movs r0, 0x3
- bl GetBankByPlayerAI
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A5C6C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A5C6C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0xE8
- lsls r0, 13
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- ldr r1, [r6]
- ldr r2, [r1, 0x4]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r2, r1, r2
- strb r0, [r2, 0x7]
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
-_0805ED56:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EC84
-
- thumb_func_start sub_805ED70
-@ int sub_805ED70(obj *a1)
-sub_805ED70: @ 805ED70
- 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, =gBankSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =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 _0805EDAC
- adds r0, r4, 0
- bl sub_80A6A90
- lsls r0, 24
- cmp r0, 0
- bne _0805EDC0
-_0805EDAC:
- ldr r0, =sub_805EE48
- str r0, [r5, 0x1C]
- b _0805EE36
- .pool
-_0805EDC0:
- ldr r0, =gUnknown_020383FD
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805EDD2
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0805EDE4
-_0805EDD2:
- movs r0, 0x1
- mov r8, r0
- ldr r2, =gUnknown_020244D0
- lsls r4, 2
- b _0805EE06
- .pool
-_0805EDE4:
- ldr r2, =gUnknown_020244D0
- ldr r0, [r2]
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r3, r1, r0
- ldrh r0, [r3, 0x2]
- adds r4, r1, 0
- cmp r0, 0
- beq _0805EE06
- ldr r0, =gUnknown_08305DCC
- ldrh r1, [r3, 0x2]
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0805EE06
- movs r0, 0x1
- mov r8, r0
-_0805EE06:
- ldr r0, [r2]
- ldr r0, [r0]
- adds r0, r4, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0805EE1A
- movs r0, 0x1
- mov r8, r0
-_0805EE1A:
- 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]
-_0805EE36:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805ED70
-
- thumb_func_start sub_805EE48
-sub_805EE48: @ 805EE48
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_805EE48
-
- thumb_func_start sub_805EE54
-sub_805EE54: @ 805EE54
- 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 GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0805EED0
- ldr r0, =gUnknown_020244D0
- ldr r3, [r0]
- ldr r1, [r3]
- lsls r0, r4, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _0805EE7E
- adds r5, r0, 0
-_0805EE7E:
- ldr r0, =gUnknown_08305DCC
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805EEB4
- ldr r2, =gSprites
- ldr r1, [r3, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_805ED70
- b _0805EECE
- .pool
-_0805EEB4:
- ldr r2, =gSprites
- ldr r1, [r3, 0x4]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_805EE48
-_0805EECE:
- str r1, [r0]
-_0805EED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EE54
-
- thumb_func_start sub_805EEE0
-sub_805EEE0: @ 805EEE0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- ldr r1, =gUnknown_020244D0
- ldr r1, [r1]
- ldr r3, [r1, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_805EE48
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_805EEE0
-
- thumb_func_start sub_805EF14
-sub_805EF14: @ 805EF14
- push {r4-r6,lr}
- ldr r3, =0x06000240
- movs r0, 0
- movs r6, 0xF0
- lsls r6, 8
-_0805EF1E:
- adds r5, r0, 0x1
- movs r4, 0xF
-_0805EF22:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0805EF32
- adds r0, r6, 0
- orrs r0, r1
- strh r0, [r3]
-_0805EF32:
- ldrh r1, [r3]
- movs r2, 0xF0
- lsls r2, 4
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0805EF46
- adds r0, r2, 0
- orrs r0, r1
- strh r0, [r3]
-_0805EF46:
- ldrh r1, [r3]
- movs r2, 0xF0
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _0805EF58
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_0805EF58:
- ldrh r1, [r3]
- movs r2, 0xF
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _0805EF6A
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_0805EF6A:
- adds r3, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0805EF22
- adds r0, r5, 0
- cmp r0, 0x8
- ble _0805EF1E
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EF14
-
- thumb_func_start sub_805EF84
-sub_805EF84: @ 805EF84
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r2, [r0]
- lsls r0, r4, 2
- adds r0, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r0, 0x2]
- ldr r0, =gUnknown_020244E4
- adds r0, r4, r0
- strb r3, [r0]
- cmp r1, 0
- bne _0805EFAC
- adds r0, r4, 0
- bl sub_805E974
-_0805EFAC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805EF84
-
- thumb_func_start init_uns_table_pokemon_copy
-init_uns_table_pokemon_copy: @ 805EFBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r4, =gUnknown_020244D4
- str r6, [r4]
- movs r0, 0xC0
- lsls r0, 1
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0x80
- lsls r0, 8
- bl AllocZeroed
- ldr r1, [r4]
- str r0, [r1]
-_0805EFE2:
- ldr r0, =gUnknown_020244D4
- ldr r1, [r0]
- lsls r4, r6, 2
- adds r2, r1, 0x4
- adds r2, r4
- lsls r3, r6, 13
- ldr r0, [r1]
- adds r0, r3
- str r0, [r2]
- lsls r3, r6, 1
- adds r0, r3, r6
- lsls r0, 3
- adds r1, r0, r1
- ldr r2, =gUnknown_08329D98
- adds r1, 0x14
- adds r0, r2
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- movs r5, 0
- mov r9, r3
- lsls r0, r6, 5
- mov r8, r0
- adds r1, r6, 0x1
- mov r10, r1
- mov r12, r8
- adds r7, r4, 0
-_0805F01A:
- ldr r2, =gUnknown_020244D4
- ldr r1, [r2]
- lsls r4, r5, 3
- add r4, r12
- adds r3, r1, 0
- adds r3, 0x74
- adds r3, r4
- adds r0, r1, 0x4
- adds r0, r7
- lsls r2, r5, 11
- ldr r0, [r0]
- adds r0, r2
- str r0, [r3]
- adds r1, r4
- adds r1, 0x78
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0805F01A
- ldr r1, =gUnknown_020244D4
- ldr r2, [r1]
- mov r5, r9
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x20
- adds r1, r0
- mov r0, r8
- adds r0, 0x74
- adds r2, r0
- str r2, [r1]
- mov r7, r10
- lsls r0, r7, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _0805EFE2
- movs r0, 0x80
- lsls r0, 5
- bl AllocZeroed
- ldr r1, =gUnknown_020244D4
- ldr r1, [r1]
- movs r2, 0xBA
- lsls r2, 1
- adds r1, r2
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end init_uns_table_pokemon_copy
-
- thumb_func_start sub_805F094
-sub_805F094: @ 805F094
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D4
- ldr r0, [r6]
- cmp r0, 0
- beq _0805F106
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0805F0BA
- bl Free
- ldr r0, [r6]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_0805F0BA:
- ldr r0, [r6]
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0805F0D8
- bl Free
- ldr r0, [r6]
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_0805F0D8:
- ldr r0, [r6]
- movs r5, 0xBA
- lsls r5, 1
- adds r0, r5
- ldr r0, [r0]
- bl Free
- ldr r0, [r6]
- adds r5, r0, r5
- movs r4, 0
- str r4, [r5]
- ldr r0, [r0]
- bl Free
- ldr r0, [r6]
- str r4, [r0]
- str r4, [r0, 0x4]
- str r4, [r0, 0x8]
- str r4, [r0, 0xC]
- str r4, [r0, 0x10]
- bl Free
- str r4, [r6]
-_0805F106:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F094
-
- thumb_func_start sub_805F110
-sub_805F110: @ 805F110
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x37
- bl GetMonData
- ldr r1, =0x00000fff
- ands r1, r0
- cmp r1, 0
- bne _0805F158
- adds r0, r5, 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_8075060
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- ble _0805F158
- movs r0, 0x1
- b _0805F15A
- .pool
-_0805F158:
- movs r0, 0
-_0805F15A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805F110
-
- thumb_func_start nullsub_26
-nullsub_26: @ 805F160
- bx lr
- thumb_func_end nullsub_26
-
- thumb_func_start sub_805F164
-sub_805F164: @ 805F164
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_exec_buffer_A_ch0_tbl7
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_805F164
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl7
-bx_exec_buffer_A_ch0_tbl7: @ 805F180
- push {lr}
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0805F1CC
- ldr r0, =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0805F1C8
- ldr r0, =gUnknown_0831C6C8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0805F1CC
- .pool
-_0805F1C8:
- bl dp01_tbl7_exec_completed
-_0805F1CC:
- pop {r0}
- bx r0
- thumb_func_end bx_exec_buffer_A_ch0_tbl7
-
- thumb_func_start sub_805F1D0
-sub_805F1D0: @ 805F1D0
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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, =DummyObjectCallback
- cmp r1, r0
- bne _0805F1F4
- bl dp01_tbl7_exec_completed
-_0805F1F4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F1D0
-
- thumb_func_start sub_805F208
-sub_805F208: @ 805F208
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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, =DummyObjectCallback
- cmp r1, r0
- bne _0805F22C
- bl dp01_tbl7_exec_completed
-_0805F22C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F208
-
- thumb_func_start sub_805F240
-sub_805F240: @ 805F240
- push {r4-r6,lr}
- ldr r5, =gSprites
- ldr r6, =gBankSpriteIds
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- bne _0805F292
- adds r0, r2, r5
- ldrh r0, [r0, 0x6]
- bl sub_805DFE4
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl obj_free_rotscale_entry
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- bl dp01_tbl7_exec_completed
-_0805F292:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F240
-
- thumb_func_start sub_805F2A8
-sub_805F2A8: @ 805F2A8
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r1, [r4]
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0805F2E0
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- bl dp01_tbl7_exec_completed
-_0805F2E0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F2A8
-
- thumb_func_start sub_805F2F0
-sub_805F2F0: @ 805F2F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r10, r0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F32C
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F31E
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805F32C
-_0805F31E:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0805F368
-_0805F32C:
- ldr r2, =gSprites
- ldr r1, =gUnknown_03005D70
- ldr r3, =gActiveBank
- 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, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- bne _0805F34E
- movs r1, 0x1
- mov r10, r1
-_0805F34E:
- movs r6, 0
- b _0805F3A2
- .pool
-_0805F368:
- ldr r3, =gSprites
- ldr r6, =gUnknown_03005D70
- ldr r2, =gActiveBank
- ldrb r4, [r2]
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r5, [r0]
- ldr r0, =DummyObjectCallback
- cmp r5, r0
- bne _0805F3A0
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- cmp r0, r5
- bne _0805F3A0
- movs r0, 0x1
- mov r10, r0
-_0805F3A0:
- movs r6, 0x1
-_0805F3A2:
- ldr r3, =gUnknown_020244D8
- ldr r1, =gUnknown_020244D0
- mov r8, r1
- ldr r2, [r1]
- ldr r7, =gActiveBank
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r5, [r2, 0x4]
- adds r0, r5, r0
- str r0, [r3]
- ldr r2, =gUnknown_020244DC
- ldrb r0, [r7]
- movs r1, 0x2
- mov r9, r1
- mov r1, r9
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5, r0
- str r0, [r2]
- mov r0, r10
- cmp r0, 0
- bne _0805F3D8
- b _0805F53C
-_0805F3D8:
- cmp r6, 0x1
- bne _0805F494
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0805F3F2
- b _0805F53C
-_0805F3F2:
- mov r0, r9
- eors r0, r2
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- ands r6, r0
- cmp r6, 0
- bne _0805F408
- b _0805F53C
-_0805F408:
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- mov r1, r8
- ldr r0, [r1]
- ldrb r2, [r7]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- mov r0, r8
- ldr r2, [r0]
- ldrb r0, [r7]
- mov r1, r9
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- mov r1, r8
- ldr r2, [r1]
- ldrb r0, [r7]
- mov r1, r9
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- b _0805F51A
- .pool
-_0805F494:
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805F53C
- adds r0, r2, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805F4E4
- mov r0, r8
- ldr r2, [r0]
- ldrb r0, [r7]
- mov r1, r9
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0805F53C
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
-_0805F4E4:
- mov r1, r8
- ldr r0, [r1]
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1]
- mov r1, r8
- ldr r0, [r1]
- ldr r1, =gActiveBank
- ldrb r2, [r1]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
-_0805F51A:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F2A8
- str r1, [r0]
-_0805F53C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F2F0
-
- thumb_func_start sub_805F560
-sub_805F560: @ 805F560
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- mov r10, r0
- ldr r5, =gUnknown_020244D0
- ldr r0, [r5]
- ldr r4, =gActiveBank
- ldrb r2, [r4]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- movs r6, 0xC4
- lsls r6, 1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0805F5A6
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_0805F5A6:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00008040
- ands r0, r1
- cmp r0, 0
- bne _0805F5EE
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F5EE
- ldr r2, [r5]
- ldrb r1, [r4]
- movs r0, 0x2
- adds r3, r0, 0
- eors r3, r1
- ldr r1, [r2, 0x4]
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0805F5EE
- ldr r0, =gBattlePartyID
- adds r0, r2, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8172EF0
-_0805F5EE:
- ldr r2, =gUnknown_020244D0
- ldr r0, [r2]
- ldr r1, =gActiveBank
- mov r8, r1
- ldrb r4, [r1]
- ldr r5, [r0, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r5
- ldrb r1, [r3]
- movs r6, 0x8
- adds r0, r6, 0
- ands r0, r1
- mov r9, r2
- cmp r0, 0
- bne _0805F6D0
- movs r7, 0x2
- adds r1, r7, 0
- eors r1, r4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0805F6D0
- ldrb r1, [r3, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0805F6B4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F684
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805F684
- ldr r4, =gUnknown_03005D70
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- mov r1, r8
- ldrb r0, [r1]
- eors r0, r7
- bl sub_8076918
- mov r1, r8
- ldrb r0, [r1]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80729D0
-_0805F684:
- ldr r5, =gUnknown_03005D70
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r4]
- bl sub_8076918
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_80729D0
-_0805F6B4:
- ldr r3, =gUnknown_020244D0
- ldr r2, [r3]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r9, r3
-_0805F6D0:
- mov r1, r9
- ldr r0, [r1]
- ldr r4, =gActiveBank
- ldrb r2, [r4]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x80
- bne _0805F792
- movs r1, 0x2
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805F792
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _0805F792
- mov r1, r9
- ldr r0, [r1]
- ldrb r4, [r4]
- ldr r1, [r0, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0805F774
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x42
- ands r0, r1
- cmp r0, 0x42
- bne _0805F768
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0805F774
- ldr r0, =gMPlay_BGM
- bl m4aMPlayContinue
- b _0805F774
- .pool
-_0805F768:
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0805F774:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x1
- str r0, [sp]
-_0805F792:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F7B2
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F810
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0805F810
-_0805F7B2:
- ldr r2, =gSprites
- ldr r0, =gUnknown_03005D7C
- ldr r1, =gActiveBank
- ldrb r4, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r3, [r0]
- ldr r0, =DummyObjectCallback
- cmp r3, r0
- bne _0805F86E
- ldr r0, =gBankSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r3
- bne _0805F86E
- movs r1, 0x1
- mov r10, r1
- b _0805F86E
- .pool
-_0805F810:
- ldr r2, =gSprites
- ldr r7, =gUnknown_03005D7C
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- adds r0, r3, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, =DummyObjectCallback
- cmp r4, r0
- bne _0805F86E
- ldr r6, =gBankSpriteIds
- adds r0, r3, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r5, [r0]
- cmp r5, r4
- bne _0805F86E
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r4, [r0]
- cmp r4, r5
- bne _0805F86E
- adds r0, r3, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0805F86E
- movs r0, 0x1
- mov r10, r0
-_0805F86E:
- ldr r1, [sp]
- cmp r1, 0
- beq _0805F958
- mov r0, r10
- cmp r0, 0
- beq _0805F958
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0805F8D2
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805F8D2
- ldr r1, =gUnknown_03005D7C
- ldr r5, =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, =gSprites
- adds r0, r1
- bl DestroySprite
- ldrb r0, [r5]
- eors r4, r0
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =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_805EE54
-_0805F8D2:
- ldr r1, =gUnknown_03005D7C
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- ldrb r5, [r4]
- ldr r1, =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_805EE54
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r0, [r3]
- ldrb r2, [r4]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r0, [r3]
- ldrb r2, [r4]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F2F0
- str r1, [r0]
-_0805F958:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F560
-
- thumb_func_start sub_805F994
-sub_805F994: @ 805F994
- push {r4,r5,lr}
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- ldr r1, =gActiveBank
- ldrb r3, [r1]
- adds r0, r3, r0
- 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 _0805F9E0
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0805F9E0
- ldr r0, =gBattlePartyID
- adds r0, r2, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8172EF0
-_0805F9E0:
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- ldr r5, =gActiveBank
- ldrb r3, [r5]
- 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, =DummyObjectCallback
- cmp r1, r0
- bne _0805FA48
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r1
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805FA48
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r4]
- ldrb r2, [r5]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- bl dp01_tbl7_exec_completed
-_0805FA48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805F994
-
- thumb_func_start sub_805FA70
-sub_805FA70: @ 805FA70
- push {r4-r6,lr}
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- ldr r5, =gUnknown_03005D70
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8074AA0
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_80729D0
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0805FAB8
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl heathbar_draw_hp
- b _0805FABC
- .pool
-_0805FAB8:
- bl dp01_tbl7_exec_completed
-_0805FABC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_805FA70
-
- thumb_func_start sub_805FAC4
-sub_805FAC4: @ 805FAC4
- push {lr}
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- ldr r1, =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 _0805FAF2
- ldr r0, =gUnknown_03005D70
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8072984
- bl dp01_tbl7_exec_completed
-_0805FAF2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805FAC4
-
- thumb_func_start sub_805FB08
-sub_805FB08: @ 805FB08
- push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805FB62
- ldr r5, =gBankSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl obj_free_rotscale_entry
- 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_805EEE0
- ldr r1, =gUnknown_03005D70
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl dp01_tbl7_exec_completed
-_0805FB62:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805FB08
-
- thumb_func_start bx_t7_button_a
-bx_t7_button_a: @ 805FB7C
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _0805FB8E
- bl dp01_tbl7_exec_completed
-_0805FB8E:
- pop {r0}
- bx r0
- thumb_func_end bx_t7_button_a
-
- thumb_func_start bx_blink_t7
-bx_blink_t7: @ 805FB94
- push {r4,lr}
- ldr r1, =gBankSpriteIds
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, =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 _0805FBE0
- 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, =gDoingBattleAnim
- strb r3, [r0]
- bl dp01_tbl7_exec_completed
- b _0805FC0A
- .pool
-_0805FBE0:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0805FC04
- 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]
-_0805FC04:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0805FC0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t7
-
- thumb_func_start sub_805FC10
-sub_805FC10: @ 805FC10
- push {r4,lr}
- ldr r2, =gSprites
- ldr r0, =gUnknown_03005D70
- ldr r4, =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, =DummyObjectCallback
- cmp r1, r0
- bne _0805FC5C
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0805FC50
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0805FC50:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, =bx_803AEDC
- str r0, [r1]
-_0805FC5C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805FC10
-
- thumb_func_start bx_803AEDC
-bx_803AEDC: @ 805FC80
- push {r4,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0805FCDA
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _0805FCDA
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- 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, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- beq _0805FCCA
- ldr r0, =nullsub_18
- cmp r1, r0
- bne _0805FCDA
-_0805FCCA:
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl dp01_tbl7_exec_completed
-_0805FCDA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_803AEDC
-
- thumb_func_start sub_805FD00
-sub_805FD00: @ 805FD00
- push {r4-r7,lr}
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r1, [r3, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805FDBC
- ldr r7, =gSprites
- ldr r6, =gBankSpriteIds
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r7, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- bne _0805FDBC
- ldrb r1, [r3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r3]
- ldr r0, [r4]
- ldrb r2, [r5]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- bl StartObjectImageAnim
- ldr r4, =gUnknown_03005D70
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r5]
- bl sub_8076918
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80729D0
- ldrb r0, [r5]
- bl sub_805E408
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FC10
- str r1, [r0]
-_0805FDBC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805FD00
-
- thumb_func_start sub_805FDF0
-sub_805FDF0: @ 805FDF0
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0805FE22
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_0805FE22:
- ldr r4, =gSprites
- ldr r0, =gUnknown_03005D7C
- 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, =DummyObjectCallback
- cmp r1, r0
- bne _0805FE8C
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0805FE8C
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =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_805EE54
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FD00
- str r1, [r0]
-_0805FE8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805FDF0
-
- thumb_func_start sub_805FEB8
-sub_805FEB8: @ 805FEB8
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0805FEDA
- bl dp01_tbl7_exec_completed
-_0805FEDA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_805FEB8
-
- thumb_func_start bx_803B0F4
-bx_803B0F4: @ 805FEE8
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0805FF0A
- bl dp01_tbl7_exec_completed
-_0805FF0A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_803B0F4
-
- thumb_func_start dp01_tbl7_exec_completed
-dp01_tbl7_exec_completed: @ 805FF18
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gBattleBankFunc
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_exec_buffer_A_ch0_tbl7
- str r1, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0805FF6C
- bl link_get_multiplayer_id
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl PrepareBufferDataTransferLink
- ldr r1, =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0805FF7E
- .pool
-_0805FF6C:
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0805FF7E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_tbl7_exec_completed
-
- thumb_func_start dp01t_00_7_getattr
-dp01t_00_7_getattr: @ 805FF90
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0805FFC8
- ldr r0, =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8060004
- adds r6, r0, 0
- b _0805FFEA
- .pool
-_0805FFC8:
- ldrb r4, [r1]
- movs r5, 0
-_0805FFCC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0805FFE2
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8060004
- adds r6, r0
-_0805FFE2:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0805FFCC
-_0805FFEA:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl7_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_7_getattr
-
- thumb_func_start sub_8060004
-sub_8060004: @ 8060004
- 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, =gBattleBufferA
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0806002E
- bl _0806079A
-_0806002E:
- lsls r0, 2
- ldr r1, =_08060044
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08060044:
- .4byte _08060134
- .4byte _08060358
- .4byte _08060368
- .4byte _08060378
- .4byte _080603E0
- .4byte _080603E0
- .4byte _080603E0
- .4byte _080603E0
- .4byte _080603FC
- .4byte _08060438
- .4byte _08060438
- .4byte _08060438
- .4byte _08060438
- .4byte _0806079A
- .4byte _0806079A
- .4byte _0806079A
- .4byte _0806079A
- .4byte _08060454
- .4byte _08060464
- .4byte _08060494
- .4byte _080604A4
- .4byte _080604B4
- .4byte _080604C4
- .4byte _080604D4
- .4byte _080604E4
- .4byte _080604F4
- .4byte _08060504
- .4byte _08060514
- .4byte _08060524
- .4byte _08060534
- .4byte _08060544
- .4byte _08060554
- .4byte _080605A4
- .4byte _080605B4
- .4byte _080605C4
- .4byte _080605D4
- .4byte _080605E4
- .4byte _080605F4
- .4byte _08060604
- .4byte _08060614
- .4byte _08060624
- .4byte _08060658
- .4byte _08060668
- .4byte _08060678
- .4byte _08060688
- .4byte _08060698
- .4byte _080606A8
- .4byte _080606B8
- .4byte _080606C8
- .4byte _080606E8
- .4byte _080606F8
- .4byte _08060708
- .4byte _08060718
- .4byte _08060728
- .4byte _08060738
- .4byte _08060748
- .4byte _08060758
- .4byte _08060768
- .4byte _08060778
- .4byte _08060788
-_08060134:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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
-_08060180:
- 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 _08060180
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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, =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, =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, =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
-_08060338:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08060338
- b _0806079A
- .pool
-_08060358:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080606D2
- .pool
-_08060368:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080606D2
- .pool
-_08060378:
- 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, =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0806038E:
- 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 _0806038E
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080603CC:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080603CC
- b _0806079A
- .pool
-_080603E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080606D2
- .pool
-_080603FC:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, =gEnemyParty
- mov r8, r2
-_08060408:
- 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 _08060408
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0806079A
- .pool
-_08060438:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08060792
- .pool
-_08060454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0806046E
- .pool
-_08060464:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0806046E:
- 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 _0806079A
- .pool
-_08060494:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _08060792
- .pool
-_080604A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _08060792
- .pool
-_080604B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _08060792
- .pool
-_080604C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _08060792
- .pool
-_080604D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _08060792
- .pool
-_080604E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _08060792
- .pool
-_080604F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _08060792
- .pool
-_08060504:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _08060792
- .pool
-_08060514:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _08060792
- .pool
-_08060524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _08060792
- .pool
-_08060534:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _08060792
- .pool
-_08060544:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _08060792
- .pool
-_08060554:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _0806079A
- .pool
-_080605A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _08060792
- .pool
-_080605B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _08060792
- .pool
-_080605C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _08060792
- .pool
-_080605D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _08060792
- .pool
-_080605E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _08060792
- .pool
-_080605F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _08060792
- .pool
-_08060604:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0806062E
- .pool
-_08060614:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080606D2
- .pool
-_08060624:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0806062E:
- 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 _0806079A
- .pool
-_08060658:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _08060792
- .pool
-_08060668:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080606D2
- .pool
-_08060678:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080606D2
- .pool
-_08060688:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080606D2
- .pool
-_08060698:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080606D2
- .pool
-_080606A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080606D2
- .pool
-_080606B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080606D2
- .pool
-_080606C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080606D2:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0806079A
- .pool
-_080606E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _08060792
- .pool
-_080606F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _08060792
- .pool
-_08060708:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _08060792
- .pool
-_08060718:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _08060792
- .pool
-_08060728:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _08060792
- .pool
-_08060738:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _08060792
- .pool
-_08060748:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _08060792
- .pool
-_08060758:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _08060792
- .pool
-_08060768:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _08060792
- .pool
-_08060778:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _08060792
- .pool
-_08060788:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_08060792:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0806079A:
- 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
- .pool
- thumb_func_end sub_8060004
-
- thumb_func_start dp01t_01_2_read_pokmon_data_slice
-dp01t_01_2_read_pokmon_data_slice: @ 80607B0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, =gBattlePartyID
- ldr r5, =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, =gBattleBufferA
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, =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 _08060806
- adds r3, r0, 0
-_080607EC:
- 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 _080607EC
-_08060806:
- 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_tbl7_exec_completed
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_01_2_read_pokmon_data_slice
-
- thumb_func_start dp01t_02_7_setattr
-dp01t_02_7_setattr: @ 8060838
- push {r4,r5,lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08060868
- ldr r0, =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8060890
- b _08060886
- .pool
-_08060868:
- ldrb r4, [r1]
- movs r5, 0
-_0806086C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0806087A
- adds r0, r5, 0
- bl sub_8060890
-_0806087A:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0806086C
-_08060886:
- bl dp01_tbl7_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_7_setattr
-
- thumb_func_start sub_8060890
-sub_8060890: @ 8060890
- 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, =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, =gUnknown_02023067
- 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 _080608BE
- bl _0806119C
-_080608BE:
- lsls r0, 2
- ldr r1, =_080608D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080608D4:
- .4byte _080609C4
- .4byte _08060B5C
- .4byte _08060B78
- .4byte _08060B94
- .4byte _08060BE8
- .4byte _08060BE8
- .4byte _08060BE8
- .4byte _08060BE8
- .4byte _08060C08
- .4byte _08060C70
- .4byte _08060C70
- .4byte _08060C70
- .4byte _08060C70
- .4byte _0806119C
- .4byte _0806119C
- .4byte _0806119C
- .4byte _0806119C
- .4byte _08060C98
- .4byte _08060CB4
- .4byte _08060CD0
- .4byte _08060CEC
- .4byte _08060D08
- .4byte _08060D24
- .4byte _08060D40
- .4byte _08060D5C
- .4byte _08060D78
- .4byte _08060D94
- .4byte _08060DB0
- .4byte _08060DCC
- .4byte _08060DE8
- .4byte _08060E04
- .4byte _08060E20
- .4byte _08060E94
- .4byte _08060EB0
- .4byte _08060ECC
- .4byte _08060EE8
- .4byte _08060F04
- .4byte _08060F20
- .4byte _08060F3C
- .4byte _08060F58
- .4byte _08060F74
- .4byte _08060F90
- .4byte _08060FAC
- .4byte _08060FC8
- .4byte _08060FE4
- .4byte _08061000
- .4byte _0806101C
- .4byte _08061038
- .4byte _08061054
- .4byte _08061070
- .4byte _0806108C
- .4byte _080610A8
- .4byte _080610C4
- .4byte _080610E0
- .4byte _080610FC
- .4byte _08061118
- .4byte _08061134
- .4byte _08061150
- .4byte _0806116C
- .4byte _08061188
-_080609C4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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
-_08060A2A:
- 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 _08060A2A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _0806119C
- .pool
-_08060B5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0806119C
- .pool
-_08060B78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0806119C
- .pool
-_08060B94:
- 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, =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08060BAC:
- 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 _08060BAC
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0806119C
- .pool
-_08060BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r3, =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08060C86
- .pool
-_08060C08:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _0806119C
- .pool
-_08060C70:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r3, =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08060C86:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0806119C
- .pool
-_08060C98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0806119C
- .pool
-_08060CB4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0806119C
- .pool
-_08060CD0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0806119C
- .pool
-_08060CEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0806119C
- .pool
-_08060D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0806119C
- .pool
-_08060D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0806119C
- .pool
-_08060D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0806119C
- .pool
-_08060D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0806119C
- .pool
-_08060D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0806119C
- .pool
-_08060D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0806119C
- .pool
-_08060DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0806119C
- .pool
-_08060DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0806119C
- .pool
-_08060DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0806119C
- .pool
-_08060E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0806119C
- .pool
-_08060E20:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _08060F2E
- .pool
-_08060E94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0806119C
- .pool
-_08060EB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0806119C
- .pool
-_08060ECC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0806119C
- .pool
-_08060EE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0806119C
- .pool
-_08060F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0806119C
- .pool
-_08060F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08060F2E:
- movs r1, 0x2C
- bl SetMonData
- b _0806119C
- .pool
-_08060F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0806119C
- .pool
-_08060F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0806119C
- .pool
-_08060F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0806119C
- .pool
-_08060F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0806119C
- .pool
-_08060FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0806119C
- .pool
-_08060FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0806119C
- .pool
-_08060FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0806119C
- .pool
-_08061000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0806119C
- .pool
-_0806101C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0806119C
- .pool
-_08061038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0806119C
- .pool
-_08061054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0806119C
- .pool
-_08061070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0806119C
- .pool
-_0806108C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0806119C
- .pool
-_080610A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0806119C
- .pool
-_080610C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0806119C
- .pool
-_080610E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0806119C
- .pool
-_080610FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0806119C
- .pool
-_08061118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0806119C
- .pool
-_08061134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0806119C
- .pool
-_08061150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0806119C
- .pool
-_0806116C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0806119C
- .pool
-_08061188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0806119C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8060890
-
- thumb_func_start sub_80611B0
-sub_80611B0: @ 80611B0
- push {r4-r7,lr}
- ldr r1, =gBattlePartyID
- ldr r7, =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, =gBattleBufferA
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, =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 _08061208
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_080611E6:
- 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 _080611E6
-_08061208:
- bl dp01_tbl7_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80611B0
-
- thumb_func_start sub_8061224
-sub_8061224: @ 8061224
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- lsls r0, 1
- ldr r1, =gBattlePartyID
- adds r0, r1
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r2, =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, =gBattlePartyID
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- bl sub_805DC0C
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_806A068
- ldr r0, =gUnknown_0202499C
- mov r9, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_80A5C6C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_80A6138
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_80A82E4
- 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, =gBankSpriteIds
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, =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, =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, =gUnknown_020244E4
- adds r2, r1
- ldrb r1, [r2]
- bl StartObjectImageAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- ldr r2, =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_805EE54
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F994
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061224
-
- thumb_func_start sub_806137C
-sub_806137C: @ 806137C
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- movs r1, 0x6
- strb r1, [r0]
- ldr r1, =gBattlePartyID
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, =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_80613DC
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FDF0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806137C
-
- thumb_func_start sub_80613DC
-sub_80613DC: @ 80613DC
- 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_805EF84
- ldr r0, =gBattlePartyID
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, =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, =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =sub_805D714
- bl CreateInvisibleSpriteWithCallback
- ldr r1, =gUnknown_03005D7C
- 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_805DC0C
- adds r0, r6, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_806A068
- ldr r0, =gUnknown_0202499C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_80A5C6C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_80A6138
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_80A82E4
- 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, =gBankSpriteIds
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, =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]
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [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, =gUnknown_020244E4
- adds r6, r1
- ldrb r1, [r6]
- bl StartObjectImageAnim
- 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, =DummyObjectCallback
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_80753E8
- 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
- .pool
- thumb_func_end sub_80613DC
-
- thumb_func_start sub_806156C
-sub_806156C: @ 806156C
- push {r4-r6,lr}
- ldr r1, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080615B4
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8061604
- str r1, [r0]
- b _080615F0
- .pool
-_080615B4:
- ldr r5, =gBankSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl obj_free_rotscale_entry
- 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_805EEE0
- ldr r1, =gUnknown_03005D70
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl dp01_tbl7_exec_completed
-_080615F0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806156C
-
- thumb_func_start sub_8061604
-sub_8061604: @ 8061604
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r4, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r4, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0806162C
- cmp r0, 0x1
- beq _0806165A
- b _08061682
- .pool
-_0806162C:
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08061646
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08061646:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _08061682
-_0806165A:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08061682
- 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, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FB08
- str r1, [r0]
-_08061682:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061604
-
- thumb_func_start sub_8061690
-sub_8061690: @ 8061690
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gBattleTypeFlags
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 20
- ands r0, r2
- cmp r0, 0
- beq _080616B0
- bl sub_806B830
- b _0806175A
- .pool
-_080616B0:
- ldr r3, =gUnknown_02038BCA
- ldrh r1, [r3]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _080616C8
- bl sub_81A4CB0
- b _0806175A
- .pool
-_080616C8:
- movs r0, 0x80
- lsls r0, 19
- ands r0, r2
- cmp r0, 0
- beq _08061708
- movs r0, 0x80
- lsls r0, 8
- ands r2, r0
- cmp r2, 0
- beq _08061700
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080616F0
- ldrh r0, [r3]
- bl sub_81D5588
- b _0806175A
- .pool
-_080616F0:
- ldr r0, =gUnknown_02038BCC
- ldrh r0, [r0]
- bl sub_81D5588
- b _0806175A
- .pool
-_08061700:
- ldrh r0, [r3]
- bl sub_81D5588
- b _0806175A
-_08061708:
- ldr r0, =0x003f0100
- ands r0, r2
- cmp r0, 0
- beq _0806174C
- ldr r0, =0x00808000
- ands r2, r0
- cmp r2, 0
- beq _08061744
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08061734
- ldrh r0, [r3]
- bl sub_8162AA0
- b _0806175A
- .pool
-_08061734:
- ldr r0, =gUnknown_02038BCC
- ldrh r0, [r0]
- bl sub_8162AA0
- b _0806175A
- .pool
-_08061744:
- ldrh r0, [r3]
- bl sub_8162AA0
- b _0806175A
-_0806174C:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r2
- cmp r0, 0
- beq _08061760
- bl sub_8165244
-_0806175A:
- lsls r0, 24
- lsrs r4, r0, 24
- b _08061796
-_08061760:
- movs r0, 0x80
- lsls r0, 8
- ands r2, r0
- cmp r2, 0
- beq _08061788
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08061788
- ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCC
- ldrh r1, [r0]
- b _0806178C
- .pool
-_08061788:
- ldr r2, =gTrainers
- ldrh r1, [r3]
-_0806178C:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x3]
-_08061796:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00008040
- ands r0, r1
- cmp r0, 0
- beq _080617C8
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r1, 0x2
- ands r1, r0
- movs r7, 0xC8
- cmp r1, 0
- beq _080617CA
- movs r7, 0x98
- b _080617CA
- .pool
-_080617C8:
- movs r7, 0xB0
-_080617CA:
- mov r8, r4
- ldr r5, =gActiveBank
- ldrb r1, [r5]
- mov r0, r8
- bl sub_805DF38
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl template_build_for_pokemon_or_trainer
- ldr r6, =gUnknown_0202499C
- mov r9, r7
- ldr r1, =gUnknown_083054E0
- mov r2, r8
- 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
- ldrb r0, [r5]
- bl sub_80A82E4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- mov r1, r9
- adds r2, r4, 0
- bl CreateSprite
- ldr r6, =gBankSpriteIds
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, =gSprites
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ff10
- 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]
- ldr r1, =gTrainerFrontPicPaletteTable
- mov r2, r8
- lsls r0, r2, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- ldrb r1, [r5]
- adds r1, r6
- 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]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r8
- strh r1, [r0, 0x6]
- 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, =sub_805D7AC
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F1D0
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061690
-
- thumb_func_start sub_80618D8
-sub_80618D8: @ 80618D8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gBattleTypeFlags
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 20
- ands r0, r2
- cmp r0, 0
- beq _080618F8
- bl sub_806B830
- b _080619A2
- .pool
-_080618F8:
- ldr r3, =gUnknown_02038BCA
- ldrh r1, [r3]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _08061910
- bl sub_81A4CB0
- b _080619A2
- .pool
-_08061910:
- movs r0, 0x80
- lsls r0, 19
- ands r0, r2
- cmp r0, 0
- beq _08061950
- movs r0, 0x80
- lsls r0, 8
- ands r2, r0
- cmp r2, 0
- beq _08061948
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08061938
- ldrh r0, [r3]
- bl sub_81D5588
- b _080619A2
- .pool
-_08061938:
- ldr r0, =gUnknown_02038BCC
- ldrh r0, [r0]
- bl sub_81D5588
- b _080619A2
- .pool
-_08061948:
- ldrh r0, [r3]
- bl sub_81D5588
- b _080619A2
-_08061950:
- ldr r0, =0x003f0100
- ands r0, r2
- cmp r0, 0
- beq _08061994
- ldr r0, =0x00808000
- ands r2, r0
- cmp r2, 0
- beq _0806198C
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0806197C
- ldrh r0, [r3]
- bl sub_8162AA0
- b _080619A2
- .pool
-_0806197C:
- ldr r0, =gUnknown_02038BCC
- ldrh r0, [r0]
- bl sub_8162AA0
- b _080619A2
- .pool
-_0806198C:
- ldrh r0, [r3]
- bl sub_8162AA0
- b _080619A2
-_08061994:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r2
- cmp r0, 0
- beq _080619A8
- bl sub_8165244
-_080619A2:
- lsls r0, 24
- lsrs r0, 24
- b _080619DE
-_080619A8:
- movs r0, 0x80
- lsls r0, 8
- ands r2, r0
- cmp r2, 0
- beq _080619D0
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080619D0
- ldr r2, =gTrainers
- ldr r0, =gUnknown_02038BCC
- ldrh r1, [r0]
- b _080619D4
- .pool
-_080619D0:
- ldr r2, =gTrainers
- ldrh r1, [r3]
-_080619D4:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_080619DE:
- mov r8, r0
- ldr r6, =gActiveBank
- ldrb r1, [r6]
- bl sub_805DF38
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl template_build_for_pokemon_or_trainer
- ldr r0, =gUnknown_0202499C
- ldr r2, =gUnknown_083054E0
- mov r3, r8
- 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, =gBankSpriteIds
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, =gSprites
- ldrb r0, [r6]
- 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, [r6]
- 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, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x2E]
- ldr r1, =gTrainerFrontPicPaletteTable
- mov r2, r8
- lsls r0, r2, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- ldrb r1, [r6]
- 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]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r3, r8
- strh r3, [r0, 0x6]
- 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, =sub_805D7AC
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F208
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80618D8
-
- thumb_func_start sub_8061AF0
-sub_8061AF0: @ 8061AF0
- push {r4-r6,lr}
- ldr r6, =gBankSpriteIds
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =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, =sub_80A6EEC
- 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, =DummyObjectCallback
- bl oamt_set_x3A_32
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F240
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061AF0
-
- thumb_func_start sub_8061B9C
-sub_8061B9C: @ 8061B9C
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r4, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r0, [r4, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _08061BF0
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08061BD0
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08061BD0:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- adds r1, 0x1
- strb r1, [r0, 0x4]
- b _08061C2C
- .pool
-_08061BF0:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08061C2C
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl audio_play_and_stuff
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- 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, =sub_8039934
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FAC4
- str r1, [r0]
-_08061C2C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061B9C
-
- thumb_func_start sub_8061C48
-sub_8061C48: @ 8061C48
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061C48
-
- thumb_func_start sub_8061C54
-sub_8061C54: @ 8061C54
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061C54
-
- thumb_func_start sub_8061C60
-sub_8061C60: @ 8061C60
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061C60
-
- thumb_func_start sub_8061C6C
-sub_8061C6C: @ 8061C6C
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061C6C
-
- thumb_func_start sub_8061C78
-sub_8061C78: @ 8061C78
- push {r4-r6,lr}
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08061C8A
- b _08061D9E
-_08061C8A:
- ldr r0, =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, =gUnknown_02038432
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, =gUnknown_02038408
- 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, =gUnknown_02038404
- 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, =gUnknown_0203841A
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, =gUnknown_0203841C
- 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, =gUnknown_02038400
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, =gUnknown_020244BC
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_805DB8C
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08061D80
- bl dp01_tbl7_exec_completed
- b _08061D9E
- .pool
-_08061D80:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x4]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_move_anim_7
- str r1, [r0]
-_08061D9E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061C78
-
- thumb_func_start bx_move_anim_7
-bx_move_anim_7: @ 8061DB0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r3, [r6]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r10, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, r2, 0x2
- mov r9, r5
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- ldr r7, =gUnknown_020244D0
- ldr r5, [r7]
- ldr r1, [r5, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08061E48
- cmp r2, 0x1
- bgt _08061E08
- cmp r2, 0
- beq _08061E12
- b _08061F24
- .pool
-_08061E08:
- cmp r2, 0x2
- beq _08061E72
- cmp r2, 0x3
- beq _08061EE8
- b _08061F24
-_08061E12:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08061E34
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r6]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08061E34:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _08061F24
-_08061E48:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08061F24
- movs r0, 0
- bl sub_805EB9C
- adds r0, r4, 0
- bl move_anim_start_t1
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x4]
- b _08061F24
-_08061E72:
- ldr r0, =gUnknown_020383F8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gUnknown_020383FD
- ldrb r0, [r0]
- cmp r0, 0
- bne _08061F24
- movs r0, 0x1
- bl sub_805EB9C
- ldr r0, [r7]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08061EC0
- mov r0, r8
- cmp r0, 0x1
- bhi _08061EC0
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08061EC0:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08061F24
- .pool
-_08061EE8:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08061F24
- bl sub_805E394
- ldrb r0, [r6]
- lsls r2, r0, 9
- mov r3, r10
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r9
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_805E94C
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r4, [r0, 0x4]
- bl dp01_tbl7_exec_completed
-_08061F24:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end bx_move_anim_7
-
- thumb_func_start sub_8061F34
-sub_8061F34: @ 8061F34
- push {r4,r5,lr}
- ldr r0, =gUnknown_02022E14
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E16
- strh r1, [r0]
- ldr r5, =gActiveBank
- ldrb r4, [r5]
- lsls r4, 9
- ldr r0, =gUnknown_02023066
- adds r4, r0
- ldrh r0, [r4]
- bl battle_pick_message
- ldr r0, =gUnknown_02022E2C
- movs r1, 0
- bl battle_show_message_maybe
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_t7_button_a
- str r1, [r0]
- ldrb r0, [r5]
- ldrh r1, [r4]
- bl sub_81A57E4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8061F34
-
- thumb_func_start sub_8061F90
-sub_8061F90: @ 8061F90
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061F90
-
- thumb_func_start sub_8061F9C
-sub_8061F9C: @ 8061F9C
- push {lr}
- bl sub_8063880
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061F9C
-
- thumb_func_start sub_8061FAC
-sub_8061FAC: @ 8061FAC
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8061FAC
-
- thumb_func_start sub_8061FB8
-sub_8061FB8: @ 8061FB8
- push {r4-r6,lr}
- ldr r0, =gBattleTypeFlags
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 10
- ands r0, r2
- cmp r0, 0
- beq _08061FE4
- bl sub_805D19C
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xA
-_08061FD6:
- bl dp01_build_cmdbuf_x21_a_bb
-_08061FDA:
- bl dp01_tbl7_exec_completed
- b _08062156
- .pool
-_08061FE4:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- ldr r1, =gUnknown_02023068
- adds r5, r0, r1
- movs r0, 0x93
- lsls r0, 3
- ands r2, r0
- cmp r2, 0
- beq _080620C4
- movs r0, 0xF
- bl BattleAI_SetupAIData
- bl sub_8130BA4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- beq _08062022
- cmp r4, 0x5
- bgt _0806201C
- cmp r4, 0x4
- beq _08062028
- b _08062040
- .pool
-_0806201C:
- cmp r4, 0x6
- beq _08062030
- b _08062040
-_08062022:
- movs r0, 0x1
- movs r1, 0x4
- b _0806202C
-_08062028:
- movs r0, 0x1
- movs r1, 0x3
-_0806202C:
- movs r2, 0
- b _08061FD6
-_08062030:
- ldr r0, =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x1
- movs r1, 0xF
- b _08061FD6
- .pool
-_08062040:
- ldr r3, =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 _08062062
- ldr r0, =gBankTarget
- ldr r1, =gActiveBank
- ldrb r1, [r1]
- strb r1, [r0]
-_08062062:
- 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 _0806209C
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r5, =gBankTarget
- strb r0, [r5]
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0806209C
- movs r0, 0x2
- bl GetBankByPlayerAI
- strb r0, [r5]
-_0806209C:
- ldr r0, =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
- b _08061FDA
- .pool
-_080620C4:
- movs r6, 0x3
-_080620C6:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- lsls r0, r4, 1
- adds r0, r5, r0
- ldrh r2, [r0]
- cmp r2, 0
- beq _080620C6
- ldr r1, =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 _08062108
- ldr r0, =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 _08062152
- .pool
-_08062108:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806213C
- 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 _08062152
- .pool
-_0806213C:
- 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
-_08062152:
- bl dp01_tbl7_exec_completed
-_08062156:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8061FB8
-
- thumb_func_start sub_806215C
-sub_806215C: @ 806215C
- push {lr}
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsrs r0, 1
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC0
- ldrb r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806215C
-
- thumb_func_start sub_8062188
-sub_8062188: @ 8062188
- push {r4-r7,lr}
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- movs r2, 0xA5
- lsls r2, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _08062254
- bl sub_8063A90
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _0806225A
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080621D4
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- b _080621E8
- .pool
-_080621D4:
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
-_080621E8:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08062214
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08062210
- movs r0, 0
- movs r6, 0x3
- b _08062218
- .pool
-_08062210:
- movs r0, 0x3
- b _08062216
-_08062214:
- movs r0, 0
-_08062216:
- movs r6, 0x6
-_08062218:
- adds r4, r0, 0
- b _0806221E
-_0806221C:
- adds r4, 0x1
-_0806221E:
- cmp r4, r6
- bge _0806225A
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0806221C
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0806221C
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0806221C
- b _0806225A
- .pool
-_08062254:
- ldrb r4, [r1]
- movs r0, 0x6
- strb r0, [r1]
-_0806225A:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- 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 dp01_tbl7_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062188
-
- thumb_func_start sub_8062288
-sub_8062288: @ 8062288
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062288
-
- thumb_func_start sub_8062294
-sub_8062294: @ 8062294
- 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, =gBattleBufferA
- ldr r0, =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, =0x00007fff
- cmp r7, r0
- beq _08062324
- ldr r6, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =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, =gUnknown_03005D70
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_807294C
- b _0806234E
- .pool
-_08062324:
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, =gUnknown_03005D70
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_807294C
-_0806234E:
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FA70
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062294
-
- thumb_func_start sub_8062384
-sub_8062384: @ 8062384
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062384
-
- thumb_func_start sub_8062390
-sub_8062390: @ 8062390
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080623E4
- ldr r0, =gUnknown_03005D70
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl healthbar_draw_field_maybe
- ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FEB8
- str r1, [r0]
-_080623E4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062390
-
- thumb_func_start sub_8062408
-sub_8062408: @ 8062408
- push {r4,r5,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08062458
- ldr r4, =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, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805FEB8
- str r1, [r0]
-_08062458:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062408
-
- thumb_func_start sub_8062470
-sub_8062470: @ 8062470
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062470
-
- thumb_func_start sub_806247C
-sub_806247C: @ 806247C
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_806247C
-
- thumb_func_start sub_8062488
-sub_8062488: @ 8062488
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062488
-
- thumb_func_start sub_8062494
-sub_8062494: @ 8062494
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062494
-
- thumb_func_start sub_80624A0
-sub_80624A0: @ 80624A0
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80624A0
-
- thumb_func_start sub_80624AC
-sub_80624AC: @ 80624AC
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80624AC
-
- thumb_func_start sub_80624B8
-sub_80624B8: @ 80624B8
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80624B8
-
- thumb_func_start sub_80624C4
-sub_80624C4: @ 80624C4
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80624C4
-
- thumb_func_start sub_80624D0
-sub_80624D0: @ 80624D0
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80624D0
-
- thumb_func_start sub_80624DC
-sub_80624DC: @ 80624DC
- push {lr}
- ldr r2, =gUnknown_02022D0C
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80624DC
-
- thumb_func_start sub_80624F8
-sub_80624F8: @ 80624F8
- push {lr}
- ldr r3, =gUnknown_02022D0C
- ldr r1, =gBattleBufferA
- ldr r0, =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_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80624F8
-
- thumb_func_start sub_8062530
-sub_8062530: @ 8062530
- push {lr}
- ldr r2, =gUnknown_02022D0C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062530
-
- thumb_func_start sub_8062548
-sub_8062548: @ 8062548
- push {lr}
- ldr r3, =gUnknown_02022D0C
- 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_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062548
-
- thumb_func_start dp01t_29_7_blink
-dp01t_29_7_blink: @ 8062570
- push {r4,lr}
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- ldr r4, =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 _080625A4
- bl dp01_tbl7_exec_completed
- b _080625CE
- .pool
-_080625A4:
- ldr r1, =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_80769F4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =bx_blink_t7
- str r1, [r0]
-_080625CE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_29_7_blink
-
- thumb_func_start sub_80625E0
-sub_80625E0: @ 80625E0
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80625E0
-
- thumb_func_start sub_80625EC
-sub_80625EC: @ 80625EC
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08062600
- movs r3, 0xC0
-_08062600:
- ldr r2, =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 audio_play_and_stuff
- bl dp01_tbl7_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80625EC
-
- thumb_func_start sub_8062630
-sub_8062630: @ 8062630
- push {r4,r5,lr}
- ldr r4, =gBattleBufferA
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r3, r0, 9
- adds r0, r4, 0x3
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0806266C
- bl sub_805EA60
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, r4, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl song_play_for_text
- b _08062680
- .pool
-_0806266C:
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl fanfare_play
-_08062680:
- bl dp01_tbl7_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8062630
-
- thumb_func_start sub_806268C
-sub_806268C: @ 806268C
- push {lr}
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl sub_80A32E4
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806268C
-
- thumb_func_start dp01t_2E_7_battle_intro
-dp01t_2E_7_battle_intro: @ 80626C8
- push {lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl battle_intro_launch
- ldr r2, =gUnknown_020243FC
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_2E_7_battle_intro
-
- thumb_func_start sub_80626FC
-sub_80626FC: @ 80626FC
- push {r4-r6,lr}
- ldr r5, =gBankSpriteIds
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =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, =sub_80A6EEC
- 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, =sub_806280C
- bl oamt_set_x3A_32
- ldr r0, =sub_8062828
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080627BE
- ldr r0, =gUnknown_020244B4
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, =sub_8073C30
- str r1, [r0]
-_080627BE:
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =nullsub_26
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80626FC
-
- thumb_func_start sub_806280C
-sub_806280C: @ 806280C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_805DFE4
- adds r0, r4, 0
- bl obj_free_rotscale_entry
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806280C
-
- thumb_func_start sub_8062828
-sub_8062828: @ 8062828
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, =gActiveBank
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, =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 _0806286C
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0806286C
- movs r0, 0x80
- lsls r0, 8
- ands r1, r0
- cmp r1, 0
- beq _080628A0
-_0806286C:
- ldr r0, =gBattleBufferA
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, =gBattlePartyID
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_80613DC
- b _080628E0
- .pool
-_080628A0:
- ldr r4, =gBattleBufferA
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, =gBattlePartyID
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_80613DC
- 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_80613DC
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_080628E0:
- ldr r1, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_805F560
- 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
- .pool
- thumb_func_end sub_8062828
-
- thumb_func_start dp01t_30_7_0803D67C
-dp01t_30_7_0803D67C: @ 8062918
- push {r4-r7,lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08062948
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08062948
- bl dp01_tbl7_exec_completed
- b _08062A12
- .pool
-_08062948:
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, =gBattleBufferA
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r3, 0
- cmp r0, 0
- beq _080629B4
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 27
- lsrs r0, r1, 28
- cmp r0, 0x1
- bhi _080629AC
- adds r0, 0x1
- movs r1, 0xF
- ands r0, r1
- lsls r0, 1
- movs r1, 0x1F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _08062A12
- .pool
-_080629AC:
- movs r0, 0x1F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_080629B4:
- adds r5, r7, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, =gUnknown_02023068
- 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_80735DC
- ldr r2, =gUnknown_020244B4
- ldrb r1, [r5]
- adds r1, r2
- movs r3, 0
- strb r0, [r1]
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08062A06
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08062A06:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r0
- ldr r0, =bx_0803D790_t7
- str r0, [r1]
-_08062A12:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_30_7_0803D67C
-
- thumb_func_start bx_0803D790_t7
-bx_0803D790_t7: @ 8062A2C
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08062A64
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x5]
- bl dp01_tbl7_exec_completed
-_08062A64:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bx_0803D790_t7
-
- thumb_func_start sub_8062A74
-sub_8062A74: @ 8062A74
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r1, [r0]
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08062AA6
- ldr r2, =gTasks
- ldr r0, =gUnknown_020244B4
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_8073C30
- str r1, [r0]
-_08062AA6:
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062A74
-
- thumb_func_start sub_8062AC4
-sub_8062AC4: @ 8062AC4
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062AC4
-
- thumb_func_start sub_8062AD0
-sub_8062AD0: @ 8062AD0
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl sub_80A6A90
- lsls r0, 24
- cmp r0, 0
- beq _08062B16
- ldr r3, =gSprites
- ldr r0, =gBankSpriteIds
- 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, =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_805E408
-_08062B16:
- bl dp01_tbl7_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062AD0
-
- thumb_func_start dp01t_34_7_move_anim_start_t3
-dp01t_34_7_move_anim_start_t3: @ 8062B30
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08062B88
- ldr r5, =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 _08062B7C
- bl dp01_tbl7_exec_completed
- b _08062B88
- .pool
-_08062B7C:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, =bx_803B0F4
- str r0, [r1]
-_08062B88:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_34_7_move_anim_start_t3
-
- thumb_func_start sub_8062B98
-sub_8062B98: @ 8062B98
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062B98
-
- thumb_func_start sub_8062BA4
-sub_8062BA4: @ 8062BA4
- push {lr}
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8062BA4
-
- thumb_func_start sub_8062BB0
-sub_8062BB0: @ 8062BB0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08062BDA
- ldr r2, =gMain
- ldr r0, =0x00000439
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, =gUnknown_03005D00
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08062BDA:
- bl dp01_tbl7_exec_completed
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8062BB0
-
- thumb_func_start nullsub_91
-nullsub_91: @ 8062BF4
- bx lr
- thumb_func_end nullsub_91
-
- thumb_func_start ai_switch_perish_song
-ai_switch_perish_song: @ 8062BF8
- push {lr}
- ldr r1, =gStatuses3
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08062C50
- ldr r0, =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 _08062C50
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, r2, r0
- movs r1, 0xA5
- lsls r1, 2
- 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 _08062C52
- .pool
-_08062C50:
- movs r0, 0
-_08062C52:
- pop {r1}
- bx r1
- thumb_func_end ai_switch_perish_song
-
- thumb_func_start sub_8062C58
-sub_8062C58: @ 8062C58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08062C72
- b _08062E2C
-_08062C72:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r4, =gBattleMons
- 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 _08062C9E
- b _08062E2C
-_08062C9E:
- mov r0, r10
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r2, r0, 24
- movs r6, 0
- mov r8, r4
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r4, r0, r4
- movs r0, 0x20
- adds r0, r4
- mov r9, r0
-_08062CBA:
- lsls r1, r6, 1
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- muls r0, r7
- adds r1, r0
- mov r0, r8
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08062CE8
- ldrh r1, [r4]
- 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 _08062CE8
- b _08062E2C
-_08062CE8:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08062CBA
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08062D50
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- adds r1, r5, 0
- cmp r0, 0
- bne _08062D20
- movs r4, 0
- movs r0, 0x3
- str r0, [sp]
- b _08062D58
- .pool
-_08062D20:
- movs r4, 0x3
- movs r3, 0x6
- str r3, [sp]
- b _08062D58
-_08062D28:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- movs r1, 0xA5
- lsls r1, 2
- 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 _08062E2E
- .pool
-_08062D50:
- movs r4, 0
- movs r3, 0x6
- str r3, [sp]
- adds r1, r5, 0
-_08062D58:
- ldrb r0, [r1]
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _08062D6C
- ldr r3, =gPlayerParty
- mov r9, r3
-_08062D6C:
- adds r6, r4, 0
- ldr r0, [sp]
- cmp r6, r0
- bge _08062E2C
-_08062D74:
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- mov r1, r9
- adds r4, r1, r5
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08062E24
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08062E24
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08062E24
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _08062E24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r0, r10
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r2, r0, 24
- movs r4, 0
- mov r8, r5
- ldr r1, =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_08062DE0:
- adds r1, r4, 0
- adds r1, 0xD
- mov r0, r9
- add r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08062E1E
- 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 _08062E1E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _08062D28
-_08062E1E:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08062DE0
-_08062E24:
- adds r6, 0x1
- ldr r3, [sp]
- cmp r6, r3
- blt _08062D74
-_08062E2C:
- movs r0, 0
-_08062E2E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8062C58
-
- thumb_func_start sub_8062E54
-sub_8062E54: @ 8062E54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0x1
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- beq _08062E82
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08062E82
- b _080630AC
-_08062E82:
- ldr r1, =gUnknown_02024250
- ldr r5, =gActiveBank
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _08062E94
- b _080630AC
-_08062E94:
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08062E9C
- b _080630AC
-_08062E9C:
- ldr r2, =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 _08062EB0
- b _080630AC
-_08062EB0:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08062F1A
- mov r8, r3
- mov r0, r8
- bl GetBankIdentity
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r1, =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08062F04
- ldrb r7, [r5]
- b _08062F1E
- .pool
-_08062F04:
- ldrb r0, [r5]
- bl GetBankIdentity
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- b _08062F1E
-_08062F1A:
- adds r7, r3, 0
- mov r8, r7
-_08062F1E:
- ldr r3, =gBattleMoves
- ldr r1, =gUnknown_02024250
- ldr r2, =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]
- cmp r0, 0xA
- bne _08062F4C
- movs r0, 0x12
- b _08062F5E
- .pool
-_08062F4C:
- cmp r0, 0xB
- bne _08062F56
- movs r1, 0xB
- str r1, [sp]
- b _08062F60
-_08062F56:
- cmp r0, 0xD
- beq _08062F5C
- b _080630AC
-_08062F5C:
- movs r0, 0xA
-_08062F5E:
- str r0, [sp]
-_08062F60:
- ldr r1, =gBattleMons
- ldrb r3, [r2]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp]
- cmp r0, r1
- bne _08062F76
- b _080630AC
-_08062F76:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08062FCC
- movs r0, 0x2
- ands r3, r0
- cmp r3, 0
- bne _08062F9C
- movs r4, 0
- movs r0, 0x3
- b _08062FD0
- .pool
-_08062F9C:
- movs r4, 0x3
- movs r1, 0x6
- mov r10, r1
- b _08062FD2
-_08062FA4:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- movs r2, 0xA5
- lsls r2, 2
- adds r0, r2
- strb r5, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080630AE
- .pool
-_08062FCC:
- movs r4, 0
- movs r0, 0x6
-_08062FD0:
- mov r10, r0
-_08062FD2:
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- str r1, [sp, 0x4]
- cmp r0, 0
- bne _08062FE6
- ldr r2, =gPlayerParty
- str r2, [sp, 0x4]
-_08062FE6:
- adds r5, r4, 0
- cmp r5, r10
- bge _080630AC
- ldr r0, =gBaseStats
- mov r9, r0
-_08062FF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, [sp, 0x4]
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080630A6
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080630A6
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080630A6
- ldr r1, =gBattlePartyID
- mov r2, r8
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080630A6
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080630A6
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- adds r0, r2, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r5, r0
- beq _080630A6
- adds r0, r7, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r5, r0
- beq _080630A6
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _08063088
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _08063092
- .pool
-_08063088:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_08063092:
- ldr r1, [sp]
- cmp r1, r0
- bne _080630A6
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080630A6
- b _08062FA4
-_080630A6:
- adds r5, 0x1
- cmp r5, r10
- blt _08062FF0
-_080630AC:
- movs r0, 0
-_080630AE:
- 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_8062E54
-
- thumb_func_start ai_switchout_natural_cure
-ai_switchout_natural_cure: @ 80630C0
- push {r4,r5,lr}
- ldr r3, =gBattleMons
- ldr r5, =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 _08063188
- adds r1, r2, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _08063188
- ldrh r0, [r1, 0x2C]
- ldrh r1, [r1, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bcc _08063188
- ldr r1, =gUnknown_02024250
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08063106
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08063128
-_08063106:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08063128
- ldrb r0, [r5]
- b _08063190
- .pool
-_08063128:
- ldr r2, =gBattleMoves
- ldr r1, =gUnknown_02024250
- ldr r4, =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 _08063160
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08063160
- ldrb r0, [r4]
- b _08063190
- .pool
-_08063160:
- movs r0, 0x8
- movs r1, 0x1
- bl ai_switchout_something
- lsls r0, 24
- cmp r0, 0
- bne _080631AA
- movs r0, 0x4
- movs r1, 0x1
- bl ai_switchout_something
- lsls r0, 24
- cmp r0, 0
- bne _080631AA
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0806318C
-_08063188:
- movs r0, 0
- b _080631AC
-_0806318C:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
-_08063190:
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- movs r1, 0xA5
- lsls r1, 2
- 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
-_080631AA:
- movs r0, 0x1
-_080631AC:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ai_switchout_natural_cure
-
- thumb_func_start ai_has_super_effective_move_on_field
-ai_has_super_effective_move_on_field: @ 80631BC
- 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, =gActiveBank
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08063256
- movs r4, 0
- ldr r6, =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r0, 0x20
- adds r0, r5
- mov r8, r0
-_0806320A:
- lsls r1, r4, 1
- ldr r0, =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 _08063250
- ldrh r1, [r5]
- 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
- beq _08063250
- mov r0, r9
- cmp r0, 0
- bne _08063278
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _08063278
-_08063250:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0806320A
-_08063256:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806327C
- b _080632FA
- .pool
-_08063278:
- movs r0, 0x1
- b _080632FC
-_0806327C:
- movs r1, 0x2
- mov r0, r10
- eors r0, r1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080632FA
- movs r4, 0
- ldr r6, =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r3, 0x20
- adds r3, r5
- mov r8, r3
-_080632AE:
- lsls r1, r4, 1
- ldr r0, =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 _080632F4
- ldrh r1, [r5]
- 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
- beq _080632F4
- mov r0, r9
- cmp r0, 0
- bne _08063278
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _08063278
-_080632F4:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080632AE
-_080632FA:
- movs r0, 0
-_080632FC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- 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: @ 806331C
- push {r4,lr}
- movs r4, 0
- ldr r1, =gBattleMons
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x18
- adds r2, r0, r1
- movs r3, 0x7
-_08063330:
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x6
- ble _08063346
- subs r1, 0x6
- lsls r0, r4, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
-_08063346:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _08063330
- movs r0, 0
- cmp r4, 0x3
- bls _08063356
- movs r0, 0x1
-_08063356:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ai_is_too_invested_in_stat_buffs
-
- thumb_func_start ai_switchout_something
-ai_switchout_something: @ 8063364
- 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]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- ldr r2, =gUnknown_02024250
- ldr r1, =gActiveBank
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r4, r0, r2
- ldrh r2, [r4]
- adds r5, r1, 0
- cmp r2, 0
- bne _08063390
- b _080635EE
-_08063390:
- ldr r0, =0x0000ffff
- cmp r2, r0
- bne _08063398
- b _080635EE
-_08063398:
- ldr r0, =gUnknown_02024270
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080633A4
- b _080635EE
-_080633A4:
- ldr r2, =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 _080633B8
- b _080635EE
-_080633B8:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806342C
- mov r9, r3
- mov r0, r9
- bl GetBankIdentity
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r1, =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08063414
- ldrb r5, [r5]
- mov r10, r5
- b _08063430
- .pool
-_08063414:
- 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 _08063430
-_0806342C:
- mov r9, r3
- mov r10, r9
-_08063430:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08063490
- ldr r2, =gActiveBank
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- bne _08063460
- movs r4, 0
- movs r0, 0x3
- str r0, [sp, 0x8]
- b _08063498
- .pool
-_08063460:
- movs r4, 0x3
- movs r1, 0x6
- str r1, [sp, 0x8]
- b _08063498
-_08063468:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- movs r2, 0xA5
- lsls r2, 2
- adds r0, r2
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080635F0
- .pool
-_08063490:
- movs r4, 0
- movs r0, 0x6
- str r0, [sp, 0x8]
- ldr r5, =gActiveBank
-_08063498:
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- str r1, [sp, 0xC]
- cmp r0, 0
- bne _080634AC
- ldr r2, =gPlayerParty
- str r2, [sp, 0xC]
-_080634AC:
- adds r6, r4, 0
- b _080635E6
- .pool
-_080634BC:
- movs r0, 0x64
- muls r0, r6
- ldr r1, [sp, 0xC]
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080634D2
- b _080635E4
-_080634D2:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- bne _080634E0
- b _080635E4
-_080634E0:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080635E4
- ldr r1, =gBattlePartyID
- mov r2, r9
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080635E4
- mov r2, r10
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080635E4
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- mov r2, r9
- adds r0, r2, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r6, r0
- beq _080635E4
- mov r2, r10
- adds r0, r2, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r6, r0
- beq _080635E4
- 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 _08063558
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, =gBaseStats
- adds r0, r1
- ldrb r2, [r0, 0x17]
- b _08063564
- .pool
-_08063558:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r2, =gBaseStats
- adds r0, r2
- ldrb r2, [r0, 0x16]
-_08063564:
- ldr r1, =gUnknown_02024250
- ldr r5, =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 _080635E4
- ldr r1, =gUnknown_02024270
- 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, =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
-_080635A2:
- adds r1, r4, 0
- adds r1, 0xD
- ldr r0, [sp, 0xC]
- add r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080635DE
- 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 _080635DE
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x4]
- bl __modsi3
- cmp r0, 0
- bne _080635DE
- b _08063468
-_080635DE:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080635A2
-_080635E4:
- adds r6, 0x1
-_080635E6:
- ldr r0, [sp, 0x8]
- cmp r6, r0
- bge _080635EE
- b _080634BC
-_080635EE:
- movs r0, 0
-_080635F0:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ai_switchout_something
-
- thumb_func_start sub_8063614
-sub_8063614: @ 8063614
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r6, =gBattleMons
- ldr r4, =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, =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _0806363E
- b _0806386C
-_0806363E:
- ldr r0, =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _08063652
- b _0806386C
-_08063652:
- 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 _0806366A
- b _0806386C
-_0806366A:
- 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 _08063682
- b _0806386C
-_08063682:
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x2A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080636B4
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080636A8
- b _0806386C
-_080636A8:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080636B4
- b _0806386C
-_080636B4:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 11
- ands r0, r1
- cmp r0, 0
- beq _080636C4
- b _0806386C
-_080636C4:
- movs r0, 0
- mov r10, r0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0806372E
- 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, =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08063718
- ldrb r6, [r4]
- b _08063732
- .pool
-_08063718:
- ldrb r0, [r4]
- bl GetBankIdentity
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- b _08063732
-_0806372E:
- ldrb r6, [r4]
- adds r7, r6, 0
-_08063732:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08063768
- ldr r2, =gActiveBank
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08063760
- movs r4, 0
- movs r1, 0x3
- mov r8, r1
- b _08063770
- .pool
-_08063760:
- movs r4, 0x3
- movs r0, 0x6
- mov r8, r0
- b _08063770
-_08063768:
- movs r4, 0
- movs r1, 0x6
- mov r8, r1
- ldr r2, =gActiveBank
-_08063770:
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _08063784
- ldr r0, =gPlayerParty
- mov r9, r0
-_08063784:
- adds r5, r4, 0
- cmp r5, r8
- bge _080637F2
-_0806378A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080637EC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080637EC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080637EC
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080637EC
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080637EC
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- adds r0, r7, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r5, r0
- beq _080637EC
- adds r0, r6, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r5, r0
- beq _080637EC
- movs r0, 0x1
- add r10, r0
-_080637EC:
- adds r5, 0x1
- cmp r5, r8
- blt _0806378A
-_080637F2:
- mov r1, r10
- cmp r1, 0
- beq _0806386C
- bl ai_switch_perish_song
- lsls r0, 24
- cmp r0, 0
- bne _08063852
- bl sub_8062C58
- lsls r0, 24
- cmp r0, 0
- bne _08063852
- bl sub_8062E54
- lsls r0, 24
- cmp r0, 0
- bne _08063852
- bl ai_switchout_natural_cure
- lsls r0, 24
- cmp r0, 0
- bne _08063852
- movs r0, 0
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- bne _0806386C
- bl ai_is_too_invested_in_stat_buffs
- lsls r0, 24
- cmp r0, 0
- bne _0806386C
- movs r0, 0x8
- movs r1, 0x2
- bl ai_switchout_something
- lsls r0, 24
- cmp r0, 0
- bne _08063852
- movs r0, 0x4
- movs r1, 0x3
- bl ai_switchout_something
- lsls r0, 24
- cmp r0, 0
- beq _0806386C
-_08063852:
- movs r0, 0x1
- b _0806386E
- .pool
-_0806386C:
- movs r0, 0
-_0806386E:
- 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_8063614
-
- thumb_func_start sub_8063880
-sub_8063880: @ 8063880
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r6, r0, 24
- adds r5, r6, 0
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- ldr r1, =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080638A8
- ldr r2, =gPlayerParty
- mov r8, r2
-_080638A8:
- ldr r7, =gBattleTypeFlags
- ldr r0, [r7]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080638B6
- b _080639E6
-_080638B6:
- bl sub_8063614
- lsls r0, 24
- cmp r0, 0
- bne _080638C2
- b _080639DC
-_080638C2:
- ldrb r0, [r4]
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r0, r1
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _080639B8
- bl sub_8063A90
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _080639A6
- ldr r0, [r7]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08063910
- adds r0, r6, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08063928
- .pool
-_08063910:
- adds r0, r5, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x2
- eors r5, r0
- adds r0, r5, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r5, r0, 24
-_08063928:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08063958
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08063954
- movs r0, 0
- movs r7, 0x3
- b _0806395C
- .pool
-_08063954:
- movs r0, 0x3
- b _0806395A
-_08063958:
- movs r0, 0
-_0806395A:
- movs r7, 0x6
-_0806395C:
- adds r4, r0, 0
- cmp r4, r7
- bge _080639A6
-_08063962:
- movs r0, 0x64
- muls r0, r4
- add r0, r8
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080639A0
- ldr r1, =gBattlePartyID
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _080639A0
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _080639A0
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- adds r0, r6, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r4, r0
- beq _080639A0
- adds r0, r5, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r4, r0
- bne _080639A6
-_080639A0:
- adds r4, 0x1
- cmp r4, r7
- blt _08063962
-_080639A6:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r0, r1
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r1
- strb r4, [r0]
-_080639B8:
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r0, [r2]
- adds r0, r1, r0
- adds r1, r0, 0
- adds r1, 0x5C
- movs r2, 0xA5
- lsls r2, 2
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- b _080639F8
- .pool
-_080639DC:
- bl sub_8063EE0
- lsls r0, 24
- cmp r0, 0
- bne _080639F8
-_080639E6:
- ldr r0, =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
-_080639F8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8063880
-
- thumb_func_start sub_8063A08
-sub_8063A08: @ 8063A08
- 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, =gUnknown_0831ACE8
- mov r10, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08063A7A
- mov r5, r10
-_08063A36:
- ldrb r0, [r5]
- cmp r0, 0xFE
- beq _08063A6C
- ldr r1, [sp]
- cmp r0, r1
- bne _08063A6C
- ldrb r4, [r5, 0x1]
- cmp r4, r9
- bne _08063A56
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08063A56:
- cmp r4, r8
- bne _08063A6C
- cmp r9, r8
- beq _08063A6C
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08063A6C:
- adds r5, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08063A36
-_08063A7A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8063A08
-
- thumb_func_start sub_8063A90
-sub_8063A90: @ 8063A90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r4, =gActiveBank
- ldrb r2, [r4]
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, r2, r0
- adds r1, r0, 0
- adds r1, 0x5C
- ldrb r0, [r1]
- cmp r0, 0x6
- beq _08063AB2
- b _08063E50
-_08063AB2:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 11
- ands r0, r1
- cmp r0, 0
- beq _08063AE0
- ldr r1, =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrb r0, [r0]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _08063E50
- .pool
-_08063AE0:
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08063B6C
- str r2, [sp, 0x10]
- adds r0, r2, 0
- bl GetBankIdentity
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r1, =gAbsentBankFlags
- ldrb r1, [r1]
- ldr r2, =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08063B20
- ldrb r4, [r4]
- str r4, [sp, 0x14]
- b _08063B36
- .pool
-_08063B20:
- 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, 0x14]
-_08063B36:
- bl Random
- movs r3, 0x2
- ands r0, r3
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, =gBitTable
- ldr r4, [sp, 0x4]
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08063B8A
- eors r4, r3
- lsls r0, r4, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- b _08063B8A
- .pool
-_08063B6C:
- adds r0, r2, 0
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldrb r4, [r4]
- str r4, [sp, 0x14]
- str r4, [sp, 0x10]
-_08063B8A:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x00808000
- ands r0, r1
- cmp r0, 0
- beq _08063BC2
- ldr r2, =gActiveBank
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08063BB8
- movs r0, 0
- str r0, [sp, 0x18]
- movs r1, 0x3
- str r1, [sp, 0x1C]
- b _08063BCC
- .pool
-_08063BB8:
- movs r4, 0x3
- str r4, [sp, 0x18]
- movs r0, 0x6
- str r0, [sp, 0x1C]
- b _08063BCC
-_08063BC2:
- movs r1, 0
- str r1, [sp, 0x18]
- movs r2, 0x6
- str r2, [sp, 0x1C]
- ldr r2, =gActiveBank
-_08063BCC:
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- ldr r4, =gEnemyParty
- str r4, [sp, 0x20]
- cmp r0, 0
- bne _08063BE0
- ldr r0, =gPlayerParty
- str r0, [sp, 0x20]
-_08063BE0:
- movs r1, 0
- mov r9, r1
-_08063BE4:
- movs r2, 0
- str r2, [sp, 0x8]
- movs r4, 0x6
- str r4, [sp, 0xC]
- ldr r7, [sp, 0x18]
- ldr r0, [sp, 0x1C]
- cmp r7, r0
- blt _08063BF6
- b _08063CF2
-_08063BF6:
- lsls r0, r7, 2
- ldr r1, =gBitTable
- adds r0, r1
- mov r8, r0
- mov r10, sp
-_08063C00:
- movs r0, 0x64
- muls r0, r7
- ldr r2, [sp, 0x20]
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08063CD8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08063CD8
- mov r4, r8
- ldr r0, [r4]
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _08063CD8
- ldr r1, =gBattlePartyID
- ldr r2, [sp, 0x10]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08063CD8
- ldr r4, [sp, 0x14]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08063CD8
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- adds r0, r2, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r7, r0
- beq _08063CD8
- adds r0, r4, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r7, r0
- beq _08063CD8
- ldr r1, =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
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x58
- ldr r2, [sp, 0x4]
- adds r4, r2, 0
- muls r4, r0
- ldr r0, =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_8063A08
- adds r4, 0x22
- ldrb r0, [r4]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8063A08
- ldr r2, [sp, 0x8]
- mov r1, r10
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08063CE6
- mov r2, r10
- ldrb r2, [r2]
- str r2, [sp, 0x8]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- b _08063CE6
- .pool
-_08063CD8:
- mov r4, r8
- ldr r0, [r4]
- mov r1, r9
- orrs r1, r0
- lsls r0, r1, 24
- lsrs r0, 24
- mov r9, r0
-_08063CE6:
- movs r2, 0x4
- add r8, r2
- adds r7, 0x1
- ldr r4, [sp, 0x1C]
- cmp r7, r4
- blt _08063C00
-_08063CF2:
- ldr r0, [sp, 0xC]
- cmp r0, 0x6
- beq _08063D54
- movs r7, 0
- movs r0, 0x64
- ldr r1, [sp, 0xC]
- adds r5, r1, 0
- muls r5, r0
-_08063D02:
- adds r1, r7, 0
- adds r1, 0xD
- ldr r2, [sp, 0x20]
- adds r0, r2, r5
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08063D2A
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- adds r0, r4, 0
- ldr r2, [sp, 0x4]
- bl move_effectiveness_something
- movs r1, 0x2
- ands r1, r0
- cmp r1, 0
- bne _08063D30
-_08063D2A:
- adds r7, 0x1
- cmp r7, 0x3
- ble _08063D02
-_08063D30:
- cmp r7, 0x4
- beq _08063D36
- b _08063E4E
-_08063D36:
- ldr r4, [sp, 0xC]
- lsls r0, r4, 2
- ldr r1, =gBitTable
- adds r0, r1
- ldr r0, [r0]
- mov r2, r9
- orrs r2, r0
- lsls r0, r2, 24
- lsrs r0, 24
- mov r9, r0
- b _08063D58
- .pool
-_08063D54:
- movs r4, 0x3F
- mov r9, r4
-_08063D58:
- mov r0, r9
- cmp r0, 0x3F
- beq _08063D60
- b _08063BE4
-_08063D60:
- ldr r0, =gUnknown_02024400
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- strb r1, [r0, 0x13]
- ldr r0, =gBattleScripting
- movs r2, 0x1
- strb r2, [r0, 0xE]
- ldr r0, =gBattleMoveFlags
- strb r1, [r0]
- ldr r0, =gCritMultiplier
- strb r2, [r0]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r2, 0x6
- str r2, [sp, 0xC]
- ldr r7, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- cmp r7, r4
- bge _08063E4E
-_08063D8A:
- movs r0, 0x64
- adds r6, r7, 0
- muls r6, r0
- ldr r0, [sp, 0x20]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- adds r1, r7, 0x1
- mov r10, r1
- cmp r0, 0
- beq _08063E46
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08063E46
- ldr r1, =gBattlePartyID
- ldr r2, [sp, 0x10]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08063E46
- ldr r4, [sp, 0x14]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08063E46
- ldr r0, =gBattleStruct
- ldr r1, [r0]
- adds r0, r2, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r7, r0
- beq _08063E46
- adds r0, r4, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- cmp r7, r0
- beq _08063E46
- movs r5, 0
- mov r9, r6
- ldr r0, =gBattleMoveDamage
- mov r8, r0
- ldr r6, =gActiveBank
-_08063DEE:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp, 0x20]
- 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 _08063E2A
- ldr r0, =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- beq _08063E2A
- ldrb r0, [r6]
- ldr r1, [sp, 0x4]
- bl sub_8046E7C
- ldrb r1, [r6]
- adds r0, r4, 0
- ldr r2, [sp, 0x4]
- bl move_effectiveness_something
-_08063E2A:
- mov r2, r8
- ldr r0, [r2]
- ldr r4, [sp, 0x8]
- cmp r4, r0
- bge _08063E40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
-_08063E40:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08063DEE
-_08063E46:
- mov r7, r10
- ldr r0, [sp, 0x1C]
- cmp r7, r0
- blt _08063D8A
-_08063E4E:
- ldr r0, [sp, 0xC]
-_08063E50:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8063A90
-
- thumb_func_start ai_identify_item_effect
-ai_identify_item_effect: @ 8063E84
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bne _08063E94
- movs r0, 0x1
- b _08063EDA
-_08063E94:
- ldrb r1, [r2, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08063EA2
- movs r0, 0x2
- b _08063EDA
-_08063EA2:
- ldrb r4, [r2, 0x3]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r4
- cmp r0, 0
- beq _08063EB2
- movs r0, 0x3
- b _08063EDA
-_08063EB2:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08063EC8
- ldrb r0, [r2, 0x1]
- cmp r0, 0
- bne _08063EC8
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _08063ECC
-_08063EC8:
- movs r0, 0x4
- b _08063EDA
-_08063ECC:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- bne _08063ED8
- movs r0, 0x6
- b _08063EDA
-_08063ED8:
- movs r0, 0x5
-_08063EDA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ai_identify_item_effect
-
- thumb_func_start sub_8063EE0
-sub_8063EE0: @ 8063EE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r10, r0
- movs r7, 0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 15
- ands r0, r1
- cmp r0, 0
- beq _08063F12
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08063F12
- b _0806437C
-_08063F12:
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r5, =gEnemyParty
- cmp r0, 0
- bne _08063F24
- ldr r5, =gPlayerParty
-_08063F24:
- movs r1, 0
- mov r8, r1
-_08063F28:
- movs r0, 0x64
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r4, r5, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08063F64
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08063F64
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08063F64
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08063F64:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08063F28
- movs r2, 0
- mov r8, r2
-_08063F72:
- ldr r1, =gBattleResources
- mov r0, r8
- cmp r0, 0
- beq _08063F8E
- ldr r0, [r1]
- ldr r0, [r0, 0x18]
- adds r0, 0x50
- ldrb r0, [r0]
- mov r2, r8
- subs r0, r2
- adds r0, 0x1
- cmp r10, r0
- ble _08063F8E
- b _08064370
-_08063F8E:
- ldr r0, [r1]
- ldr r0, [r0, 0x18]
- mov r2, r8
- lsls r1, r2, 1
- adds r0, 0x48
- adds r0, r1
- ldrh r0, [r0]
- mov r9, r0
- str r1, [sp]
- cmp r0, 0
- bne _08063FA6
- b _08064370
-_08063FA6:
- ldr r1, =gItemEffectInfoPointers
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _08063FB6
- b _08064370
-_08063FB6:
- mov r0, r9
- cmp r0, 0xAF
- bne _08063FE8
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003214
- adds r5, r0, r1
- b _08063FEA
- .pool
-_08063FE8:
- adds r5, r1, 0
-_08063FEA:
- mov r2, r9
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl ai_identify_item_effect
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- lsrs r1, 1
- ldr r3, =gBattleStruct
- ldr r2, [r3]
- adds r1, r2
- adds r1, 0xC4
- strb r0, [r1]
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- bls _0806401A
- b _08064324
-_0806401A:
- lsls r0, 2
- ldr r1, =_08064030
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08064030:
- .4byte _08064048
- .4byte _08064074
- .4byte _080640BC
- .4byte _08064214
- .4byte _080642F4
- .4byte _0806437C
-_08064048:
- ldr r2, =gBattleMons
- ldr r0, =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 _08064060
- b _08064324
-_08064060:
- cmp r0, 0
- bne _08064066
- b _08064324
-_08064066:
- movs r7, 0x1
- b _08064328
- .pool
-_08064074:
- mov r0, r9
- movs r1, 0x4
- movs r2, 0x4
- bl sub_806CDDC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08064088
- b _08064324
-_08064088:
- ldr r2, =gBattleMons
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- ldrh r2, [r1, 0x28]
- cmp r2, 0
- bne _0806409C
- b _08064324
-_0806409C:
- ldrh r3, [r1, 0x2C]
- lsrs r0, r3, 2
- cmp r2, r0
- bcc _08064066
- adds r0, r2, 0
- subs r0, r3, r0
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bgt _080640B2
- b _08064324
-_080640B2:
- b _08064066
- .pool
-_080640BC:
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- lsrs r0, 1
- ldr r2, =gBattleStruct
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0xC6
- movs r1, 0
- strb r1, [r0]
- ldrb r1, [r5, 0x3]
- movs r6, 0x20
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08064100
- ldr r1, =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 _08064100
- lsrs r1, r4, 1
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r7, 0x1
-_08064100:
- ldrb r1, [r5, 0x3]
- movs r6, 0x10
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0806413A
- ldr r1, =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 _0806412A
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _0806413A
-_0806412A:
- lsrs r1, r4, 1
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r7, 0x1
-_0806413A:
- ldrb r1, [r5, 0x3]
- movs r6, 0x8
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0806416C
- ldr r1, =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 _0806416C
- lsrs r1, r4, 1
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r7, 0x1
-_0806416C:
- ldrb r1, [r5, 0x3]
- movs r6, 0x4
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0806419E
- ldr r1, =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 _0806419E
- lsrs r1, r4, 1
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r7, 0x1
-_0806419E:
- ldrb r1, [r5, 0x3]
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080641D0
- ldr r1, =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 _080641D0
- lsrs r1, r4, 1
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r7, 0x1
-_080641D0:
- ldrb r1, [r5, 0x3]
- movs r4, 0x1
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080641DE
- b _08064324
-_080641DE:
- ldr r1, =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 _080641F6
- b _08064324
-_080641F6:
- lsrs r1, r3, 1
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- b _08064066
- .pool
-_08064214:
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r3, =gBattleStruct
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- movs r1, 0
- strb r1, [r0]
- ldr r1, =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 _08064324
- ldrb r1, [r5]
- movs r6, 0xF
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08064254
- lsrs r2, 1
- ldr r0, [r3]
- adds r2, r0
- adds r2, 0xC6
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08064254:
- ldrb r1, [r5, 0x1]
- movs r7, 0xF0
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08064272
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08064272:
- ldrb r1, [r5, 0x1]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0806428E
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0806428E:
- ldrb r1, [r5, 0x2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080642AA
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_080642AA:
- ldrb r1, [r5, 0x2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080642C6
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
-_080642C6:
- ldrb r1, [r5]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- bne _080642D2
- b _08064066
-_080642D2:
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08064066
- .pool
-_080642F4:
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =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 _08064324
- ldr r0, =gSideTimers
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _08064324
- b _08064066
-_08064324:
- cmp r7, 0
- beq _08064370
-_08064328:
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsrs r0, 1
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC0
- mov r1, r9
- strb r1, [r0]
- ldr r0, =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- adds r0, 0x48
- ldr r2, [sp]
- adds r0, r2
- movs r1, 0
- strh r1, [r0]
- adds r0, r7, 0
- b _0806437E
- .pool
-_08064370:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- bgt _0806437C
- b _08063F72
-_0806437C:
- movs r0, 0
-_0806437E:
- 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_8063EE0
-
- thumb_func_start nullsub_28
-nullsub_28: @ 8064390
- bx lr
- thumb_func_end nullsub_28
-
- thumb_func_start sub_8064394
-sub_8064394: @ 8064394
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80643B0
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_8064394
-
- thumb_func_start sub_80643B0
-sub_80643B0: @ 80643B0
- push {lr}
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080643FC
- ldr r0, =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _080643F8
- ldr r0, =gUnknown_0831C7B4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _080643FC
- .pool
-_080643F8:
- bl sub_8065068
-_080643FC:
- pop {r0}
- bx r0
- thumb_func_end sub_80643B0
-
- thumb_func_start sub_8064400
-sub_8064400: @ 8064400
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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, =DummyObjectCallback
- cmp r1, r0
- bne _08064424
- bl sub_8065068
-_08064424:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064400
-
- thumb_func_start sub_8064438
-sub_8064438: @ 8064438
- push {lr}
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =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, =DummyObjectCallback
- cmp r1, r0
- bne _0806445C
- bl sub_8065068
-_0806445C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064438
-
- thumb_func_start sub_8064470
-sub_8064470: @ 8064470
- push {r4-r6,lr}
- ldr r5, =gSprites
- ldr r6, =gBankSpriteIds
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- bne _080644C2
- adds r0, r2, r5
- ldrh r0, [r0, 0x6]
- bl sub_805DFE4
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl obj_free_rotscale_entry
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- bl sub_8065068
-_080644C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064470
-
- thumb_func_start sub_80644D8
-sub_80644D8: @ 80644D8
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r1, [r4]
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08064510
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- bl sub_8065068
-_08064510:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80644D8
-
- thumb_func_start sub_8064520
-sub_8064520: @ 8064520
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- movs r4, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0806454C
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08064584
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08064584
-_0806454C:
- ldr r2, =gSprites
- ldr r1, =gUnknown_03005D70
- ldr r3, =gActiveBank
- 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, [r0]
- ldr r0, =DummyObjectCallback
- adds r7, r3, 0
- cmp r1, r0
- bne _080645C2
- b _080645CA
- .pool
-_08064584:
- ldr r3, =gSprites
- ldr r6, =gUnknown_03005D70
- ldr r2, =gActiveBank
- ldrb r4, [r2]
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r3, 0
- adds r5, 0x1C
- adds r0, r5
- ldr r3, [r0]
- ldr r0, =DummyObjectCallback
- adds r7, r2, 0
- cmp r3, r0
- bne _080645C0
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- cmp r0, r3
- bne _080645C0
- movs r1, 0x1
- mov r8, r1
-_080645C0:
- movs r4, 0x1
-_080645C2:
- mov r0, r8
- cmp r0, 0
- bne _080645CA
- b _08064714
-_080645CA:
- cmp r4, 0
- bne _080645DE
- ldrb r1, [r7]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _0806469C
-_080645DE:
- ldr r1, =gUnknown_020244D0
- mov r12, r1
- ldr r0, [r1]
- ldr r7, =gActiveBank
- ldrb r2, [r7]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r3
- ldrb r1, [r4, 0x1]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08064600
- b _08064714
-_08064600:
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08064714
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- mov r1, r12
- ldr r0, [r1]
- ldrb r2, [r7]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- mov r0, r12
- ldr r2, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- mov r1, r12
- ldr r2, [r1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- b _080646F2
- .pool
-_0806469C:
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldrb r1, [r7]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08064714
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldrb r2, [r7]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080646F2
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
-_080646F2:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80644D8
- str r1, [r0]
-_08064714:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064520
-
- thumb_func_start sub_8064734
-sub_8064734: @ 8064734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r10, r0
- ldr r5, =gUnknown_020244D0
- ldr r0, [r5]
- ldr r4, =gActiveBank
- ldrb r2, [r4]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- movs r6, 0xC4
- lsls r6, 1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08064776
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_08064776:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080647B4
- ldr r2, [r5]
- ldrb r1, [r4]
- movs r0, 0x2
- adds r3, r0, 0
- eors r3, r1
- ldr r1, [r2, 0x4]
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080647B4
- ldr r0, =gBattlePartyID
- adds r0, r2, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8172EF0
-_080647B4:
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldr r2, =gActiveBank
- ldrb r5, [r2]
- ldr r4, [r0, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r6, r0, r4
- ldrb r1, [r6]
- movs r0, 0x8
- mov r12, r0
- ands r0, r1
- mov r8, r3
- mov r9, r2
- cmp r0, 0
- bne _08064898
- movs r7, 0x2
- adds r1, r7, 0
- eors r1, r5
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- mov r0, r12
- ands r0, r1
- cmp r0, 0
- bne _08064898
- ldrb r1, [r6, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806487A
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0806484A
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0806484A
- ldr r4, =gUnknown_03005D70
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- mov r1, r9
- ldrb r0, [r1]
- eors r0, r7
- bl sub_8076918
- mov r1, r9
- ldrb r0, [r1]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80729D0
-_0806484A:
- ldr r5, =gUnknown_03005D70
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r4]
- bl sub_8076918
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_80729D0
-_0806487A:
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r8, r4
- mov r9, r3
-_08064898:
- mov r1, r8
- ldr r0, [r1]
- mov r1, r9
- ldrb r2, [r1]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x80
- bne _0806495A
- movs r1, 0x2
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0806495A
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _0806495A
- mov r1, r8
- ldr r0, [r1]
- mov r1, r9
- ldrb r2, [r1]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0806493C
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x42
- ands r0, r1
- cmp r0, 0x42
- bne _08064930
- adds r0, r2, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806493C
- ldr r0, =gMPlay_BGM
- bl m4aMPlayContinue
- b _0806493C
- .pool
-_08064930:
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0806493C:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r0, 0x1
- mov r10, r0
-_0806495A:
- mov r1, r10
- cmp r1, 0
- bne _08064962
- b _08064AC0
-_08064962:
- ldr r2, =gSprites
- ldr r0, =gUnknown_03005D7C
- ldr r5, =gActiveBank
- ldrb r3, [r5]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, =DummyObjectCallback
- cmp r4, r0
- beq _08064982
- b _08064AC0
-_08064982:
- ldr r0, =gBankSpriteIds
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- beq _08064998
- b _08064AC0
-_08064998:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080649E2
- adds r0, r3, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080649E2
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldrb r2, [r5]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08064AC0
- ldr r0, [r3]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
-_080649E2:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08064A3A
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08064A3A
- ldr r1, =gUnknown_03005D7C
- ldr r5, =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, =gSprites
- adds r0, r1
- bl DestroySprite
- ldrb r0, [r5]
- eors r4, r0
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =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_805EE54
-_08064A3A:
- ldr r1, =gUnknown_03005D7C
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- ldrb r5, [r4]
- ldr r1, =gBattlePartyID
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_805EE54
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r0, [r3]
- ldrb r2, [r4]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r0, [r3]
- ldrb r2, [r4]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064520
- str r1, [r0]
-_08064AC0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064734
-
- thumb_func_start sub_8064B04
-sub_8064B04: @ 8064B04
- push {r4-r7,lr}
- ldr r4, =gSprites
- ldr r0, =gBankSpriteIds
- ldr r7, =gActiveBank
- ldrb r3, [r7]
- adds r0, r3, r0
- 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, =DummyObjectCallback
- cmp r1, r0
- bne _08064BB6
- adds r0, r2, r4
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08064BB6
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- adds r2, r0, r1
- ldrb r5, [r2]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08064B7C
- ldr r0, =gBattlePartyID
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8172EF0
- b _08064BB6
- .pool
-_08064B7C:
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08064BB6
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r2]
- ldr r0, [r6]
- ldrb r2, [r7]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- bl sub_8065068
-_08064BB6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064B04
-
- thumb_func_start sub_8064BC0
-sub_8064BC0: @ 8064BC0
- push {r4-r6,lr}
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- ldr r5, =gUnknown_03005D70
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8074AA0
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_80729D0
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08064C08
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl heathbar_draw_hp
- b _08064C0C
- .pool
-_08064C08:
- bl sub_8065068
-_08064C0C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8064BC0
-
- thumb_func_start sub_8064C14
-sub_8064C14: @ 8064C14
- push {lr}
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- ldr r1, =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 _08064C42
- ldr r0, =gUnknown_03005D70
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8072984
- bl sub_8065068
-_08064C42:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064C14
-
- thumb_func_start sub_8064C58
-sub_8064C58: @ 8064C58
- push {r4-r6,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08064CB2
- ldr r5, =gBankSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl obj_free_rotscale_entry
- 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_805EEE0
- ldr r1, =gUnknown_03005D70
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl sub_8065068
-_08064CB2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064C58
-
- thumb_func_start sub_8064CCC
-sub_8064CCC: @ 8064CCC
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _08064CDE
- bl sub_8065068
-_08064CDE:
- pop {r0}
- bx r0
- thumb_func_end sub_8064CCC
-
- thumb_func_start sub_8064CE4
-sub_8064CE4: @ 8064CE4
- push {r4,lr}
- ldr r1, =gBankSpriteIds
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, =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 _08064D30
- 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, =gDoingBattleAnim
- strb r3, [r0]
- bl sub_8065068
- b _08064D5A
- .pool
-_08064D30:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08064D54
- 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]
-_08064D54:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08064D5A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8064CE4
-
- thumb_func_start sub_8064D60
-sub_8064D60: @ 8064D60
- push {r4,lr}
- ldr r2, =gSprites
- ldr r0, =gUnknown_03005D70
- ldr r4, =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, =DummyObjectCallback
- cmp r1, r0
- bne _08064DAC
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08064DA0
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_08064DA0:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_8064DD0
- str r0, [r1]
-_08064DAC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064D60
-
- thumb_func_start sub_8064DD0
-sub_8064DD0: @ 8064DD0
- push {r4,lr}
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r4, =gActiveBank
- ldrb r1, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08064E2A
- bl sub_80A36C8
- lsls r0, 24
- cmp r0, 0
- bne _08064E2A
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- 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, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- beq _08064E1A
- ldr r0, =nullsub_18
- cmp r1, r0
- bne _08064E2A
-_08064E1A:
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl sub_8065068
-_08064E2A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064DD0
-
- thumb_func_start sub_8064E50
-sub_8064E50: @ 8064E50
- push {r4-r7,lr}
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r1, [r3, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08064F0C
- ldr r7, =gSprites
- ldr r6, =gBankSpriteIds
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r7, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =DummyObjectCallback
- cmp r1, r0
- bne _08064F0C
- ldrb r1, [r3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r3]
- ldr r0, [r4]
- ldrb r2, [r5]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, =0x000027f9
- adds r0, r4, 0
- bl FreeObjectTilesByTag
- adds r0, r4, 0
- bl FreeObjectPaletteByTag
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- bl StartObjectImageAnim
- ldr r4, =gUnknown_03005D70
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl healthbar_draw_field_maybe
- ldrb r0, [r5]
- bl sub_8076918
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80729D0
- ldrb r0, [r5]
- bl sub_805E408
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064D60
- str r1, [r0]
-_08064F0C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064E50
-
- thumb_func_start sub_8064F40
-sub_8064F40: @ 8064F40
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08064F72
- ldr r0, =gBattlePartyID
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8172EF0
-_08064F72:
- ldr r4, =gSprites
- ldr r0, =gUnknown_03005D7C
- 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, =DummyObjectCallback
- cmp r1, r0
- bne _08064FDC
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08064FDC
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =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_805EE54
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064E50
- str r1, [r0]
-_08064FDC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8064F40
-
- thumb_func_start sub_8065008
-sub_8065008: @ 8065008
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0806502A
- bl sub_8065068
-_0806502A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8065008
-
- thumb_func_start sub_8065038
-sub_8065038: @ 8065038
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0806505A
- bl sub_8065068
-_0806505A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8065038
-
- thumb_func_start sub_8065068
-sub_8065068: @ 8065068
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gBattleBankFunc
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80643B0
- str r1, [r0]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080650BC
- bl link_get_multiplayer_id
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl PrepareBufferDataTransferLink
- ldr r1, =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _080650CE
- .pool
-_080650BC:
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_080650CE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8065068
-
- thumb_func_start dp01t_00_2_getattr
-dp01t_00_2_getattr: @ 80650E0
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08065118
- ldr r0, =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_opponent_pokemon
- adds r6, r0, 0
- b _0806513A
- .pool
-_08065118:
- ldrb r4, [r1]
- movs r5, 0
-_0806511C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08065132
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_opponent_pokemon
- adds r6, r0
-_08065132:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0806511C
-_0806513A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_8065068
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_2_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_opponent_pokemon
-dp01_getattr_by_ch1_for_opponent_pokemon: @ 8065154
- 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, =gBattleBufferA
- ldr r3, =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0806517E
- bl _080658EA
-_0806517E:
- lsls r0, 2
- ldr r1, =_08065194
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08065194:
- .4byte _08065284
- .4byte _080654A8
- .4byte _080654B8
- .4byte _080654C8
- .4byte _08065530
- .4byte _08065530
- .4byte _08065530
- .4byte _08065530
- .4byte _0806554C
- .4byte _08065588
- .4byte _08065588
- .4byte _08065588
- .4byte _08065588
- .4byte _080658EA
- .4byte _080658EA
- .4byte _080658EA
- .4byte _080658EA
- .4byte _080655A4
- .4byte _080655B4
- .4byte _080655E4
- .4byte _080655F4
- .4byte _08065604
- .4byte _08065614
- .4byte _08065624
- .4byte _08065634
- .4byte _08065644
- .4byte _08065654
- .4byte _08065664
- .4byte _08065674
- .4byte _08065684
- .4byte _08065694
- .4byte _080656A4
- .4byte _080656F4
- .4byte _08065704
- .4byte _08065714
- .4byte _08065724
- .4byte _08065734
- .4byte _08065744
- .4byte _08065754
- .4byte _08065764
- .4byte _08065774
- .4byte _080657A8
- .4byte _080657B8
- .4byte _080657C8
- .4byte _080657D8
- .4byte _080657E8
- .4byte _080657F8
- .4byte _08065808
- .4byte _08065818
- .4byte _08065838
- .4byte _08065848
- .4byte _08065858
- .4byte _08065868
- .4byte _08065878
- .4byte _08065888
- .4byte _08065898
- .4byte _080658A8
- .4byte _080658B8
- .4byte _080658C8
- .4byte _080658D8
-_08065284:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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
-_080652D0:
- 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 _080652D0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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, =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, =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, =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
-_08065488:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08065488
- b _080658EA
- .pool
-_080654A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _08065822
- .pool
-_080654B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _08065822
- .pool
-_080654C8:
- 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, =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_080654DE:
- 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 _080654DE
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0806551C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0806551C
- b _080658EA
- .pool
-_08065530:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08065822
- .pool
-_0806554C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, =gEnemyParty
- mov r8, r2
-_08065558:
- 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 _08065558
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _080658EA
- .pool
-_08065588:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _080658E2
- .pool
-_080655A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _080655BE
- .pool
-_080655B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_080655BE:
- 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 _080658EA
- .pool
-_080655E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _080658E2
- .pool
-_080655F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _080658E2
- .pool
-_08065604:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _080658E2
- .pool
-_08065614:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _080658E2
- .pool
-_08065624:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _080658E2
- .pool
-_08065634:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _080658E2
- .pool
-_08065644:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _080658E2
- .pool
-_08065654:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _080658E2
- .pool
-_08065664:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _080658E2
- .pool
-_08065674:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _080658E2
- .pool
-_08065684:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _080658E2
- .pool
-_08065694:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _080658E2
- .pool
-_080656A4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _080658EA
- .pool
-_080656F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _080658E2
- .pool
-_08065704:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _080658E2
- .pool
-_08065714:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _080658E2
- .pool
-_08065724:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _080658E2
- .pool
-_08065734:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _080658E2
- .pool
-_08065744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _080658E2
- .pool
-_08065754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0806577E
- .pool
-_08065764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _08065822
- .pool
-_08065774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0806577E:
- 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 _080658EA
- .pool
-_080657A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _080658E2
- .pool
-_080657B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _08065822
- .pool
-_080657C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _08065822
- .pool
-_080657D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _08065822
- .pool
-_080657E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _08065822
- .pool
-_080657F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _08065822
- .pool
-_08065808:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _08065822
- .pool
-_08065818:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_08065822:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _080658EA
- .pool
-_08065838:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _080658E2
- .pool
-_08065848:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _080658E2
- .pool
-_08065858:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _080658E2
- .pool
-_08065868:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _080658E2
- .pool
-_08065878:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _080658E2
- .pool
-_08065888:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _080658E2
- .pool
-_08065898:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _080658E2
- .pool
-_080658A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _080658E2
- .pool
-_080658B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _080658E2
- .pool
-_080658C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _080658E2
- .pool
-_080658D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_080658E2:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_080658EA:
- 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
- .pool
- thumb_func_end dp01_getattr_by_ch1_for_opponent_pokemon
-
- thumb_func_start sub_8065900
-sub_8065900: @ 8065900
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8065900
-
- thumb_func_start sub_806590C
-sub_806590C: @ 806590C
- push {r4,r5,lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0806593C
- ldr r0, =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8065964
- b _0806595A
- .pool
-_0806593C:
- ldrb r4, [r1]
- movs r5, 0
-_08065940:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0806594E
- adds r0, r5, 0
- bl sub_8065964
-_0806594E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08065940
-_0806595A:
- bl sub_8065068
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806590C
-
- thumb_func_start sub_8065964
-sub_8065964: @ 8065964
- 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, =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, =gUnknown_02023067
- 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 _08065992
- bl _08066270
-_08065992:
- lsls r0, 2
- ldr r1, =_080659A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080659A8:
- .4byte _08065A98
- .4byte _08065C30
- .4byte _08065C4C
- .4byte _08065C68
- .4byte _08065CBC
- .4byte _08065CBC
- .4byte _08065CBC
- .4byte _08065CBC
- .4byte _08065CDC
- .4byte _08065D44
- .4byte _08065D44
- .4byte _08065D44
- .4byte _08065D44
- .4byte _08066270
- .4byte _08066270
- .4byte _08066270
- .4byte _08066270
- .4byte _08065D6C
- .4byte _08065D88
- .4byte _08065DA4
- .4byte _08065DC0
- .4byte _08065DDC
- .4byte _08065DF8
- .4byte _08065E14
- .4byte _08065E30
- .4byte _08065E4C
- .4byte _08065E68
- .4byte _08065E84
- .4byte _08065EA0
- .4byte _08065EBC
- .4byte _08065ED8
- .4byte _08065EF4
- .4byte _08065F68
- .4byte _08065F84
- .4byte _08065FA0
- .4byte _08065FBC
- .4byte _08065FD8
- .4byte _08065FF4
- .4byte _08066010
- .4byte _0806602C
- .4byte _08066048
- .4byte _08066064
- .4byte _08066080
- .4byte _0806609C
- .4byte _080660B8
- .4byte _080660D4
- .4byte _080660F0
- .4byte _0806610C
- .4byte _08066128
- .4byte _08066144
- .4byte _08066160
- .4byte _0806617C
- .4byte _08066198
- .4byte _080661B4
- .4byte _080661D0
- .4byte _080661EC
- .4byte _08066208
- .4byte _08066224
- .4byte _08066240
- .4byte _0806625C
-_08065A98:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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
-_08065AFE:
- 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 _08065AFE
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _08066270
- .pool
-_08065C30:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _08066270
- .pool
-_08065C4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _08066270
- .pool
-_08065C68:
- 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, =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08065C80:
- 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 _08065C80
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08066270
- .pool
-_08065CBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r3, =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08065D5A
- .pool
-_08065CDC:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _08066270
- .pool
-_08065D44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r3, =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08065D5A:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08066270
- .pool
-_08065D6C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _08066270
- .pool
-_08065D88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _08066270
- .pool
-_08065DA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _08066270
- .pool
-_08065DC0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _08066270
- .pool
-_08065DDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _08066270
- .pool
-_08065DF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _08066270
- .pool
-_08065E14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _08066270
- .pool
-_08065E30:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _08066270
- .pool
-_08065E4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _08066270
- .pool
-_08065E68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _08066270
- .pool
-_08065E84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _08066270
- .pool
-_08065EA0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _08066270
- .pool
-_08065EBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _08066270
- .pool
-_08065ED8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _08066270
- .pool
-_08065EF4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =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 _08066002
- .pool
-_08065F68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _08066270
- .pool
-_08065F84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _08066270
- .pool
-_08065FA0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _08066270
- .pool
-_08065FBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _08066270
- .pool
-_08065FD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _08066270
- .pool
-_08065FF4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08066002:
- movs r1, 0x2C
- bl SetMonData
- b _08066270
- .pool
-_08066010:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _08066270
- .pool
-_0806602C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _08066270
- .pool
-_08066048:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _08066270
- .pool
-_08066064:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _08066270
- .pool
-_08066080:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _08066270
- .pool
-_0806609C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _08066270
- .pool
-_080660B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _08066270
- .pool
-_080660D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _08066270
- .pool
-_080660F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _08066270
- .pool
-_0806610C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _08066270
- .pool
-_08066128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _08066270
- .pool
-_08066144:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _08066270
- .pool
-_08066160:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _08066270
- .pool
-_0806617C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _08066270
- .pool
-_08066198:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _08066270
- .pool
-_080661B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _08066270
- .pool
-_080661D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _08066270
- .pool
-_080661EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _08066270
- .pool
-_08066208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _08066270
- .pool
-_08066224:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _08066270
- .pool
-_08066240:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _08066270
- .pool
-_0806625C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_08066270:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8065964
-
- thumb_func_start sub_8066284
-sub_8066284: @ 8066284
- push {r4-r7,lr}
- ldr r1, =gBattlePartyID
- ldr r7, =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, =gBattleBufferA
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, =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 _080662DC
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_080662BA:
- 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 _080662BA
-_080662DC:
- bl sub_8065068
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066284
-
- thumb_func_start sub_80662F8
-sub_80662F8: @ 80662F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, =gBattlePartyID
- ldr r6, =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, =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_805DC0C
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806A068
- ldr r0, =gUnknown_0202499C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_80A5C6C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_80A6138
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_80A82E4
- 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, =gBankSpriteIds
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, =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, =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, =gUnknown_020244E4
- adds r2, r1
- ldrb r1, [r2]
- bl StartObjectImageAnim
- 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_805EE54
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064B04
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80662F8
-
- thumb_func_start sub_8066448
-sub_8066448: @ 8066448
- push {r4,lr}
- ldr r1, =gBattlePartyID
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, =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_8066494
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064F40
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066448
-
- thumb_func_start sub_8066494
-sub_8066494: @ 8066494
- 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_805EF84
- ldr r0, =gBattlePartyID
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, =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, =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =sub_805D714
- bl CreateInvisibleSpriteWithCallback
- ldr r1, =gUnknown_03005D7C
- 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_805DC0C
- adds r0, r6, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_806A068
- ldr r0, =gUnknown_0202499C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_80A5C6C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_80A6138
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_80A82E4
- 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, =gBankSpriteIds
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, =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]
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- 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, =gUnknown_020244E4
- adds r6, r1
- ldrb r1, [r6]
- bl StartObjectImageAnim
- 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, =DummyObjectCallback
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_80753E8
- 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
- .pool
- thumb_func_end sub_8066494
-
- thumb_func_start sub_8066624
-sub_8066624: @ 8066624
- push {r4-r6,lr}
- ldr r1, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0806666C
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80666BC
- str r1, [r0]
- b _080666A8
- .pool
-_0806666C:
- ldr r5, =gBankSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl obj_free_rotscale_entry
- 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_805EEE0
- ldr r1, =gUnknown_03005D70
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8072984
- bl sub_8065068
-_080666A8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066624
-
- thumb_func_start sub_80666BC
-sub_80666BC: @ 80666BC
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r4, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r1, [r4, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _080666E4
- cmp r0, 0x1
- beq _08066712
- b _0806673A
- .pool
-_080666E4:
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080666FE
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_080666FE:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _0806673A
-_08066712:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0806673A
- 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, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064C58
- str r1, [r0]
-_0806673A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80666BC
-
- thumb_func_start sub_8066748
-sub_8066748: @ 8066748
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08066840
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x2
- ands r1, r0
- movs r7, 0xC8
- cmp r1, 0
- beq _08066770
- movs r7, 0x98
-_08066770:
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _080667A8
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08066794
- ldr r0, =gUnknown_02038BCA
- b _08066796
- .pool
-_08066794:
- ldr r0, =gUnknown_02038BCC
-_08066796:
- ldrh r0, [r0]
- bl sub_8162AA0
- lsls r0, 24
- lsrs r0, 24
- b _0806694C
- .pool
-_080667A8:
- ldrb r0, [r5]
- bl sub_806D864
- ldr r6, =gUnknown_020229E8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- movs r4, 0xFF
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _080667D8
- ldrb r0, [r5]
- bl sub_806D864
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x5
- bne _080667F4
-_080667D8:
- ldrb r0, [r5]
- bl sub_806D864
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _080668AA
- b _080668BC
- .pool
-_080667F4:
- ldrb r0, [r5]
- bl sub_806D864
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x2
- beq _08066822
- ldrb r0, [r5]
- bl sub_806D864
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r1]
- ands r4, r0
- cmp r4, 0x1
- bne _08066838
-_08066822:
- ldrb r0, [r5]
- bl sub_806D864
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _08066916
- b _08066924
-_08066838:
- ldrb r0, [r5]
- bl sub_806D864
- b _0806693A
-_08066840:
- movs r7, 0xB0
- ldr r0, =gUnknown_02038BCA
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 4
- cmp r1, r0
- bne _08066858
- bl sub_8068B48
- b _08066948
- .pool
-_08066858:
- bl link_get_multiplayer_id
- ldr r6, =gUnknown_020229E8
- movs r5, 0x1
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- movs r4, 0xFF
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _08066892
- bl link_get_multiplayer_id
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x5
- bne _080668C8
-_08066892:
- bl link_get_multiplayer_id
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- beq _080668BC
-_080668AA:
- ldr r0, =gTrainerPicIndices
- adds r0, 0x4F
- ldrb r0, [r0]
- b _0806694C
- .pool
-_080668BC:
- ldr r0, =gTrainerPicIndices
- adds r0, 0x4E
- ldrb r0, [r0]
- b _0806694C
- .pool
-_080668C8:
- bl link_get_multiplayer_id
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080668FE
- bl link_get_multiplayer_id
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r1]
- ands r4, r0
- cmp r4, 0x1
- bne _08066930
-_080668FE:
- bl link_get_multiplayer_id
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- beq _08066924
-_08066916:
- ldr r0, =gTrainerPicIndices
- adds r0, 0x51
- ldrb r0, [r0]
- b _0806694C
- .pool
-_08066924:
- ldr r0, =gTrainerPicIndices
- adds r0, 0x50
- ldrb r0, [r0]
- b _0806694C
- .pool
-_08066930:
- bl link_get_multiplayer_id
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
-_0806693A:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x13]
- bl sub_806F000
-_08066948:
- lsls r0, 16
- lsrs r0, 16
-_0806694C:
- mov r8, r0
- ldr r5, =gActiveBank
- ldrb r1, [r5]
- bl sub_805DF38
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl template_build_for_pokemon_or_trainer
- ldr r6, =gUnknown_0202499C
- mov r9, r7
- ldr r1, =gUnknown_083054E0
- mov r2, r8
- 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
- ldrb r0, [r5]
- bl sub_80A82E4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- mov r1, r9
- adds r2, r4, 0
- bl CreateSprite
- ldr r6, =gBankSpriteIds
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, =gSprites
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ff10
- 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]
- ldr r1, =gTrainerFrontPicPaletteTable
- mov r2, r8
- lsls r0, r2, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- ldrb r1, [r5]
- adds r1, r6
- 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]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r8
- strh r1, [r0, 0x6]
- 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, =sub_805D7AC
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064400
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066748
-
- thumb_func_start sub_8066A58
-sub_8066A58: @ 8066A58
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08066A74
- ldr r0, =gUnknown_02038BCA
- b _08066A76
- .pool
-_08066A74:
- ldr r0, =gUnknown_02038BCC
-_08066A76:
- ldrh r0, [r0]
- bl sub_8162AA0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, =gActiveBank
- ldrb r1, [r6]
- bl sub_805DF38
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl template_build_for_pokemon_or_trainer
- ldr r0, =gUnknown_0202499C
- ldr r2, =gUnknown_083054E0
- mov r3, r8
- 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, =gBankSpriteIds
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, =gSprites
- ldrb r0, [r6]
- 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, [r6]
- 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, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x2E]
- ldr r1, =gTrainerFrontPicPaletteTable
- mov r2, r8
- lsls r0, r2, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- ldrb r1, [r6]
- 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]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r3, r8
- strh r3, [r0, 0x6]
- 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, =sub_805D7AC
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064438
- str r1, [r0]
- bl sub_8065068
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066A58
-
- thumb_func_start sub_8066B94
-sub_8066B94: @ 8066B94
- push {r4-r6,lr}
- ldr r6, =gBankSpriteIds
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =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, =sub_80A6EEC
- 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, =DummyObjectCallback
- bl oamt_set_x3A_32
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064470
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066B94
-
- thumb_func_start sub_8066C40
-sub_8066C40: @ 8066C40
- push {r4-r6,lr}
- ldr r6, =gUnknown_020244D0
- ldr r4, [r6]
- ldr r5, =gActiveBank
- ldrb r2, [r5]
- ldr r0, [r4, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _08066C94
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08066C74
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08066C74:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- adds r1, 0x1
- strb r1, [r0, 0x4]
- b _08066CD0
- .pool
-_08066C94:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08066CD0
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl audio_play_and_stuff
- ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- 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, =sub_8039934
- str r1, [r0]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064C14
- str r1, [r0]
-_08066CD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066C40
-
- thumb_func_start sub_8066CEC
-sub_8066CEC: @ 8066CEC
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8066CEC
-
- thumb_func_start sub_8066CF8
-sub_8066CF8: @ 8066CF8
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8066CF8
-
- thumb_func_start sub_8066D04
-sub_8066D04: @ 8066D04
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8066D04
-
- thumb_func_start sub_8066D10
-sub_8066D10: @ 8066D10
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8066D10
-
- thumb_func_start sub_8066D1C
-sub_8066D1C: @ 8066D1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08066D32
- b _08066E58
-_08066D32:
- ldr r0, =gBattleBufferA
- mov r12, r0
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, 0x1
- adds r0, r1, r0
- ldrb r6, [r0]
- mov r0, r12
- adds r0, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- ldr r0, =gUnknown_02038432
- mov r8, r0
- mov r0, r12
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- mov r1, r8
- strb r0, [r1]
- ldr r3, =gUnknown_02038408
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0x4
- adds r0, r1, r0
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0x5
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- strh r2, [r3]
- ldr r3, =gUnknown_02038404
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0x6
- adds r0, r1, r0
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0x7
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- mov r0, r12
- adds r0, 0x8
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 16
- orrs r2, r0
- mov r0, r12
- adds r0, 0x9
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 24
- orrs r2, r0
- str r2, [r3]
- ldr r2, =gUnknown_0203841A
- ldrb r0, [r5]
- lsls r0, 9
- mov r1, r12
- adds r1, 0xA
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r4, =gUnknown_0203841C
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0xC
- adds r0, r1, r0
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0xD
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- strh r2, [r4]
- ldr r7, =gUnknown_02038400
- ldrb r1, [r5]
- lsls r1, 9
- mov r0, r12
- adds r0, 0x10
- adds r1, r0
- str r1, [r7]
- ldr r2, =gUnknown_020244BC
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- str r1, [r0]
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_805DB8C
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08066E30
- bl sub_8065068
- b _08066E58
- .pool
-_08066E30:
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x4]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8066E70
- str r1, [r0]
- ldrh r1, [r4]
- ldr r2, [r7]
- adds r0, r6, 0
- bl sub_817E0FC
-_08066E58:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066D1C
-
- thumb_func_start sub_8066E70
-sub_8066E70: @ 8066E70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, =gBattleBufferA
- ldr r6, =gActiveBank
- ldrb r3, [r6]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r10, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, r2, 0x2
- mov r9, r5
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- ldr r7, =gUnknown_020244D0
- ldr r5, [r7]
- ldr r1, [r5, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08066F08
- cmp r2, 0x1
- bgt _08066EC8
- cmp r2, 0
- beq _08066ED2
- b _08066FE4
- .pool
-_08066EC8:
- cmp r2, 0x2
- beq _08066F32
- cmp r2, 0x3
- beq _08066FA8
- b _08066FE4
-_08066ED2:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08066EF4
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r6]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08066EF4:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _08066FE4
-_08066F08:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08066FE4
- movs r0, 0
- bl sub_805EB9C
- adds r0, r4, 0
- bl move_anim_start_t1
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x4]
- b _08066FE4
-_08066F32:
- ldr r0, =gUnknown_020383F8
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gUnknown_020383FD
- ldrb r0, [r0]
- cmp r0, 0
- bne _08066FE4
- movs r0, 0x1
- bl sub_805EB9C
- ldr r0, [r7]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08066F80
- mov r0, r8
- cmp r0, 0x1
- bhi _08066F80
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08066F80:
- ldr r0, =gUnknown_020244D0
- ldr r2, [r0]
- ldr r0, =gActiveBank
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08066FE4
- .pool
-_08066FA8:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08066FE4
- bl sub_805E394
- ldrb r0, [r6]
- lsls r2, r0, 9
- mov r3, r10
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r9
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_805E94C
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r4, [r0, 0x4]
- bl sub_8065068
-_08066FE4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8066E70
-
- thumb_func_start sub_8066FF4
-sub_8066FF4: @ 8066FF4
- push {r4,r5,lr}
- ldr r0, =gUnknown_02022E14
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_02022E16
- strh r1, [r0]
- ldr r5, =gActiveBank
- ldrb r4, [r5]
- lsls r4, 9
- ldr r0, =gUnknown_02023066
- adds r4, r0
- ldrh r0, [r4]
- bl battle_pick_message
- ldr r0, =gUnknown_02022E2C
- movs r1, 0
- bl battle_show_message_maybe
- ldr r1, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064CCC
- str r1, [r0]
- ldrh r0, [r4]
- bl sub_817C95C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8066FF4
-
- thumb_func_start sub_806704C
-sub_806704C: @ 806704C
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_806704C
-
- thumb_func_start sub_8067058
-sub_8067058: @ 8067058
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067058
-
- thumb_func_start sub_8067064
-sub_8067064: @ 8067064
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067064
-
- thumb_func_start sub_8067070
-sub_8067070: @ 8067070
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067070
-
- thumb_func_start sub_806707C
-sub_806707C: @ 806707C
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_806707C
-
- thumb_func_start sub_8067088
-sub_8067088: @ 8067088
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067088
-
- thumb_func_start sub_8067094
-sub_8067094: @ 8067094
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067094
-
- thumb_func_start sub_80670A0
-sub_80670A0: @ 80670A0
- 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, =gBattleBufferA
- ldr r0, =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, =0x00007fff
- cmp r7, r0
- beq _08067130
- ldr r6, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =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, =gUnknown_03005D70
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_807294C
- b _0806715A
- .pool
-_08067130:
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, =gUnknown_03005D70
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_807294C
-_0806715A:
- ldr r1, =gBattleBankFunc
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064BC0
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80670A0
-
- thumb_func_start sub_8067190
-sub_8067190: @ 8067190
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067190
-
- thumb_func_start sub_806719C
-sub_806719C: @ 806719C
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080671F0
- ldr r0, =gUnknown_03005D70
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl healthbar_draw_field_maybe
- ldrb r2, [r4]
- ldr r0, =gUnknown_020244D0
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8065008
- str r1, [r0]
-_080671F0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806719C
-
- thumb_func_start sub_8067214
-sub_8067214: @ 8067214
- push {r4,r5,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08067264
- ldr r4, =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, =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8065008
- str r1, [r0]
-_08067264:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067214
-
- thumb_func_start sub_806727C
-sub_806727C: @ 806727C
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_806727C
-
- thumb_func_start sub_8067288
-sub_8067288: @ 8067288
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067288
-
- thumb_func_start sub_8067294
-sub_8067294: @ 8067294
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_8067294
-
- thumb_func_start sub_80672A0
-sub_80672A0: @ 80672A0
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80672A0
-
- thumb_func_start sub_80672AC
-sub_80672AC: @ 80672AC
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80672AC
-
- thumb_func_start sub_80672B8
-sub_80672B8: @ 80672B8
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80672B8
-
- thumb_func_start sub_80672C4
-sub_80672C4: @ 80672C4
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80672C4
-
- thumb_func_start sub_80672D0
-sub_80672D0: @ 80672D0
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80672D0
-
- thumb_func_start sub_80672DC
-sub_80672DC: @ 80672DC
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80672DC
-
- thumb_func_start sub_80672E8
-sub_80672E8: @ 80672E8
- push {lr}
- ldr r2, =gUnknown_02022D0C
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80672E8
-
- thumb_func_start sub_8067304
-sub_8067304: @ 8067304
- push {lr}
- ldr r3, =gUnknown_02022D0C
- ldr r1, =gBattleBufferA
- ldr r0, =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 sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067304
-
- thumb_func_start sub_806733C
-sub_806733C: @ 806733C
- push {lr}
- ldr r2, =gUnknown_02022D0C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806733C
-
- thumb_func_start sub_8067354
-sub_8067354: @ 8067354
- push {lr}
- ldr r3, =gUnknown_02022D0C
- 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_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067354
-
- thumb_func_start sub_806737C
-sub_806737C: @ 806737C
- push {r4,lr}
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- ldr r4, =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 _080673B0
- bl sub_8065068
- b _080673DA
- .pool
-_080673B0:
- ldr r1, =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_80769F4
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064CE4
- str r1, [r0]
-_080673DA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806737C
-
- thumb_func_start sub_80673EC
-sub_80673EC: @ 80673EC
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80673EC
-
- thumb_func_start sub_80673F8
-sub_80673F8: @ 80673F8
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0806740C
- movs r3, 0xC0
-_0806740C:
- ldr r2, =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 audio_play_and_stuff
- bl sub_8065068
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80673F8
-
- thumb_func_start sub_806743C
-sub_806743C: @ 806743C
- push {r4,r5,lr}
- ldr r4, =gBattleBufferA
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r3, r0, 9
- adds r0, r4, 0x3
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08067478
- bl sub_805EA60
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, r4, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl song_play_for_text
- b _0806748C
- .pool
-_08067478:
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl fanfare_play
-_0806748C:
- bl sub_8065068
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806743C
-
- thumb_func_start sub_8067498
-sub_8067498: @ 8067498
- push {lr}
- ldr r1, =gBattlePartyID
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl sub_80A32E4
- bl sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067498
-
- thumb_func_start sub_80674D4
-sub_80674D4: @ 80674D4
- push {lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl battle_intro_launch
- ldr r2, =gUnknown_020243FC
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80674D4
-
- thumb_func_start sub_8067508
-sub_8067508: @ 8067508
- push {r4-r6,lr}
- ldr r5, =gBankSpriteIds
- ldr r6, =gActiveBank
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =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, =sub_80A6EEC
- 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, =sub_80676FC
- bl oamt_set_x3A_32
- ldr r0, =c3_08038DC4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldr r3, =gUnknown_020244D0
- ldr r0, [r3]
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080675CA
- ldr r0, =gUnknown_020244B4
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, =sub_8073C30
- str r1, [r0]
-_080675CA:
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, =nullsub_28
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067508
-
- thumb_func_start c3_08038DC4
-c3_08038DC4: @ 8067618
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, =gActiveBank
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, =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 _08067652
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08067684
-_08067652:
- ldr r0, =gBattleBufferA
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, =gBattlePartyID
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8066494
- b _080676C4
- .pool
-_08067684:
- ldr r4, =gBattleBufferA
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, =gBattlePartyID
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8066494
- 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_8066494
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_080676C4:
- ldr r1, =gBattleBankFunc
- ldr r2, =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_8064734
- 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
- .pool
- thumb_func_end c3_08038DC4
-
- thumb_func_start sub_80676FC
-sub_80676FC: @ 80676FC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_805DFE4
- adds r0, r4, 0
- bl obj_free_rotscale_entry
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80676FC
-
- thumb_func_start sub_8067718
-sub_8067718: @ 8067718
- push {r4-r7,lr}
- ldr r1, =gBattleBufferA
- ldr r0, =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08067748
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08067748
- bl sub_8065068
- b _08067812
- .pool
-_08067748:
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, =gBattleBufferA
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r3, 0
- cmp r0, 0
- beq _080677B4
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 27
- lsrs r0, r1, 28
- cmp r0, 0x1
- bhi _080677AC
- adds r0, 0x1
- movs r1, 0xF
- ands r0, r1
- lsls r0, 1
- movs r1, 0x1F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _08067812
- .pool
-_080677AC:
- movs r0, 0x1F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_080677B4:
- adds r5, r7, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, =gUnknown_02023068
- 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_80735DC
- ldr r2, =gUnknown_020244B4
- ldrb r1, [r5]
- adds r1, r2
- movs r3, 0
- strb r0, [r1]
- ldr r6, =gUnknown_020244D0
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08067806
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08067806:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_806782C
- str r0, [r1]
-_08067812:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067718
-
- thumb_func_start sub_806782C
-sub_806782C: @ 806782C
- push {r4,lr}
- ldr r4, =gUnknown_020244D0
- ldr r0, [r4]
- ldr r3, =gActiveBank
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08067864
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x5]
- bl sub_8065068
-_08067864:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_806782C
-
- thumb_func_start sub_8067874
-sub_8067874: @ 8067874
- push {lr}
- ldr r0, =gUnknown_020244D0
- ldr r1, [r0]
- ldr r0, =gActiveBank
- ldrb r3, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080678A6
- ldr r2, =gTasks
- ldr r0, =gUnknown_020244B4
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_8073C30
- str r1, [r0]
-_080678A6:
- bl sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067874
-
- thumb_func_start sub_80678C4
-sub_80678C4: @ 80678C4
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80678C4
-
- thumb_func_start sub_80678D0
-sub_80678D0: @ 80678D0
- push {r4,lr}
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- bl sub_80A6A90
- lsls r0, 24
- cmp r0, 0
- beq _08067916
- ldr r3, =gSprites
- ldr r0, =gBankSpriteIds
- 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, =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_805E408
-_08067916:
- bl sub_8065068
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80678D0
-
- thumb_func_start sub_8067930
-sub_8067930: @ 8067930
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08067992
- ldr r4, =gBattleBufferA
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, r4, 0x1
- adds r0, r1, r0
- ldrb r6, [r0]
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r4, 0x3
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- adds r3, r6, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08067980
- bl sub_8065068
- b _0806798C
- .pool
-_08067980:
- ldr r0, =gBattleBankFunc
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, =sub_8065038
- str r0, [r1]
-_0806798C:
- adds r0, r6, 0
- bl sub_817E32C
-_08067992:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8067930
-
- thumb_func_start sub_80679A4
-sub_80679A4: @ 80679A4
- push {lr}
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- ldr r1, =gUnknown_02023066
- adds r0, r1
- bl sub_81851A8
- bl sub_8065068
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80679A4
-
- thumb_func_start sub_80679C4
-sub_80679C4: @ 80679C4
- push {lr}
- bl sub_8065068
- pop {r0}
- bx r0
- thumb_func_end sub_80679C4
-
- thumb_func_start sub_80679D0
-sub_80679D0: @ 80679D0
- push {r4,r5,lr}
- ldr r5, =gActiveBank
- ldrb r0, [r5]
- lsls r0, 9
- ldr r4, =gUnknown_02023068
- adds r0, r4
- bl sub_81851A8
- ldrb r0, [r5]
- lsls r0, 9
- subs r4, 0x3
- adds r0, r4
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _08067A00
- ldr r0, =gBattleOutcome
- strb r2, [r0]
- b _08067A08
- .pool
-_08067A00:
- ldr r0, =gBattleOutcome
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_08067A08:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =gBattleBufferA
- ldr r4, =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x5
- bl sub_80A2F50
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl sub_8065068
- ldr r1, =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, =sub_80587B0
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80679D0
-
- thumb_func_start nullsub_92
-nullsub_92: @ 8067A70
- bx lr
- thumb_func_end nullsub_92
-
+
.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..718ded432
--- /dev/null
+++ b/asm/battle_5.s
@@ -0,0 +1,582 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_8056F28
+sub_8056F28: @ 8056F28
+ push {r4-r6,lr}
+ ldr r5, =gBattleResources
+ ldr r6, =gBattleTypeFlags
+ ldr r0, [r6]
+ movs r1, 0x80
+ lsls r1, 19
+ ands r0, r1
+ cmp r0, 0
+ beq _08056F3E
+ bl sub_81D55D0
+_08056F3E:
+ ldr r4, =gBattleStruct
+ movs r0, 0xA9
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r4]
+ movs r0, 0x20
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0xA0
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1]
+ movs r0, 0x10
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0x4]
+ movs r0, 0x24
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0x8]
+ movs r0, 0x24
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0xC]
+ movs r0, 0xC
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0x10]
+ movs r0, 0x1C
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0x14]
+ movs r0, 0x54
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0x18]
+ movs r0, 0x24
+ bl AllocZeroed
+ ldr r1, [r5]
+ str r0, [r1, 0x1C]
+ ldr r4, =gUnknown_020244A0
+ movs r5, 0x80
+ lsls r5, 5
+ adds r0, r5, 0
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r4, =gUnknown_020244A4
+ adds r0, r5, 0
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r4, =gUnknown_0202305C
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r4, =gUnknown_02023060
+ adds r0, r5, 0
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r0, [r6]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08056FFA
+ ldr r0, =0x00004054
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, =gSaveBlock1Ptr
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ ldr r0, =0x00001a9c
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ bl create_enemy_party
+_08056FFA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8056F28
+
+ thumb_func_start sub_8057028
+sub_8057028: @ 8057028
+ push {r4-r6,lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 19
+ ands r0, r1
+ cmp r0, 0
+ beq _0805703C
+ bl sub_81D5694
+_0805703C:
+ ldr r6, =gBattleResources
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _080570D0
+ ldr r4, =gBattleStruct
+ ldr r0, [r4]
+ bl Free
+ movs r5, 0
+ str r5, [r4]
+ ldr r0, [r6]
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0]
+ ldr r0, [r0, 0x4]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0x4]
+ ldr r0, [r0, 0x8]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0x8]
+ ldr r0, [r0, 0xC]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0xC]
+ ldr r0, [r0, 0x10]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0x10]
+ ldr r0, [r0, 0x14]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0x14]
+ ldr r0, [r0, 0x18]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0x18]
+ ldr r0, [r0, 0x1C]
+ bl Free
+ ldr r0, [r6]
+ str r5, [r0, 0x1C]
+ bl Free
+ str r5, [r6]
+ ldr r4, =gUnknown_020244A0
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_020244A4
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0202305C
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_02023060
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+_080570D0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8057028
+
+ thumb_func_start sub_80570F4
+sub_80570F4: @ 80570F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08057140
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gBattleMons
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ adds r1, r2
+ adds r1, 0x2A
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bls _0805714A
+ adds r4, r3, 0
+ b _0805714A
+ .pool
+_08057140:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0805714A:
+ ldr r2, =gBattleMons
+ movs r1, 0x58
+ adds r0, r4, 0
+ muls r0, r1
+ adds r0, r2
+ adds r3, r0, 0
+ adds r3, 0x2A
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x2A
+ ldrb r0, [r3]
+ ldrb r2, [r1]
+ cmp r0, r2
+ bls _080571B8
+ ldrb r1, [r1]
+ subs r0, r1
+ cmp r0, 0x1D
+ ble _08057198
+ ldr r1, =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ bl happiness_algorithm
+ b _080571CE
+ .pool
+_08057198:
+ ldr r1, =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x6
+ bl happiness_algorithm
+ b _080571CE
+ .pool
+_080571B8:
+ ldr r1, =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x6
+ bl happiness_algorithm
+_080571CE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80570F4
+
+ thumb_func_start sub_80571DC
+sub_80571DC: @ 80571DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08057248
+ movs r2, 0
+ ldr r6, =gBattlePartyID
+ lsls r3, r4, 1
+ ldr r5, =gUnknown_0203CF00
+ ldr r4, =gBattleStruct
+_080571FE:
+ adds r0, r2, r5
+ ldr r1, [r4]
+ adds r1, r2, r1
+ adds r1, 0x60
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _080571FE
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ bl pokemon_order_func
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_81B8FB0
+ movs r2, 0
+ ldr r4, =gBattleStruct
+ ldr r3, =gUnknown_0203CF00
+_08057236:
+ ldr r0, [r4]
+ adds r0, r2, r0
+ adds r0, 0x60
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08057236
+_08057248:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80571DC
+
+ thumb_func_start sub_805725C
+sub_805725C: @ 805725C
+ 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 r9, r0
+ movs r0, 0
+ mov r8, r0
+ ldr r1, =gBattleCommunication
+ mov r10, r1
+ b _08057284
+ .pool
+_0805727C:
+ mov r2, r8
+ cmp r2, 0
+ beq _08057284
+ b _08057406
+_08057284:
+ mov r1, r10
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _0805728E
+ b _08057390
+_0805728E:
+ cmp r0, 0x1
+ ble _08057294
+ b _080573FC
+_08057294:
+ cmp r0, 0
+ beq _0805729A
+ b _080573FC
+_0805729A:
+ ldr r6, =gBattleMons
+ movs r0, 0x58
+ mov r5, r9
+ muls r5, r0
+ adds r0, r6, 0
+ adds r0, 0x4C
+ adds r4, r5, r0
+ ldr r0, [r4]
+ movs r7, 0x7
+ ands r0, r7
+ cmp r0, 0
+ beq _08057372
+ mov r0, r9
+ bl sub_8050650
+ lsls r0, 24
+ cmp r0, 0
+ beq _080572FC
+ ldr r0, [r4]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r4]
+ adds r2, r6, 0
+ adds r2, 0x50
+ adds r2, r5, r2
+ ldr r0, [r2]
+ ldr r1, =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ movs r0, 0x1
+ mov r2, r10
+ strb r0, [r2, 0x5]
+ ldr r1, =gBattlescriptCurrInstr
+ ldr r0, =gUnknown_082DB220
+ str r0, [r1]
+ movs r0, 0x2
+ mov r8, r0
+ b _08057372
+ .pool
+_080572FC:
+ adds r0, r5, r6
+ adds r0, 0x20
+ ldrb r0, [r0]
+ movs r2, 0x1
+ cmp r0, 0x30
+ bne _0805730A
+ movs r2, 0x2
+_0805730A:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ ands r0, r7
+ cmp r0, r2
+ bcs _0805731E
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r4]
+ b _08057322
+_0805731E:
+ subs r0, r1, r2
+ str r0, [r4]
+_08057322:
+ ldr r2, =gBattleMons
+ movs r0, 0x58
+ mov r1, r9
+ 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 _08057354
+ ldr r1, =gBattlescriptCurrInstr
+ ldr r0, =gUnknown_082DB213
+ str r0, [r1]
+ movs r1, 0x2
+ mov r8, r1
+ b _08057372
+ .pool
+_08057354:
+ adds r2, 0x50
+ adds r2, r1, r2
+ ldr r0, [r2]
+ ldr r1, =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r0, =gBattleCommunication
+ strb r4, [r0, 0x5]
+ ldr r1, =gBattlescriptCurrInstr
+ ldr r0, =gUnknown_082DB220
+ str r0, [r1]
+ movs r2, 0x2
+ mov r8, r2
+_08057372:
+ ldr r1, =gBattleCommunication
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r10, r1
+ b _080573FC
+ .pool
+_08057390:
+ ldr r1, =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, 0x4C
+ adds r4, r0, r1
+ ldr r0, [r4]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080573F4
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080573D4
+ ldr r1, =gBattlescriptCurrInstr
+ ldr r0, =gUnknown_082DB26A
+ str r0, [r1]
+ b _080573EC
+ .pool
+_080573D4:
+ ldr r0, [r4]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, =gBattlescriptCurrInstr
+ ldr r0, =gUnknown_082DB277
+ str r0, [r1]
+ mov r0, r10
+ strb r5, [r0, 0x5]
+_080573EC:
+ movs r1, 0x2
+ mov r8, r1
+ ldr r2, =gBattleCommunication
+ mov r10, r2
+_080573F4:
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080573FC:
+ mov r2, r10
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ beq _08057406
+ b _0805727C
+_08057406:
+ mov r0, r8
+ cmp r0, 0x2
+ bne _08057430
+ ldr r4, =gActiveBank
+ mov r1, r9
+ strb r1, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, =gUnknown_020240D0
+ 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
+_08057430:
+ mov r0, r8
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_805725C
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_7.s b/asm/battle_7.s
new file mode 100644
index 000000000..f9d0f312f
--- /dev/null
+++ b/asm/battle_7.s
@@ -0,0 +1,3815 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start dp11_init
+dp11_init: @ 805D118
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ movs r0, 0x10
+ bl AllocZeroed
+ str r0, [r4]
+ movs r0, 0x10
+ bl AllocZeroed
+ ldr r1, [r4]
+ str r0, [r1]
+ movs r0, 0x30
+ bl AllocZeroed
+ ldr r1, [r4]
+ str r0, [r1, 0x4]
+ movs r0, 0x10
+ bl AllocZeroed
+ ldr r1, [r4]
+ str r0, [r1, 0x8]
+ movs r0, 0x50
+ bl AllocZeroed
+ ldr r1, [r4]
+ str r0, [r1, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp11_init
+
+ thumb_func_start dp11_free
+dp11_free: @ 805D158
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_020244D0
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _0805D192
+ ldr r0, [r0, 0xC]
+ bl Free
+ ldr r0, [r5]
+ movs r4, 0
+ str r4, [r0, 0xC]
+ ldr r0, [r0, 0x8]
+ bl Free
+ ldr r0, [r5]
+ str r4, [r0, 0x8]
+ ldr r0, [r0, 0x4]
+ bl Free
+ ldr r0, [r5]
+ str r4, [r0, 0x4]
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r5]
+ str r4, [r0]
+ bl Free
+ str r4, [r5]
+_0805D192:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp11_free
+
+ thumb_func_start sub_805D19C
+sub_805D19C: @ 805D19C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 9
+ ldr r1, =gUnknown_02023068
+ adds r2, r1
+ mov r10, r2
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_803FECC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ adds r0, 0x92
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ negs r0, r1
+ orrs r0, r1
+ asrs r4, r0, 31
+ movs r0, 0x2
+ ands r4, r0
+ adds r6, r4, 0
+ adds r5, r4, 0x2
+ b _0805D20E
+ .pool
+_0805D20C:
+ adds r4, 0x1
+_0805D20E:
+ cmp r4, r5
+ bge _0805D234
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, =gUnknown_020240CC
+ adds r0, r1
+ ldr r0, [r0]
+ bl GetNatureFromPersonality
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4, r0
+ ldr r2, =gUnknown_0831C494
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, r7
+ ble _0805D20C
+_0805D234:
+ subs r7, r4, r6
+ cmp r4, r5
+ bne _0805D23C
+ movs r7, 0x2
+_0805D23C:
+ movs r6, 0
+ movs r4, 0
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0805D27C
+ mov r5, r10
+_0805D24A:
+ ldrh r0, [r5]
+ bl sub_805D4A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r7, r0
+ bne _0805D26E
+ mov r0, r10
+ adds r0, 0x8
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805D26E
+ ldr r0, =gBitTable
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ orrs r6, r0
+_0805D26E:
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0805D27C
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _0805D24A
+_0805D27C:
+ cmp r6, 0
+ beq _0805D2AC
+ ldr r3, =gBattleStruct
+ ldr r1, [r3]
+ adds r1, 0x92
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r1, 0x92
+ lsls r0, r6, 4
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl BattleAI_SetupAIData
+ bl sub_8130BA4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0805D2AC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ beq _0805D2B6
+ b _0805D40C
+_0805D2B6:
+ mov r2, r8
+ cmp r2, 0xF
+ bne _0805D2BE
+ b _0805D3EA
+_0805D2BE:
+ movs r5, 0
+ movs r6, 0
+ ldr r7, =gBitTable
+ mov r4, r10
+_0805D2C6:
+ ldrh r0, [r4]
+ bl sub_805D4A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805D2DE
+ ldr r0, [r7]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _0805D2DE
+ adds r5, 0x1
+_0805D2DE:
+ ldrh r0, [r4]
+ bl sub_805D4A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0805D2F8
+ ldr r0, [r7]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ bne _0805D2F8
+ adds r5, 0x10
+_0805D2F8:
+ ldrh r0, [r4]
+ bl sub_805D4A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0805D316
+ ldr r0, [r7]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _0805D316
+ movs r2, 0x80
+ lsls r2, 1
+ adds r5, r2
+_0805D316:
+ adds r7, 0x4
+ adds r4, 0x2
+ ldr r0, =gBitTable
+ adds r0, 0xC
+ cmp r7, r0
+ ble _0805D2C6
+ movs r1, 0xF
+ ands r1, r5
+ cmp r1, 0x1
+ ble _0805D32C
+ adds r6, 0x1
+_0805D32C:
+ movs r0, 0xF0
+ ands r0, r5
+ cmp r0, 0x1F
+ ble _0805D336
+ adds r6, 0x1
+_0805D336:
+ ldr r2, =0x000001ff
+ cmp r0, r2
+ ble _0805D33E
+ adds r6, 0x1
+_0805D33E:
+ cmp r6, 0x1
+ bgt _0805D346
+ cmp r6, 0
+ bne _0805D388
+_0805D346:
+ ldr r5, =gBitTable
+_0805D348:
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r4, r1, 16
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _0805D366
+ mov r9, r4
+_0805D366:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ beq _0805D348
+ b _0805D3D4
+ .pool
+_0805D388:
+ cmp r1, 0x1
+ ble _0805D38E
+ movs r6, 0
+_0805D38E:
+ cmp r0, 0x1F
+ ble _0805D394
+ movs r6, 0x1
+_0805D394:
+ cmp r0, r2
+ ble _0805D39A
+ movs r6, 0x2
+_0805D39A:
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r4, r1, 16
+ ldr r1, =gBitTable
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ bne _0805D3CC
+ lsls r0, r4, 1
+ add r0, r10
+ ldrh r0, [r0]
+ bl sub_805D4A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bne _0805D3CC
+ mov r9, r4
+_0805D3CC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ beq _0805D39A
+_0805D3D4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bls _0805D40C
+_0805D3EA:
+ ldr r2, =gProtectStructs
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x2]
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ b _0805D496
+ .pool
+_0805D40C:
+ mov r1, r9
+ lsls r0, r1, 1
+ mov r2, r10
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ cmp r0, 0xAE
+ bne _0805D434
+ ldrb r0, [r2, 0x12]
+ movs r5, 0
+ cmp r0, 0x7
+ beq _0805D442
+ ldrb r1, [r2, 0x13]
+ movs r0, 0x7
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ asrs r5, r0, 31
+ movs r0, 0x10
+ ands r5, r0
+ b _0805D442
+_0805D434:
+ ldr r2, =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r5, [r0, 0x6]
+_0805D442:
+ movs r0, 0x10
+ ands r0, r5
+ cmp r0, 0
+ beq _0805D45C
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 8
+ b _0805D48A
+ .pool
+_0805D45C:
+ cmp r5, 0
+ bne _0805D470
+ bl sub_805D5F4
+ lsls r0, 16
+ lsrs r0, 16
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+ b _0805D490
+_0805D470:
+ ldr r0, =gActiveBank
+ 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 r0, 16
+_0805D48A:
+ mov r1, r9
+ orrs r1, r0
+ mov r9, r1
+_0805D490:
+ mov r2, r9
+ lsls r0, r2, 16
+ lsrs r0, 16
+_0805D496:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_805D19C
+
+ thumb_func_start sub_805D4A8
+sub_805D4A8: @ 805D4A8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ adds r3, r1, 0
+ cmp r0, 0x40
+ bls _0805D4C2
+ b _0805D5EE
+_0805D4C2:
+ lsls r0, 2
+ ldr r1, =_0805D4D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0805D4D4:
+ .4byte _0805D5D8
+ .4byte _0805D5E6
+ .4byte _0805D5D8
+ .4byte _0805D5EE
+ .4byte _0805D5D8
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5D8
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EA
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5D8
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5EE
+ .4byte _0805D5E6
+_0805D5D8:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0805D5EE
+_0805D5E6:
+ movs r0, 0x2
+ b _0805D5F0
+_0805D5EA:
+ movs r0, 0x1
+ b _0805D5F0
+_0805D5EE:
+ movs r0, 0
+_0805D5F0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805D4A8
+
+ thumb_func_start sub_805D5F4
+sub_805D5F4: @ 805D5F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805D6FA
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805D630
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x3
+ b _0805D63E
+ .pool
+_0805D630:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x2
+_0805D63E:
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gBattleMons
+ movs r2, 0x58
+ mov r0, r8
+ muls r0, r2
+ adds r5, r0, r1
+ adds r0, r7, 0
+ muls r0, r2
+ adds r6, r0, r1
+ ldrh r0, [r5, 0x28]
+ ldrh r3, [r6, 0x28]
+ cmp r0, r3
+ bne _0805D680
+ bl Random
+ adds r3, r0, 0
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ movs r1, 0x2
+ ands r1, r3
+ adds r0, r1
+ b _0805D702
+ .pool
+_0805D680:
+ ldr r4, =gUnknown_0831C604
+ ldr r0, =gActiveBank
+ mov r9, r0
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r1, 0x48
+ adds r0, r1
+ ldr r0, [r0]
+ bl GetNatureFromPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ beq _0805D6CC
+ cmp r4, 0x1
+ bgt _0805D6B4
+ cmp r4, 0
+ beq _0805D6BA
+ b _0805D6FA
+ .pool
+_0805D6B4:
+ cmp r4, 0x2
+ beq _0805D6DE
+ b _0805D6FA
+_0805D6BA:
+ ldrh r0, [r5, 0x28]
+ ldrh r6, [r6, 0x28]
+ cmp r0, r6
+ bls _0805D6C8
+ mov r1, r8
+ lsls r0, r1, 8
+ b _0805D704
+_0805D6C8:
+ lsls r0, r7, 8
+ b _0805D704
+_0805D6CC:
+ ldrh r0, [r5, 0x28]
+ ldrh r6, [r6, 0x28]
+ cmp r0, r6
+ bcs _0805D6DA
+ mov r3, r8
+ lsls r0, r3, 8
+ b _0805D704
+_0805D6DA:
+ lsls r0, r7, 8
+ b _0805D704
+_0805D6DE:
+ bl Random
+ adds r3, r0, 0
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ ands r4, r3
+ adds r0, r4
+ lsls r0, 24
+ lsrs r0, 16
+ b _0805D704
+_0805D6FA:
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x1
+ eors r0, r1
+_0805D702:
+ lsls r0, 8
+_0805D704:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_805D5F4
+
+ thumb_func_start sub_805D714
+sub_805D714: @ 805D714
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r3, [r0]
+ lsls r0, r3, 26
+ cmp r0, 0
+ bge _0805D766
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _0805D766
+ adds r2, r1, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ lsls r0, r1, 25
+ cmp r0, 0
+ bge _0805D75C
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _0805D766
+ .pool
+_0805D75C:
+ lsls r0, r3, 27
+ cmp r0, 0
+ bge _0805D766
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_0805D766:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805D714
+
+ thumb_func_start sub_805D770
+sub_805D770: @ 805D770
+ 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, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ cmp r1, 0
+ bne _0805D798
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartObjectRotScalAnim
+ b _0805D7A0
+ .pool
+_0805D798:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartObjectRotScalAnim
+_0805D7A0:
+ adds r0, r4, 0
+ bl AnimateSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805D770
+
+ thumb_func_start sub_805D7AC
+sub_805D7AC: @ 805D7AC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gUnknown_020243FC
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0805D7E4
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0805D7E4
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _0805D7E0
+ ldr r0, =sub_805D7EC
+ b _0805D7E2
+ .pool
+_0805D7E0:
+ ldr r0, =SpriteCallbackDummy
+_0805D7E2:
+ str r0, [r2, 0x1C]
+_0805D7E4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805D7AC
+
+ thumb_func_start sub_805D7EC
+sub_805D7EC: @ 805D7EC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x2
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0805D800
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_0805D800:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805D7EC
+
+ thumb_func_start move_anim_start_t2_for_situation
+move_anim_start_t2_for_situation: @ 805D808
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ ldr r6, =gUnknown_020244D0
+ ldr r1, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r3, [r1, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r3, 0x10
+ orrs r2, r3
+ strb r2, [r1]
+ cmp r0, 0
+ bne _0805D888
+ cmp r4, 0x20
+ bne _0805D844
+ ldrb r0, [r5]
+ movs r1, 0x6
+ bl move_anim_start_t2
+ b _0805D902
+ .pool
+_0805D844:
+ cmp r4, 0x8
+ beq _0805D850
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D85A
+_0805D850:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl move_anim_start_t2
+ b _0805D902
+_0805D85A:
+ cmp r4, 0x10
+ bne _0805D868
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl move_anim_start_t2
+ b _0805D902
+_0805D868:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D87A
+ ldrb r0, [r5]
+ movs r1, 0x4
+ bl move_anim_start_t2
+ b _0805D902
+_0805D87A:
+ cmp r4, 0x40
+ bne _0805D8EA
+ ldrb r0, [r5]
+ movs r1, 0x5
+ bl move_anim_start_t2
+ b _0805D902
+_0805D888:
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D89C
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl move_anim_start_t2
+ b _0805D902
+_0805D89C:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D8AE
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl move_anim_start_t2
+ b _0805D902
+_0805D8AE:
+ movs r0, 0x80
+ lsls r0, 21
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D8C2
+ ldrb r0, [r5]
+ movs r1, 0x7
+ bl move_anim_start_t2
+ b _0805D902
+_0805D8C2:
+ movs r0, 0x80
+ lsls r0, 20
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D8D6
+ ldrb r0, [r5]
+ movs r1, 0x8
+ bl move_anim_start_t2
+ b _0805D902
+_0805D8D6:
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r4
+ cmp r0, 0
+ beq _0805D8EA
+ ldrb r0, [r5]
+ movs r1, 0x9
+ bl move_anim_start_t2
+ b _0805D902
+_0805D8EA:
+ ldr r0, [r6]
+ ldrb r2, [r5]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_0805D902:
+ 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: @ 805D908
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r4, 16
+ lsrs r7, r4, 16
+ cmp r5, 0
+ bne _0805D950
+ movs r0, 0x80
+ ands r0, r7
+ cmp r0, 0
+ beq _0805D950
+ ldr r0, =gUnknown_020244E4
+ adds r0, r6, r0
+ movs r2, 0x7F
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0805DA1E
+ .pool
+_0805D950:
+ ldr r0, =gUnknown_020244D0
+ mov r9, r0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ lsls r4, r6, 2
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ movs r2, 0x4
+ mov r8, r2
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _0805D9CC
+ adds r0, r5, 0
+ bl sub_805DAA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805D980
+ movs r0, 0x1
+ b _0805DA1E
+ .pool
+_0805D980:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _0805D9CC
+ cmp r5, 0x2
+ bne _0805D9CC
+ ldr r1, =gSprites
+ ldr r0, =gBankSpriteIds
+ 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 _0805D9CC
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl refresh_graphics_maybe
+ adds r0, r6, 0
+ bl sub_805E974
+ movs r0, 0x1
+ b _0805DA1E
+ .pool
+_0805D9CC:
+ ldr r0, =gUnknown_02038436
+ mov r2, r10
+ strb r2, [r0]
+ ldr r0, =gUnknown_02038437
+ mov r1, sp
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ strh r7, [r0]
+ ldr r0, =gUnknown_082C9320
+ adds r1, r5, 0
+ movs r2, 0
+ bl move_something
+ ldr r0, =task0A_0803415C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r6, [r1, 0x8]
+ ldr r0, [r4]
+ movs r2, 0x8
+ ldrsh r1, [r1, r2]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0
+_0805DA1E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end move_anim_start_t3
+
+ thumb_func_start task0A_0803415C
+task0A_0803415C: @ 805DA48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_020383F8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_020383FD
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805DA8A
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ ldr r2, [r2, 0x4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0805DA8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task0A_0803415C
+
+ thumb_func_start sub_805DAA0
+sub_805DAA0: @ 805DAA0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bgt _0805DAB4
+ cmp r0, 0xA
+ bge _0805DAB8
+ cmp r0, 0x2
+ beq _0805DAB8
+ b _0805DABC
+_0805DAB4:
+ cmp r0, 0x11
+ bne _0805DABC
+_0805DAB8:
+ movs r0, 0x1
+ b _0805DABE
+_0805DABC:
+ movs r0, 0
+_0805DABE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805DAA0
+
+ thumb_func_start move_anim_start_t4
+move_anim_start_t4: @ 805DAC4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_02038436
+ strb r1, [r0]
+ ldr r0, =gUnknown_02038437
+ strb r2, [r0]
+ ldr r0, =gUnknown_082C937C
+ adds r1, r3, 0
+ movs r2, 0
+ bl move_something
+ ldr r0, =task0A_08034248
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ movs r2, 0x8
+ ldrsh r1, [r1, r2]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end move_anim_start_t4
+
+ thumb_func_start task0A_08034248
+task0A_08034248: @ 805DB34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_020383F8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_020383FD
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805DB76
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ ldr r2, [r2, 0x4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0805DB76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task0A_08034248
+
+ thumb_func_start sub_805DB8C
+sub_805DB8C: @ 805DB8C
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_805DB8C
+
+ thumb_func_start mplay_80342A4
+mplay_80342A4: @ 805DB90
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ bl mplay_has_finished_maybe
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805DBD8
+ ldr r2, =gUnknown_020244D0
+ ldr r0, [r2]
+ ldr r1, [r0, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ adds r1, 0x1
+ strb r1, [r0, 0x8]
+ ldr r2, [r2]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1D
+ bls _0805DBDC
+ ldr r0, =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, =gMPlay_SE2
+ bl m4aMPlayStop
+_0805DBD8:
+ cmp r5, 0
+ beq _0805DBF0
+_0805DBDC:
+ movs r0, 0x1
+ b _0805DC02
+ .pool
+_0805DBF0:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strb r5, [r0, 0x8]
+ movs r0, 0
+_0805DC02:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end mplay_80342A4
+
+ thumb_func_start sub_805DC0C
+sub_805DC0C: @ 805DC0C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r2, r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0805DC50
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r6, [sp]
+ b _0805DC58
+ .pool
+_0805DC50:
+ ldrh r5, [r2, 0x2]
+ ldr r0, =gUnknown_020244BC
+ adds r0, r1, r0
+ ldr r6, [r0]
+_0805DC58:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ mov r0, r8
+ bl GetBankIdentity
+ lsls r0, 24
+ lsls r2, r5, 3
+ ldr r1, =gMonFrontPicTable
+ adds r2, r1
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsrs r0, 22
+ adds r1, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
+ mov r3, r8
+ lsls r2, r3, 4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r2, r0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ lsls r1, r3, 2
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ str r1, [sp, 0x4]
+ mov r9, r2
+ cmp r0, 0
+ bne _0805DCBC
+ adds r0, r4, 0
+ bl pokemon_get_pal
+ b _0805DCC6
+ .pool
+_0805DCBC:
+ adds r0, r5, 0
+ mov r1, r10
+ ldr r2, [sp]
+ bl species_and_otid_get_pal
+_0805DCC6:
+ adds r6, r0, 0
+ ldr r4, =0x0201c000
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl LZDecompressWram
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r1, r9
+ adds r1, 0x80
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =0x00000181
+ cmp r5, r0
+ bne _0805DD1A
+ movs r7, 0x80
+ lsls r7, 1
+ add r7, r9
+ ldr r5, =gBattleStruct
+ ldr r1, [r5]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r1, r4
+ adds r0, r6, 0
+ bl LZDecompressWram
+ ldr r0, =gUnknown_020244E4
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r1, 5
+ adds r1, r4
+ ldr r0, [r5]
+ adds r0, r1
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+_0805DD1A:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0805DD46
+ ldr r3, =0x00007fff
+ adds r0, r7, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r7, 1
+ ldr r0, =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+_0805DD46:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805DC0C
+
+ thumb_func_start sub_805DD7C
+sub_805DD7C: @ 805DD7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r2, r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0805DDC0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, [sp]
+ b _0805DDC8
+ .pool
+_0805DDC0:
+ ldrh r5, [r2, 0x2]
+ ldr r0, =gUnknown_020244BC
+ adds r0, r1, r0
+ ldr r4, [r0]
+_0805DDC8:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x1
+ mov r1, r8
+ bl sub_80688F8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ lsls r1, 2
+ mov r10, r1
+ cmp r0, 0x1
+ beq _0805DE00
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ add r0, r10
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0805DE2C
+_0805DE00:
+ lsls r0, r5, 3
+ ldr r1, =gMonBackPicTable
+ adds r0, r1
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsls r2, r7, 2
+ adds r1, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
+ b _0805DE46
+ .pool
+_0805DE2C:
+ lsls r0, r5, 3
+ ldr r1, =gMonBackPicTable
+ adds r0, r1
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsls r2, r7, 2
+ adds r1, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DecompressMonPic_DetectFrontOrBack
+_0805DE46:
+ mov r2, r8
+ lsls r1, r2, 4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r1, r0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ add r0, r10
+ ldrh r0, [r0, 0x2]
+ mov r9, r1
+ cmp r0, 0
+ bne _0805DE74
+ adds r0, r6, 0
+ bl pokemon_get_pal
+ b _0805DE7E
+ .pool
+_0805DE74:
+ adds r0, r5, 0
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp]
+ bl species_and_otid_get_pal
+_0805DE7E:
+ adds r6, r0, 0
+ ldr r4, =0x0201c000
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl LZDecompressWram
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+ mov r1, r9
+ adds r1, 0x80
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =0x00000181
+ cmp r5, r0
+ bne _0805DED2
+ movs r7, 0x80
+ lsls r7, 1
+ add r7, r9
+ ldr r5, =gBattleStruct
+ ldr r1, [r5]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r1, r4
+ adds r0, r6, 0
+ bl LZDecompressWram
+ ldr r0, =gUnknown_020244E4
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r1, 5
+ adds r1, r4
+ ldr r0, [r5]
+ adds r0, r1
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+_0805DED2:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ add r0, r10
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0805DEFC
+ ldr r3, =0x00007fff
+ adds r0, r7, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r7, 1
+ ldr r0, =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+_0805DEFC:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805DD7C
+
+ thumb_func_start nullsub_23
+nullsub_23: @ 805DF30
+ bx lr
+ thumb_func_end nullsub_23
+
+ thumb_func_start nullsub_24
+nullsub_24: @ 805DF34
+ bx lr
+ thumb_func_end nullsub_24
+
+ thumb_func_start sub_805DF38
+sub_805DF38: @ 805DF38
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankIdentity
+ lsls r0, 24
+ lsls r4, 3
+ ldr r2, =gTrainerFrontPicTable
+ adds r2, r4, r2
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsrs r0, 22
+ adds r1, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ movs r2, 0
+ bl DecompressPicFromTable_2
+ ldr r0, =gTrainerFrontPicPaletteTable
+ adds r4, r0
+ adds r0, r4, 0
+ bl LoadCompressedObjectPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805DF38
+
+ thumb_func_start sub_805DF84
+sub_805DF84: @ 805DF84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsls r5, 3
+ ldr r2, =gTrainerBackPicTable
+ adds r2, r5, r2
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsrs r0, 22
+ adds r1, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ movs r2, 0
+ bl DecompressPicFromTable_2
+ ldr r0, =gTrainerBackPicPaletteTable
+ adds r5, r0
+ ldr r0, [r5]
+ lsls r4, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r4, r1
+ lsrs r4, 16
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805DF84
+
+ thumb_func_start nullsub_25
+nullsub_25: @ 805DFE0
+ bx lr
+ thumb_func_end nullsub_25
+
+ thumb_func_start sub_805DFE4
+sub_805DFE4: @ 805DFE4
+ push {lr}
+ lsls r0, 16
+ ldr r1, =gTrainerFrontPicPaletteTable
+ lsrs r0, 13
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl FreeObjectPaletteByTag
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805DFE4
+
+ thumb_func_start sub_805DFFC
+sub_805DFFC: @ 805DFFC
+ push {r4-r7,lr}
+ ldr r4, =gUnknown_0832C128
+ adds r0, r4, 0
+ bl LoadTaggedObjectPalette
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadTaggedObjectPalette
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805E034
+ ldr r0, =gUnknown_0832C0D0
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_0832C0D8
+ bl LoadCompressedObjectPic
+ movs r5, 0x2
+ b _0805E056
+ .pool
+_0805E034:
+ ldr r4, =gUnknown_0832C0E0
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r4, =gUnknown_0832C0F0
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ movs r5, 0x4
+_0805E056:
+ movs r4, 0
+ cmp r4, r5
+ bcs _0805E076
+ ldr r7, =gBanksBySide
+ ldr r6, =gUnknown_0832C108
+_0805E060:
+ 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 _0805E060
+_0805E076:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805DFFC
+
+ thumb_func_start sub_805E08C
+sub_805E08C: @ 805E08C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r6, 0
+ cmp r4, 0
+ bne _0805E09C
+ b _0805E1AE
+_0805E09C:
+ cmp r4, 0x1
+ bne _0805E0B8
+ ldr r4, =gUnknown_0832C128
+ adds r0, r4, 0
+ bl LoadTaggedObjectPalette
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadTaggedObjectPalette
+ b _0805E1AE
+ .pool
+_0805E0B8:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805E120
+ cmp r4, 0x2
+ bne _0805E0F0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0805E0E4
+ ldr r0, =gUnknown_0832C100
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E0E4:
+ ldr r0, =gUnknown_0832C0D0
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E0F0:
+ cmp r4, 0x3
+ bne _0805E100
+ ldr r0, =gUnknown_0832C0D8
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E100:
+ cmp r4, 0x4
+ bne _0805E110
+ ldr r0, =gBanksBySide
+ ldrb r0, [r0]
+ b _0805E198
+ .pool
+_0805E110:
+ cmp r4, 0x5
+ bne _0805E1AC
+ ldr r0, =gBanksBySide
+ ldrb r0, [r0, 0x1]
+ b _0805E198
+ .pool
+_0805E120:
+ cmp r4, 0x2
+ bne _0805E130
+ ldr r0, =gUnknown_0832C0E0
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E130:
+ cmp r4, 0x3
+ bne _0805E140
+ ldr r0, =gUnknown_0832C0E8
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E140:
+ cmp r4, 0x4
+ bne _0805E150
+ ldr r0, =gUnknown_0832C0F0
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E150:
+ cmp r4, 0x5
+ bne _0805E160
+ ldr r0, =gUnknown_0832C0F8
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E160:
+ cmp r4, 0x6
+ bne _0805E170
+ ldr r0, =gBanksBySide
+ ldrb r0, [r0]
+ b _0805E198
+ .pool
+_0805E170:
+ cmp r4, 0x7
+ bne _0805E180
+ ldr r0, =gBanksBySide
+ ldrb r0, [r0, 0x1]
+ b _0805E198
+ .pool
+_0805E180:
+ cmp r4, 0x8
+ bne _0805E190
+ ldr r0, =gBanksBySide
+ ldrb r0, [r0, 0x2]
+ b _0805E198
+ .pool
+_0805E190:
+ cmp r5, 0x9
+ bne _0805E1AC
+ ldr r0, =gBanksBySide
+ ldrb r0, [r0, 0x3]
+_0805E198:
+ lsls r0, 3
+ ldr r1, =gUnknown_0832C108
+ adds r0, r1
+ bl LoadCompressedObjectPic
+ b _0805E1AE
+ .pool
+_0805E1AC:
+ movs r6, 0x1
+_0805E1AE:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805E08C
+
+ thumb_func_start load_gfxc_health_bar
+load_gfxc_health_bar: @ 805E1B8
+ push {lr}
+ ldr r0, =gUnknown_08C093F0
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ movs r2, 0xBA
+ lsls r2, 1
+ adds r1, r2
+ ldr r1, [r1]
+ bl LZDecompressWram
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end load_gfxc_health_bar
+
+ thumb_func_start battle_load_something
+battle_load_something: @ 805E1D8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ cmp r0, 0x6
+ bls _0805E1E8
+ b _0805E346
+_0805E1E8:
+ lsls r0, 2
+ ldr r1, =_0805E1F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0805E1F8:
+ .4byte _0805E214
+ .4byte _0805E21A
+ .4byte _0805E324
+ .4byte _0805E230
+ .4byte _0805E260
+ .4byte _0805E29C
+ .4byte _0805E33C
+_0805E214:
+ bl sub_805E378
+ b _0805E324
+_0805E21A:
+ ldrb r0, [r4]
+ bl sub_805E08C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805E228
+ b _0805E320
+_0805E228:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0805E346
+_0805E230:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0805E24C
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0805E24C
+ bl battle_make_oam_safari_battle
+ b _0805E252
+ .pool
+_0805E24C:
+ ldrb r0, [r4]
+ bl battle_make_oam_normal_battle
+_0805E252:
+ ldr r2, =gUnknown_03005D70
+ ldrb r1, [r4]
+ adds r1, r2
+ strb r0, [r1]
+ b _0805E30E
+ .pool
+_0805E260:
+ ldrb r0, [r4]
+ bl sub_8072B18
+ ldr r0, =gBanksBySide
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _0805E288
+ ldr r0, =gUnknown_03005D70
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ movs r1, 0
+ bl nullsub_30
+ b _0805E30E
+ .pool
+_0805E288:
+ ldr r0, =gUnknown_03005D70
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl nullsub_30
+ b _0805E30E
+ .pool
+_0805E29C:
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805E2E4
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0805E302
+ ldr r0, =gUnknown_03005D70
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ b _0805E302
+ .pool
+_0805E2E4:
+ ldr r0, =gUnknown_03005D70
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+_0805E302:
+ ldr r1, =gUnknown_03005D70
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+_0805E30E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0805E346
+_0805E320:
+ movs r0, 0
+ strb r0, [r4]
+_0805E324:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0805E346
+ .pool
+_0805E33C:
+ bl sub_805EC84
+ bl sub_81B8C68
+ movs r6, 0x1
+_0805E346:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end battle_load_something
+
+ thumb_func_start sub_805E350
+sub_805E350: @ 805E350
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4]
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805E350
+
+ thumb_func_start sub_805E378
+sub_805E378: @ 805E378
+ push {lr}
+ bl sub_805E350
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805E378
+
+ thumb_func_start sub_805E394
+sub_805E394: @ 805E394
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0
+ ldr r5, =gNoOfAllBanks
+ ldrb r0, [r5]
+ cmp r4, r0
+ bge _0805E3EA
+ ldr r0, =gSprites
+ mov r9, r0
+ movs r0, 0x1
+ mov r12, r0
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ldr r7, =gUnknown_020244D0
+ ldr r6, =gBankSpriteIds
+_0805E3B8:
+ ldr r0, [r7]
+ ldr r0, [r0]
+ lsls r3, r4, 2
+ adds r3, r0
+ adds r0, r4, r6
+ 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
+ mov r0, r12
+ ands r1, r0
+ ldrb r2, [r3]
+ mov r0, r8
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r4, 0x1
+ ldrb r0, [r5]
+ cmp r4, r0
+ blt _0805E3B8
+_0805E3EA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805E394
+
+ thumb_func_start sub_805E408
+sub_805E408: @ 805E408
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_020244D0
+ ldr r1, [r1]
+ ldr r1, [r1]
+ lsls r3, r0, 2
+ adds r3, r1
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ 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
+ .pool
+ thumb_func_end sub_805E408
+
+ thumb_func_start sub_805E448
+sub_805E448: @ 805E448
+ 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
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r2, 24
+ cmp r2, 0
+ beq _0805E51C
+ ldr r0, =gBankSpriteIds
+ adds r5, r7, r0
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ mov r8, r1
+ add r0, r8
+ ldr r4, =gUnknown_020244D0
+ ldr r1, [r4]
+ ldr r1, [r1, 0x8]
+ ldrb r1, [r1]
+ bl StartObjectImageAnim
+ lsls r0, r7, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r6, r0, 16
+ ldr r2, =gBattleStruct
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ ldrh r1, [r0]
+ lsls r1, 5
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3
+ ldr r0, [r2]
+ adds r0, r1
+ adds r1, r6, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gUnknown_020244E4
+ adds r1, r7, r1
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r4]
+ ldr r1, [r0]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0805E4DE
+ ldr r3, =0x00007fff
+ adds r0, r6, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r6, 1
+ ldr r0, =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+_0805E4DE:
+ adds r0, r7, 0
+ bl sub_80A6138
+ ldrb r2, [r5]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x22]
+ b _0805E77A
+ .pool
+_0805E51C:
+ bl sub_80A4DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805E558
+ movs r0, 0
+ mov r10, r0
+ ldr r0, =gUnknown_02039F34
+ ldr r0, [r0]
+ ldr r2, [r0, 0x18]
+ ldrh r1, [r2, 0x2]
+ mov r8, r1
+ ldr r3, [r2, 0x8]
+ mov r9, r3
+ ldr r4, [r2, 0xC]
+ lsls r0, r1, 3
+ ldr r1, =gMonBackPicTable
+ adds r0, r1
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ ldr r1, [r1, 0x4]
+ ldr r3, [r2, 0x10]
+ b _0805E5FA
+ .pool
+_0805E558:
+ adds r0, r7, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, [sp]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0805E58C
+ ldr r1, =gBattlePartyID
+ ldr r2, [sp]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _0805E59C
+ .pool
+_0805E58C:
+ ldr r1, =gBattlePartyID
+ ldr r3, [sp]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_0805E59C:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r7, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805E618
+ ldr r0, =gBattlePartyID
+ lsls r4, r7, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =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 r4, r0, 0
+ mov r1, r8
+ lsls r0, r1, 3
+ ldr r1, =gMonBackPicTable
+ adds r0, r1
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ mov r3, r10
+ lsls r2, r3, 2
+ adds r1, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r3, =gUnknown_020244BC
+ lsls r2, r7, 2
+ adds r2, r3
+ ldr r3, [r2]
+_0805E5FA:
+ mov r2, r8
+ bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
+ b _0805E662
+ .pool
+_0805E618:
+ ldr r0, =gBattlePartyID
+ lsls r4, r7, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =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 r4, r0, 0
+ mov r1, r8
+ lsls r0, r1, 3
+ ldr r1, =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ mov r3, r10
+ lsls r2, r3, 2
+ adds r1, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ ldr r3, =gUnknown_020244BC
+ lsls r2, r7, 2
+ adds r2, r3
+ ldr r3, [r2]
+ mov r2, r8
+ bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack
+_0805E662:
+ ldr r0, =gUnknown_020244D4
+ ldr r0, [r0]
+ mov r2, r10
+ lsls r1, r2, 2
+ adds r0, 0x4
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r0, =gBankSpriteIds
+ adds r0, r7
+ mov r10, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, =gSprites
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, =0x06010000
+ adds r0, r1
+ ldr r1, =0x040000d4
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, =0x84000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ lsls r0, r7, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r6, r0, 16
+ mov r0, r8
+ adds r1, r4, 0
+ mov r2, r9
+ bl species_and_otid_get_pal
+ mov r9, r0
+ ldr r4, =0x0201c000
+ adds r1, r4, 0
+ bl LZDecompressWram
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =0x00000181
+ cmp r8, r0
+ bne _0805E70A
+ mov r2, r10
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r1, 0x8
+ adds r0, r1
+ ldr r1, =gUnknown_08309AAC
+ mov r3, r8
+ lsls r2, r3, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ ldr r5, =gBattleStruct
+ ldr r1, [r5]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r1, r4
+ mov r0, r9
+ bl LZDecompressWram
+ ldr r0, =gUnknown_020244E4
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ lsls r1, 5
+ adds r1, r4
+ ldr r0, [r5]
+ adds r0, r1
+ adds r1, r6, 0
+ movs r2, 0x20
+ bl LoadPalette
+_0805E70A:
+ ldr r3, =0x00007fff
+ adds r0, r6, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r6, 1
+ ldr r0, =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ bl sub_80A4DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805E74A
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r7, 2
+ adds r0, r1
+ mov r2, r8
+ strh r2, [r0, 0x2]
+ ldr r0, =gUnknown_020244E4
+ adds r1, r7, r0
+ ldr r3, [sp]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+_0805E74A:
+ adds r0, r7, 0
+ bl sub_80A6138
+ mov r1, r10
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, =gSprites
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x22]
+ mov r3, r10
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =gUnknown_020244E4
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl StartObjectImageAnim
+_0805E77A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805E448
+
+ thumb_func_start sub_805E7DC
+sub_805E7DC: @ 805E7DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ lsls r1, 24
+ cmp r1, 0
+ bne _0805E898
+ bl sub_80A4DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805E7F8
+ movs r4, 0
+ b _0805E802
+_0805E7F8:
+ adds r0, r4, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0805E802:
+ bl sub_80A4DF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805E814
+ ldr r0, =gUnknown_08C2D120
+ b _0805E822
+ .pool
+_0805E814:
+ adds r0, r5, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805E83C
+ ldr r0, =gUnknown_08C2CEE0
+_0805E822:
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsls r4, 2
+ adds r1, 0x4
+ adds r1, r4
+ ldr r1, [r1]
+ bl LZDecompressVram
+ b _0805E84E
+ .pool
+_0805E83C:
+ ldr r0, =gUnknown_08C2D120
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ lsls r4, 2
+ adds r1, 0x4
+ adds r1, r4
+ ldr r1, [r1]
+ bl LZDecompressVram
+_0805E84E:
+ movs r3, 0x1
+ lsls r6, r5, 4
+ ldr r7, =gUnknown_08C2CEBC
+ ldr r0, =gUnknown_020244D4
+ ldr r0, [r0]
+ adds r0, 0x4
+ adds r4, r0, r4
+ ldr r2, =0x040000d4
+ ldr r5, =0x84000200
+_0805E860:
+ ldr r0, [r4]
+ lsls r1, r3, 11
+ adds r1, r0, r1
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ str r5, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0805E860
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r6, r0
+ adds r0, r7, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _0805E8E6
+ .pool
+_0805E898:
+ bl sub_80A4DF0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805E8E6
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805E8D0
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_805DC0C
+ b _0805E8E6
+ .pool
+_0805E8D0:
+ ldr r1, =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ bl sub_805DD7C
+_0805E8E6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805E7DC
+
+ thumb_func_start refresh_graphics_maybe
+refresh_graphics_maybe: @ 805E8F4
+ 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_805E7DC
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r4, r0, r1
+ ldr r0, =gUnknown_020244E4
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartObjectImageAnim
+ cmp r5, 0
+ bne _0805E938
+ adds r0, r6, 0
+ bl sub_80A614C
+ b _0805E93E
+ .pool
+_0805E938:
+ adds r0, r6, 0
+ bl sub_80A6138
+_0805E93E:
+ 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_805E94C
+sub_805E94C: @ 805E94C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xA4
+ bne _0805E96C
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_0805E96C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805E94C
+
+ thumb_func_start sub_805E974
+sub_805E974: @ 805E974
+ lsls r0, 24
+ ldr r1, =gUnknown_020244D0
+ ldr r1, [r1]
+ ldr r1, [r1]
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_805E974
+
+ thumb_func_start sub_805E990
+sub_805E990: @ 805E990
+ 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_8075060
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0805EA08
+ ldr r7, =gUnknown_020244D0
+ ldr r0, [r7]
+ ldr r2, [r0]
+ lsls r4, r6, 2
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ movs r5, 0x2
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805EA5A
+ adds r0, r6, 0
+ eors r0, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805E9F6
+ movs r0, 0x5A
+ bl audio_play
+_0805E9F6:
+ ldr r0, [r7]
+ ldr r1, [r0]
+ adds r1, r4, r1
+ ldrb r0, [r1]
+ orrs r0, r5
+ strb r0, [r1]
+ b _0805EA5A
+ .pool
+_0805EA08:
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ adds r1, r0
+ 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 _0805EA34
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ b _0805EA5A
+ .pool
+_0805EA34:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805EA5A
+ ldr r1, [r4]
+ movs r0, 0x2
+ eors r7, r0
+ ldr r1, [r1]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0805EA5A
+ movs r0, 0x5A
+ bl m4aSongNumStop
+_0805EA5A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805E990
+
+ thumb_func_start sub_805EA60
+sub_805EA60: @ 805EA60
+ push {r4-r6,lr}
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, =gUnknown_020244D0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r6, 0x3
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805EAA2
+ ldr r2, [r5]
+ movs r0, 0x2
+ adds r1, r4, 0
+ eors r1, r0
+ ldr r0, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+_0805EAA2:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EA60
+
+ thumb_func_start sub_805EAB4
+sub_805EAB4: @ 805EAB4
+ 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_8075060
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805EAB4
+
+ thumb_func_start sub_805EAE8
+sub_805EAE8: @ 805EAE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0805EB7E
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r5, =gBattlePartyID
+ 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, =gPlayerParty
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0805EB5A
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_805E990
+_0805EB5A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805EB7E
+ adds r0, r5, 0
+ muls r0, r7
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0805EB7E
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_805E990
+_0805EB7E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EAE8
+
+ thumb_func_start sub_805EB9C
+sub_805EB9C: @ 805EB9C
+ 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, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _0805EC6C
+ 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
+_0805EBC8:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80A6A90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805EC60
+ ldr r4, =gSprites
+ ldr r0, =gBankSpriteIds
+ 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 _0805EC3C
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r2, [r0, 0x4]
+ 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 _0805EC60
+ .pool
+_0805EC3C:
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ 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]
+_0805EC60:
+ adds r6, 0xC
+ adds r5, 0x1
+ ldr r0, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0805EBC8
+_0805EC6C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EB9C
+
+ thumb_func_start sub_805EC84
+sub_805EC84: @ 805EC84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gUnknown_0831C6A0
+ bl LoadCompressedObjectPic
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0831C6B0
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A5C6C
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 8
+ movs r0, 0xE8
+ lsls r0, 13
+ adds r2, r0
+ asrs r2, 16
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0xC8
+ bl CreateSprite
+ ldr r6, =gUnknown_020244D0
+ ldr r1, [r6]
+ ldr r2, [r1, 0x4]
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r2, r1, r2
+ strb r0, [r2, 0x7]
+ ldr r7, =gSprites
+ ldr r0, [r6]
+ ldr r0, [r0, 0x4]
+ adds r1, r0
+ 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 _0805ED56
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A5C6C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A5C6C
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 8
+ movs r0, 0xE8
+ lsls r0, 13
+ adds r2, r0
+ asrs r2, 16
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0xC8
+ bl CreateSprite
+ ldr r1, [r6]
+ ldr r2, [r1, 0x4]
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r2, r1, r2
+ strb r0, [r2, 0x7]
+ ldr r0, [r6]
+ ldr r0, [r0, 0x4]
+ adds r1, r0
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r5, [r0, 0x2E]
+_0805ED56:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EC84
+
+ thumb_func_start sub_805ED70
+@ int sub_805ED70(obj *a1)
+sub_805ED70: @ 805ED70
+ 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, =gBankSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =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 _0805EDAC
+ adds r0, r4, 0
+ bl sub_80A6A90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805EDC0
+_0805EDAC:
+ ldr r0, =sub_805EE48
+ str r0, [r5, 0x1C]
+ b _0805EE36
+ .pool
+_0805EDC0:
+ ldr r0, =gUnknown_020383FD
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805EDD2
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0805EDE4
+_0805EDD2:
+ movs r0, 0x1
+ mov r8, r0
+ ldr r2, =gUnknown_020244D0
+ lsls r4, 2
+ b _0805EE06
+ .pool
+_0805EDE4:
+ ldr r2, =gUnknown_020244D0
+ ldr r0, [r2]
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r3, r1, r0
+ ldrh r0, [r3, 0x2]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _0805EE06
+ ldr r0, =gUnknown_08305DCC
+ ldrh r1, [r3, 0x2]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0805EE06
+ movs r0, 0x1
+ mov r8, r0
+_0805EE06:
+ ldr r0, [r2]
+ ldr r0, [r0]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0805EE1A
+ movs r0, 0x1
+ mov r8, r0
+_0805EE1A:
+ 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]
+_0805EE36:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805ED70
+
+ thumb_func_start sub_805EE48
+sub_805EE48: @ 805EE48
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_805EE48
+
+ thumb_func_start sub_805EE54
+sub_805EE54: @ 805EE54
+ 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 GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805EED0
+ ldr r0, =gUnknown_020244D0
+ ldr r3, [r0]
+ ldr r1, [r3]
+ lsls r0, r4, 2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _0805EE7E
+ adds r5, r0, 0
+_0805EE7E:
+ ldr r0, =gUnknown_08305DCC
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805EEB4
+ ldr r2, =gSprites
+ ldr r1, [r3, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_805ED70
+ b _0805EECE
+ .pool
+_0805EEB4:
+ ldr r2, =gSprites
+ ldr r1, [r3, 0x4]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_805EE48
+_0805EECE:
+ str r1, [r0]
+_0805EED0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EE54
+
+ thumb_func_start sub_805EEE0
+sub_805EEE0: @ 805EEE0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gSprites
+ ldr r1, =gUnknown_020244D0
+ ldr r1, [r1]
+ ldr r3, [r1, 0x4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_805EE48
+ str r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_805EEE0
+
+ thumb_func_start sub_805EF14
+sub_805EF14: @ 805EF14
+ push {r4-r6,lr}
+ ldr r3, =0x06000240
+ movs r0, 0
+ movs r6, 0xF0
+ lsls r6, 8
+_0805EF1E:
+ adds r5, r0, 0x1
+ movs r4, 0xF
+_0805EF22:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805EF32
+ adds r0, r6, 0
+ orrs r0, r1
+ strh r0, [r3]
+_0805EF32:
+ ldrh r1, [r3]
+ movs r2, 0xF0
+ lsls r2, 4
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805EF46
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r3]
+_0805EF46:
+ ldrh r1, [r3]
+ movs r2, 0xF0
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805EF58
+ adds r0, r1, 0
+ orrs r0, r2
+ strh r0, [r3]
+_0805EF58:
+ ldrh r1, [r3]
+ movs r2, 0xF
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _0805EF6A
+ adds r0, r1, 0
+ orrs r0, r2
+ strh r0, [r3]
+_0805EF6A:
+ adds r3, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0805EF22
+ adds r0, r5, 0
+ cmp r0, 0x8
+ ble _0805EF1E
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EF14
+
+ thumb_func_start sub_805EF84
+sub_805EF84: @ 805EF84
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ adds r0, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0, 0x2]
+ ldr r0, =gUnknown_020244E4
+ adds r0, r4, r0
+ strb r3, [r0]
+ cmp r1, 0
+ bne _0805EFAC
+ adds r0, r4, 0
+ bl sub_805E974
+_0805EFAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805EF84
+
+ thumb_func_start init_uns_table_pokemon_copy
+init_uns_table_pokemon_copy: @ 805EFBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r4, =gUnknown_020244D4
+ str r6, [r4]
+ movs r0, 0xC0
+ lsls r0, 1
+ bl AllocZeroed
+ str r0, [r4]
+ movs r0, 0x80
+ lsls r0, 8
+ bl AllocZeroed
+ ldr r1, [r4]
+ str r0, [r1]
+_0805EFE2:
+ ldr r0, =gUnknown_020244D4
+ ldr r1, [r0]
+ lsls r4, r6, 2
+ adds r2, r1, 0x4
+ adds r2, r4
+ lsls r3, r6, 13
+ ldr r0, [r1]
+ adds r0, r3
+ str r0, [r2]
+ lsls r3, r6, 1
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ ldr r2, =gUnknown_08329D98
+ adds r1, 0x14
+ adds r0, r2
+ ldm r0!, {r2,r5,r7}
+ stm r1!, {r2,r5,r7}
+ ldm r0!, {r2,r5,r7}
+ stm r1!, {r2,r5,r7}
+ movs r5, 0
+ mov r9, r3
+ lsls r0, r6, 5
+ mov r8, r0
+ adds r1, r6, 0x1
+ mov r10, r1
+ mov r12, r8
+ adds r7, r4, 0
+_0805F01A:
+ ldr r2, =gUnknown_020244D4
+ ldr r1, [r2]
+ lsls r4, r5, 3
+ add r4, r12
+ adds r3, r1, 0
+ adds r3, 0x74
+ adds r3, r4
+ adds r0, r1, 0x4
+ adds r0, r7
+ lsls r2, r5, 11
+ ldr r0, [r0]
+ adds r0, r2
+ str r0, [r3]
+ adds r1, r4
+ adds r1, 0x78
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0805F01A
+ ldr r1, =gUnknown_020244D4
+ ldr r2, [r1]
+ mov r5, r9
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r1, r0
+ mov r0, r8
+ adds r0, 0x74
+ adds r2, r0
+ str r2, [r1]
+ mov r7, r10
+ lsls r0, r7, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _0805EFE2
+ movs r0, 0x80
+ lsls r0, 5
+ bl AllocZeroed
+ ldr r1, =gUnknown_020244D4
+ ldr r1, [r1]
+ movs r2, 0xBA
+ lsls r2, 1
+ adds r1, r2
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end init_uns_table_pokemon_copy
+
+ thumb_func_start sub_805F094
+sub_805F094: @ 805F094
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D4
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _0805F106
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0805F0BA
+ bl Free
+ ldr r0, [r6]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_0805F0BA:
+ ldr r0, [r6]
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0805F0D8
+ bl Free
+ ldr r0, [r6]
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_0805F0D8:
+ ldr r0, [r6]
+ movs r5, 0xBA
+ lsls r5, 1
+ adds r0, r5
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r6]
+ adds r5, r0, r5
+ movs r4, 0
+ str r4, [r5]
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r6]
+ str r4, [r0]
+ str r4, [r0, 0x4]
+ str r4, [r0, 0x8]
+ str r4, [r0, 0xC]
+ str r4, [r0, 0x10]
+ bl Free
+ str r4, [r6]
+_0805F106:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F094
+
+ thumb_func_start sub_805F110
+sub_805F110: @ 805F110
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x37
+ bl GetMonData
+ ldr r1, =0x00000fff
+ ands r1, r0
+ cmp r1, 0
+ bne _0805F158
+ adds r0, r5, 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_8075060
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ ble _0805F158
+ movs r0, 0x1
+ b _0805F15A
+ .pool
+_0805F158:
+ movs r0, 0
+_0805F15A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805F110
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_814AEAC.s b/asm/battle_814AEAC.s
index 541d11b9d..c4487fc8c 100644
--- a/asm/battle_814AEAC.s
+++ b/asm/battle_814AEAC.s
@@ -73,7 +73,7 @@ sub_814AF1C: @ 814AF1C
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0814AF40
bl dp01_tbl4_exec_completed
@@ -99,7 +99,7 @@ sub_814AF54: @ 814AF54
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0814AFA4
movs r0, 0
@@ -195,7 +195,7 @@ _0814B028:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0814B094
b _0814B092
@@ -214,7 +214,7 @@ _0814B05C:
adds r4, 0x1C
adds r0, r4
ldr r2, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _0814B094
movs r0, 0x2
@@ -319,7 +319,7 @@ _0814B136:
adds r5, 0x1C
adds r0, r5
ldr r3, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r3, r0
bne _0814B252
ldr r0, =gBankSpriteIds
@@ -732,7 +732,7 @@ sub_814B4E0: @ 814B4E0
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0814B532
adds r0, r3, 0
@@ -793,7 +793,7 @@ sub_814B554: @ 814B554
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0814B590
bl dp01_tbl4_exec_completed
@@ -939,7 +939,7 @@ _0814B6CE:
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0814B714
ldr r0, [r6]
@@ -3440,7 +3440,7 @@ sub_814CC98: @ 814CC98
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
@@ -3853,7 +3853,7 @@ sub_814D0F0: @ 814D0F0
adds r0, r1
lsls r0, 2
adds r0, r5
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
bl oamt_set_x3A_32
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
diff --git a/asm/battle_9.s b/asm/battle_9.s
new file mode 100644
index 000000000..00d893f21
--- /dev/null
+++ b/asm/battle_9.s
@@ -0,0 +1,2847 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ai_switch_perish_song
+ai_switch_perish_song: @ 8062BF8
+ push {lr}
+ ldr r1, =gStatuses3
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08062C50
+ ldr r0, =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 _08062C50
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ adds r0, r2, r0
+ movs r1, 0xA5
+ lsls r1, 2
+ 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 _08062C52
+ .pool
+_08062C50:
+ movs r0, 0
+_08062C52:
+ pop {r1}
+ bx r1
+ thumb_func_end ai_switch_perish_song
+
+ thumb_func_start sub_8062C58
+sub_8062C58: @ 8062C58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08062C72
+ b _08062E2C
+_08062C72:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r4, =gBattleMons
+ 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 _08062C9E
+ b _08062E2C
+_08062C9E:
+ mov r0, r10
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r6, 0
+ mov r8, r4
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ adds r4, r0, r4
+ movs r0, 0x20
+ adds r0, r4
+ mov r9, r0
+_08062CBA:
+ lsls r1, r6, 1
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ muls r0, r7
+ adds r1, r0
+ mov r0, r8
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08062CE8
+ ldrh r1, [r4]
+ 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 _08062CE8
+ b _08062E2C
+_08062CE8:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08062CBA
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08062D50
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ adds r1, r5, 0
+ cmp r0, 0
+ bne _08062D20
+ movs r4, 0
+ movs r0, 0x3
+ str r0, [sp]
+ b _08062D58
+ .pool
+_08062D20:
+ movs r4, 0x3
+ movs r3, 0x6
+ str r3, [sp]
+ b _08062D58
+_08062D28:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ movs r1, 0xA5
+ lsls r1, 2
+ 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 _08062E2E
+ .pool
+_08062D50:
+ movs r4, 0
+ movs r3, 0x6
+ str r3, [sp]
+ adds r1, r5, 0
+_08062D58:
+ ldrb r0, [r1]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, =gEnemyParty
+ mov r9, r1
+ cmp r0, 0
+ bne _08062D6C
+ ldr r3, =gPlayerParty
+ mov r9, r3
+_08062D6C:
+ adds r6, r4, 0
+ ldr r0, [sp]
+ cmp r6, r0
+ bge _08062E2C
+_08062D74:
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ mov r1, r9
+ adds r4, r1, r5
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08062E24
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08062E24
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08062E24
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _08062E24
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r0, r10
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r4, 0
+ mov r8, r5
+ ldr r1, =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_08062DE0:
+ adds r1, r4, 0
+ adds r1, 0xD
+ mov r0, r9
+ add r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _08062E1E
+ 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 _08062E1E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _08062D28
+_08062E1E:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08062DE0
+_08062E24:
+ adds r6, 0x1
+ ldr r3, [sp]
+ cmp r6, r3
+ blt _08062D74
+_08062E2C:
+ movs r0, 0
+_08062E2E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8062C58
+
+ thumb_func_start sub_8062E54
+sub_8062E54: @ 8062E54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0x1
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ beq _08062E82
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08062E82
+ b _080630AC
+_08062E82:
+ ldr r1, =gUnknown_02024250
+ ldr r5, =gActiveBank
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _08062E94
+ b _080630AC
+_08062E94:
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08062E9C
+ b _080630AC
+_08062E9C:
+ ldr r2, =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 _08062EB0
+ b _080630AC
+_08062EB0:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08062F1A
+ mov r8, r3
+ mov r0, r8
+ bl GetBankIdentity
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08062F04
+ ldrb r7, [r5]
+ b _08062F1E
+ .pool
+_08062F04:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _08062F1E
+_08062F1A:
+ adds r7, r3, 0
+ mov r8, r7
+_08062F1E:
+ ldr r3, =gBattleMoves
+ ldr r1, =gUnknown_02024250
+ ldr r2, =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]
+ cmp r0, 0xA
+ bne _08062F4C
+ movs r0, 0x12
+ b _08062F5E
+ .pool
+_08062F4C:
+ cmp r0, 0xB
+ bne _08062F56
+ movs r1, 0xB
+ str r1, [sp]
+ b _08062F60
+_08062F56:
+ cmp r0, 0xD
+ beq _08062F5C
+ b _080630AC
+_08062F5C:
+ movs r0, 0xA
+_08062F5E:
+ str r0, [sp]
+_08062F60:
+ ldr r1, =gBattleMons
+ ldrb r3, [r2]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r1, [sp]
+ cmp r0, r1
+ bne _08062F76
+ b _080630AC
+_08062F76:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08062FCC
+ movs r0, 0x2
+ ands r3, r0
+ cmp r3, 0
+ bne _08062F9C
+ movs r4, 0
+ movs r0, 0x3
+ b _08062FD0
+ .pool
+_08062F9C:
+ movs r4, 0x3
+ movs r1, 0x6
+ mov r10, r1
+ b _08062FD2
+_08062FA4:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ movs r2, 0xA5
+ lsls r2, 2
+ adds r0, r2
+ strb r5, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080630AE
+ .pool
+_08062FCC:
+ movs r4, 0
+ movs r0, 0x6
+_08062FD0:
+ mov r10, r0
+_08062FD2:
+ ldrb r0, [r2]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, =gEnemyParty
+ str r1, [sp, 0x4]
+ cmp r0, 0
+ bne _08062FE6
+ ldr r2, =gPlayerParty
+ str r2, [sp, 0x4]
+_08062FE6:
+ adds r5, r4, 0
+ cmp r5, r10
+ bge _080630AC
+ ldr r0, =gBaseStats
+ mov r9, r0
+_08062FF0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, [sp, 0x4]
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080630A6
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080630A6
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080630A6
+ ldr r1, =gBattlePartyID
+ mov r2, r8
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080630A6
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080630A6
+ ldr r0, =gBattleStruct
+ ldr r1, [r0]
+ adds r0, r2, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080630A6
+ adds r0, r7, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080630A6
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _08063088
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _08063092
+ .pool
+_08063088:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_08063092:
+ ldr r1, [sp]
+ cmp r1, r0
+ bne _080630A6
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080630A6
+ b _08062FA4
+_080630A6:
+ adds r5, 0x1
+ cmp r5, r10
+ blt _08062FF0
+_080630AC:
+ movs r0, 0
+_080630AE:
+ 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_8062E54
+
+ thumb_func_start ai_switchout_natural_cure
+ai_switchout_natural_cure: @ 80630C0
+ push {r4,r5,lr}
+ ldr r3, =gBattleMons
+ ldr r5, =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 _08063188
+ adds r1, r2, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _08063188
+ ldrh r0, [r1, 0x2C]
+ ldrh r1, [r1, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bcc _08063188
+ ldr r1, =gUnknown_02024250
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08063106
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08063128
+_08063106:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08063128
+ ldrb r0, [r5]
+ b _08063190
+ .pool
+_08063128:
+ ldr r2, =gBattleMoves
+ ldr r1, =gUnknown_02024250
+ ldr r4, =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 _08063160
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08063160
+ ldrb r0, [r4]
+ b _08063190
+ .pool
+_08063160:
+ movs r0, 0x8
+ movs r1, 0x1
+ bl ai_switchout_something
+ lsls r0, 24
+ cmp r0, 0
+ bne _080631AA
+ movs r0, 0x4
+ movs r1, 0x1
+ bl ai_switchout_something
+ lsls r0, 24
+ cmp r0, 0
+ bne _080631AA
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0806318C
+_08063188:
+ movs r0, 0
+ b _080631AC
+_0806318C:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+_08063190:
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ movs r1, 0xA5
+ lsls r1, 2
+ 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
+_080631AA:
+ movs r0, 0x1
+_080631AC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ai_switchout_natural_cure
+
+ thumb_func_start ai_has_super_effective_move_on_field
+ai_has_super_effective_move_on_field: @ 80631BC
+ 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, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08063256
+ movs r4, 0
+ ldr r6, =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r0, 0x20
+ adds r0, r5
+ mov r8, r0
+_0806320A:
+ lsls r1, r4, 1
+ ldr r0, =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 _08063250
+ ldrh r1, [r5]
+ 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
+ beq _08063250
+ mov r0, r9
+ cmp r0, 0
+ bne _08063278
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _08063278
+_08063250:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0806320A
+_08063256:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0806327C
+ b _080632FA
+ .pool
+_08063278:
+ movs r0, 0x1
+ b _080632FC
+_0806327C:
+ movs r1, 0x2
+ mov r0, r10
+ eors r0, r1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080632FA
+ movs r4, 0
+ ldr r6, =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r3, 0x20
+ adds r3, r5
+ mov r8, r3
+_080632AE:
+ lsls r1, r4, 1
+ ldr r0, =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 _080632F4
+ ldrh r1, [r5]
+ 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
+ beq _080632F4
+ mov r0, r9
+ cmp r0, 0
+ bne _08063278
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _08063278
+_080632F4:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080632AE
+_080632FA:
+ movs r0, 0
+_080632FC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ 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: @ 806331C
+ push {r4,lr}
+ movs r4, 0
+ ldr r1, =gBattleMons
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x18
+ adds r2, r0, r1
+ movs r3, 0x7
+_08063330:
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x6
+ ble _08063346
+ subs r1, 0x6
+ lsls r0, r4, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08063346:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08063330
+ movs r0, 0
+ cmp r4, 0x3
+ bls _08063356
+ movs r0, 0x1
+_08063356:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ai_is_too_invested_in_stat_buffs
+
+ thumb_func_start ai_switchout_something
+ai_switchout_something: @ 8063364
+ 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]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ ldr r2, =gUnknown_02024250
+ ldr r1, =gActiveBank
+ ldrb r3, [r1]
+ lsls r0, r3, 1
+ adds r4, r0, r2
+ ldrh r2, [r4]
+ adds r5, r1, 0
+ cmp r2, 0
+ bne _08063390
+ b _080635EE
+_08063390:
+ ldr r0, =0x0000ffff
+ cmp r2, r0
+ bne _08063398
+ b _080635EE
+_08063398:
+ ldr r0, =gUnknown_02024270
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080633A4
+ b _080635EE
+_080633A4:
+ ldr r2, =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 _080633B8
+ b _080635EE
+_080633B8:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806342C
+ mov r9, r3
+ mov r0, r9
+ bl GetBankIdentity
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08063414
+ ldrb r5, [r5]
+ mov r10, r5
+ b _08063430
+ .pool
+_08063414:
+ 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 _08063430
+_0806342C:
+ mov r9, r3
+ mov r10, r9
+_08063430:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08063490
+ ldr r2, =gActiveBank
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ bne _08063460
+ movs r4, 0
+ movs r0, 0x3
+ str r0, [sp, 0x8]
+ b _08063498
+ .pool
+_08063460:
+ movs r4, 0x3
+ movs r1, 0x6
+ str r1, [sp, 0x8]
+ b _08063498
+_08063468:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ movs r2, 0xA5
+ lsls r2, 2
+ adds r0, r2
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080635F0
+ .pool
+_08063490:
+ movs r4, 0
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ ldr r5, =gActiveBank
+_08063498:
+ ldrb r0, [r5]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, =gEnemyParty
+ str r1, [sp, 0xC]
+ cmp r0, 0
+ bne _080634AC
+ ldr r2, =gPlayerParty
+ str r2, [sp, 0xC]
+_080634AC:
+ adds r6, r4, 0
+ b _080635E6
+ .pool
+_080634BC:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, [sp, 0xC]
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080634D2
+ b _080635E4
+_080634D2:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ bne _080634E0
+ b _080635E4
+_080634E0:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080635E4
+ ldr r1, =gBattlePartyID
+ mov r2, r9
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080635E4
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080635E4
+ ldr r0, =gBattleStruct
+ ldr r1, [r0]
+ mov r2, r9
+ adds r0, r2, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080635E4
+ mov r2, r10
+ adds r0, r2, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080635E4
+ 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 _08063558
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, =gBaseStats
+ adds r0, r1
+ ldrb r2, [r0, 0x17]
+ b _08063564
+ .pool
+_08063558:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r2, =gBaseStats
+ adds r0, r2
+ ldrb r2, [r0, 0x16]
+_08063564:
+ ldr r1, =gUnknown_02024250
+ ldr r5, =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 _080635E4
+ ldr r1, =gUnknown_02024270
+ 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, =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
+_080635A2:
+ adds r1, r4, 0
+ adds r1, 0xD
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080635DE
+ 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 _080635DE
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl __modsi3
+ cmp r0, 0
+ bne _080635DE
+ b _08063468
+_080635DE:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080635A2
+_080635E4:
+ adds r6, 0x1
+_080635E6:
+ ldr r0, [sp, 0x8]
+ cmp r6, r0
+ bge _080635EE
+ b _080634BC
+_080635EE:
+ movs r0, 0
+_080635F0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ai_switchout_something
+
+ thumb_func_start sub_8063614
+sub_8063614: @ 8063614
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r6, =gBattleMons
+ ldr r4, =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, =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _0806363E
+ b _0806386C
+_0806363E:
+ ldr r0, =gStatuses3
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _08063652
+ b _0806386C
+_08063652:
+ 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 _0806366A
+ b _0806386C
+_0806366A:
+ 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 _08063682
+ b _0806386C
+_08063682:
+ str r0, [sp]
+ movs r0, 0xE
+ movs r1, 0
+ movs r2, 0x2A
+ movs r3, 0
+ bl AbilityBattleEffects
+ lsls r0, 24
+ cmp r0, 0
+ beq _080636B4
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080636A8
+ b _0806386C
+_080636A8:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080636B4
+ b _0806386C
+_080636B4:
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 11
+ ands r0, r1
+ cmp r0, 0
+ beq _080636C4
+ b _0806386C
+_080636C4:
+ movs r0, 0
+ mov r10, r0
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0806372E
+ 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, =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08063718
+ ldrb r6, [r4]
+ b _08063732
+ .pool
+_08063718:
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08063732
+_0806372E:
+ ldrb r6, [r4]
+ adds r7, r6, 0
+_08063732:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08063768
+ ldr r2, =gActiveBank
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08063760
+ movs r4, 0
+ movs r1, 0x3
+ mov r8, r1
+ b _08063770
+ .pool
+_08063760:
+ movs r4, 0x3
+ movs r0, 0x6
+ mov r8, r0
+ b _08063770
+_08063768:
+ movs r4, 0
+ movs r1, 0x6
+ mov r8, r1
+ ldr r2, =gActiveBank
+_08063770:
+ ldrb r0, [r2]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, =gEnemyParty
+ mov r9, r1
+ cmp r0, 0
+ bne _08063784
+ ldr r0, =gPlayerParty
+ mov r9, r0
+_08063784:
+ adds r5, r4, 0
+ cmp r5, r8
+ bge _080637F2
+_0806378A:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080637EC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080637EC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080637EC
+ ldr r1, =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080637EC
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080637EC
+ ldr r0, =gBattleStruct
+ ldr r1, [r0]
+ adds r0, r7, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080637EC
+ adds r0, r6, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080637EC
+ movs r0, 0x1
+ add r10, r0
+_080637EC:
+ adds r5, 0x1
+ cmp r5, r8
+ blt _0806378A
+_080637F2:
+ mov r1, r10
+ cmp r1, 0
+ beq _0806386C
+ bl ai_switch_perish_song
+ lsls r0, 24
+ cmp r0, 0
+ bne _08063852
+ bl sub_8062C58
+ lsls r0, 24
+ cmp r0, 0
+ bne _08063852
+ bl sub_8062E54
+ lsls r0, 24
+ cmp r0, 0
+ bne _08063852
+ bl ai_switchout_natural_cure
+ lsls r0, 24
+ cmp r0, 0
+ bne _08063852
+ movs r0, 0
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806386C
+ bl ai_is_too_invested_in_stat_buffs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806386C
+ movs r0, 0x8
+ movs r1, 0x2
+ bl ai_switchout_something
+ lsls r0, 24
+ cmp r0, 0
+ bne _08063852
+ movs r0, 0x4
+ movs r1, 0x3
+ bl ai_switchout_something
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806386C
+_08063852:
+ movs r0, 0x1
+ b _0806386E
+ .pool
+_0806386C:
+ movs r0, 0
+_0806386E:
+ 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_8063614
+
+ thumb_func_start sub_8063880
+sub_8063880: @ 8063880
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, r6, 0
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r1, =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080638A8
+ ldr r2, =gPlayerParty
+ mov r8, r2
+_080638A8:
+ ldr r7, =gBattleTypeFlags
+ ldr r0, [r7]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080638B6
+ b _080639E6
+_080638B6:
+ bl sub_8063614
+ lsls r0, 24
+ cmp r0, 0
+ bne _080638C2
+ b _080639DC
+_080638C2:
+ ldrb r0, [r4]
+ ldr r2, =gBattleStruct
+ ldr r1, [r2]
+ adds r0, r1
+ movs r1, 0xA5
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _080639B8
+ bl sub_8063A90
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _080639A6
+ ldr r0, [r7]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08063910
+ adds r0, r6, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08063928
+ .pool
+_08063910:
+ adds r0, r5, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x2
+ eors r5, r0
+ adds r0, r5, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08063928:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08063958
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08063954
+ movs r0, 0
+ movs r7, 0x3
+ b _0806395C
+ .pool
+_08063954:
+ movs r0, 0x3
+ b _0806395A
+_08063958:
+ movs r0, 0
+_0806395A:
+ movs r7, 0x6
+_0806395C:
+ adds r4, r0, 0
+ cmp r4, r7
+ bge _080639A6
+_08063962:
+ movs r0, 0x64
+ muls r0, r4
+ add r0, r8
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080639A0
+ ldr r1, =gBattlePartyID
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _080639A0
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _080639A0
+ ldr r0, =gBattleStruct
+ ldr r1, [r0]
+ adds r0, r6, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080639A0
+ adds r0, r5, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _080639A6
+_080639A0:
+ adds r4, 0x1
+ cmp r4, r7
+ blt _08063962
+_080639A6:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ ldr r2, =gBattleStruct
+ ldr r1, [r2]
+ adds r0, r1
+ movs r1, 0xA5
+ lsls r1, 2
+ adds r0, r1
+ strb r4, [r0]
+_080639B8:
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r0, [r2]
+ adds r0, r1, r0
+ adds r1, r0, 0
+ adds r1, 0x5C
+ movs r2, 0xA5
+ lsls r2, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080639F8
+ .pool
+_080639DC:
+ bl sub_8063EE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080639F8
+_080639E6:
+ ldr r0, =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
+_080639F8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8063880
+
+ thumb_func_start sub_8063A08
+sub_8063A08: @ 8063A08
+ 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, =gUnknown_0831ACE8
+ mov r10, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08063A7A
+ mov r5, r10
+_08063A36:
+ ldrb r0, [r5]
+ cmp r0, 0xFE
+ beq _08063A6C
+ ldr r1, [sp]
+ cmp r0, r1
+ bne _08063A6C
+ ldrb r4, [r5, 0x1]
+ cmp r4, r9
+ bne _08063A56
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08063A56:
+ cmp r4, r8
+ bne _08063A6C
+ cmp r9, r8
+ beq _08063A6C
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08063A6C:
+ adds r5, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08063A36
+_08063A7A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8063A08
+
+ thumb_func_start sub_8063A90
+sub_8063A90: @ 8063A90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r4, =gActiveBank
+ ldrb r2, [r4]
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ adds r0, r2, r0
+ adds r1, r0, 0
+ adds r1, 0x5C
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ beq _08063AB2
+ b _08063E50
+_08063AB2:
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 11
+ ands r0, r1
+ cmp r0, 0
+ beq _08063AE0
+ ldr r1, =gBattlePartyID
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ b _08063E50
+ .pool
+_08063AE0:
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08063B6C
+ str r2, [sp, 0x10]
+ adds r0, r2, 0
+ bl GetBankIdentity
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ ldr r1, =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08063B20
+ ldrb r4, [r4]
+ str r4, [sp, 0x14]
+ b _08063B36
+ .pool
+_08063B20:
+ 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, 0x14]
+_08063B36:
+ bl Random
+ movs r3, 0x2
+ ands r0, r3
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ ldr r4, [sp, 0x4]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08063B8A
+ eors r4, r3
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ b _08063B8A
+ .pool
+_08063B6C:
+ adds r0, r2, 0
+ bl GetBankIdentity
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r4, [r4]
+ str r4, [sp, 0x14]
+ str r4, [sp, 0x10]
+_08063B8A:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08063BC2
+ ldr r2, =gActiveBank
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08063BB8
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r1, 0x3
+ str r1, [sp, 0x1C]
+ b _08063BCC
+ .pool
+_08063BB8:
+ movs r4, 0x3
+ str r4, [sp, 0x18]
+ movs r0, 0x6
+ str r0, [sp, 0x1C]
+ b _08063BCC
+_08063BC2:
+ movs r1, 0
+ str r1, [sp, 0x18]
+ movs r2, 0x6
+ str r2, [sp, 0x1C]
+ ldr r2, =gActiveBank
+_08063BCC:
+ ldrb r0, [r2]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r4, =gEnemyParty
+ str r4, [sp, 0x20]
+ cmp r0, 0
+ bne _08063BE0
+ ldr r0, =gPlayerParty
+ str r0, [sp, 0x20]
+_08063BE0:
+ movs r1, 0
+ mov r9, r1
+_08063BE4:
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r4, 0x6
+ str r4, [sp, 0xC]
+ ldr r7, [sp, 0x18]
+ ldr r0, [sp, 0x1C]
+ cmp r7, r0
+ blt _08063BF6
+ b _08063CF2
+_08063BF6:
+ lsls r0, r7, 2
+ ldr r1, =gBitTable
+ adds r0, r1
+ mov r8, r0
+ mov r10, sp
+_08063C00:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r2, [sp, 0x20]
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08063CD8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08063CD8
+ mov r4, r8
+ ldr r0, [r4]
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _08063CD8
+ ldr r1, =gBattlePartyID
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08063CD8
+ ldr r4, [sp, 0x14]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08063CD8
+ ldr r0, =gBattleStruct
+ ldr r1, [r0]
+ adds r0, r2, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08063CD8
+ adds r0, r4, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08063CD8
+ ldr r1, =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
+ mov r1, r10
+ strb r0, [r1]
+ movs r0, 0x58
+ ldr r2, [sp, 0x4]
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r0, =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_8063A08
+ adds r4, 0x22
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8063A08
+ ldr r2, [sp, 0x8]
+ mov r1, r10
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08063CE6
+ mov r2, r10
+ ldrb r2, [r2]
+ str r2, [sp, 0x8]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ b _08063CE6
+ .pool
+_08063CD8:
+ mov r4, r8
+ ldr r0, [r4]
+ mov r1, r9
+ orrs r1, r0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r9, r0
+_08063CE6:
+ movs r2, 0x4
+ add r8, r2
+ adds r7, 0x1
+ ldr r4, [sp, 0x1C]
+ cmp r7, r4
+ blt _08063C00
+_08063CF2:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0x6
+ beq _08063D54
+ movs r7, 0
+ movs r0, 0x64
+ ldr r1, [sp, 0xC]
+ adds r5, r1, 0
+ muls r5, r0
+_08063D02:
+ adds r1, r7, 0
+ adds r1, 0xD
+ ldr r2, [sp, 0x20]
+ adds r0, r2, r5
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08063D2A
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ldr r2, [sp, 0x4]
+ bl move_effectiveness_something
+ movs r1, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _08063D30
+_08063D2A:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08063D02
+_08063D30:
+ cmp r7, 0x4
+ beq _08063D36
+ b _08063E4E
+_08063D36:
+ ldr r4, [sp, 0xC]
+ lsls r0, r4, 2
+ ldr r1, =gBitTable
+ adds r0, r1
+ ldr r0, [r0]
+ mov r2, r9
+ orrs r2, r0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _08063D58
+ .pool
+_08063D54:
+ movs r4, 0x3F
+ mov r9, r4
+_08063D58:
+ mov r0, r9
+ cmp r0, 0x3F
+ beq _08063D60
+ b _08063BE4
+_08063D60:
+ ldr r0, =gUnknown_02024400
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ strb r1, [r0, 0x13]
+ ldr r0, =gBattleScripting
+ movs r2, 0x1
+ strb r2, [r0, 0xE]
+ ldr r0, =gBattleMoveFlags
+ strb r1, [r0]
+ ldr r0, =gCritMultiplier
+ strb r2, [r0]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r2, 0x6
+ str r2, [sp, 0xC]
+ ldr r7, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ cmp r7, r4
+ bge _08063E4E
+_08063D8A:
+ movs r0, 0x64
+ adds r6, r7, 0
+ muls r6, r0
+ ldr r0, [sp, 0x20]
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ adds r1, r7, 0x1
+ mov r10, r1
+ cmp r0, 0
+ beq _08063E46
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08063E46
+ ldr r1, =gBattlePartyID
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08063E46
+ ldr r4, [sp, 0x14]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08063E46
+ ldr r0, =gBattleStruct
+ ldr r1, [r0]
+ adds r0, r2, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08063E46
+ adds r0, r4, r1
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08063E46
+ movs r5, 0
+ mov r9, r6
+ ldr r0, =gBattleMoveDamage
+ mov r8, r0
+ ldr r6, =gActiveBank
+_08063DEE:
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, [sp, 0x20]
+ 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 _08063E2A
+ ldr r0, =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ beq _08063E2A
+ ldrb r0, [r6]
+ ldr r1, [sp, 0x4]
+ bl sub_8046E7C
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ ldr r2, [sp, 0x4]
+ bl move_effectiveness_something
+_08063E2A:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r4, [sp, 0x8]
+ cmp r4, r0
+ bge _08063E40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+_08063E40:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08063DEE
+_08063E46:
+ mov r7, r10
+ ldr r0, [sp, 0x1C]
+ cmp r7, r0
+ blt _08063D8A
+_08063E4E:
+ ldr r0, [sp, 0xC]
+_08063E50:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8063A90
+
+ thumb_func_start ai_identify_item_effect
+ai_identify_item_effect: @ 8063E84
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bne _08063E94
+ movs r0, 0x1
+ b _08063EDA
+_08063E94:
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08063EA2
+ movs r0, 0x2
+ b _08063EDA
+_08063EA2:
+ ldrb r4, [r2, 0x3]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08063EB2
+ movs r0, 0x3
+ b _08063EDA
+_08063EB2:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08063EC8
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0
+ bne _08063EC8
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _08063ECC
+_08063EC8:
+ movs r0, 0x4
+ b _08063EDA
+_08063ECC:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ bne _08063ED8
+ movs r0, 0x6
+ b _08063EDA
+_08063ED8:
+ movs r0, 0x5
+_08063EDA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ai_identify_item_effect
+
+ thumb_func_start sub_8063EE0
+sub_8063EE0: @ 8063EE0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r10, r0
+ movs r7, 0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _08063F12
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08063F12
+ b _0806437C
+_08063F12:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ ldr r5, =gEnemyParty
+ cmp r0, 0
+ bne _08063F24
+ ldr r5, =gPlayerParty
+_08063F24:
+ movs r1, 0
+ mov r8, r1
+_08063F28:
+ movs r0, 0x64
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r5, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08063F64
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08063F64
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08063F64
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_08063F64:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _08063F28
+ movs r2, 0
+ mov r8, r2
+_08063F72:
+ ldr r1, =gBattleResources
+ mov r0, r8
+ cmp r0, 0
+ beq _08063F8E
+ ldr r0, [r1]
+ ldr r0, [r0, 0x18]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ mov r2, r8
+ subs r0, r2
+ adds r0, 0x1
+ cmp r10, r0
+ ble _08063F8E
+ b _08064370
+_08063F8E:
+ ldr r0, [r1]
+ ldr r0, [r0, 0x18]
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r0, 0x48
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r9, r0
+ str r1, [sp]
+ cmp r0, 0
+ bne _08063FA6
+ b _08064370
+_08063FA6:
+ ldr r1, =gItemEffectInfoPointers
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08063FB6
+ b _08064370
+_08063FB6:
+ mov r0, r9
+ cmp r0, 0xAF
+ bne _08063FE8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003214
+ adds r5, r0, r1
+ b _08063FEA
+ .pool
+_08063FE8:
+ adds r5, r1, 0
+_08063FEA:
+ mov r2, r9
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl ai_identify_item_effect
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ lsrs r1, 1
+ ldr r3, =gBattleStruct
+ ldr r2, [r3]
+ adds r1, r2
+ adds r1, 0xC4
+ strb r0, [r1]
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ bls _0806401A
+ b _08064324
+_0806401A:
+ lsls r0, 2
+ ldr r1, =_08064030
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08064030:
+ .4byte _08064048
+ .4byte _08064074
+ .4byte _080640BC
+ .4byte _08064214
+ .4byte _080642F4
+ .4byte _0806437C
+_08064048:
+ ldr r2, =gBattleMons
+ ldr r0, =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 _08064060
+ b _08064324
+_08064060:
+ cmp r0, 0
+ bne _08064066
+ b _08064324
+_08064066:
+ movs r7, 0x1
+ b _08064328
+ .pool
+_08064074:
+ mov r0, r9
+ movs r1, 0x4
+ movs r2, 0x4
+ bl sub_806CDDC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08064088
+ b _08064324
+_08064088:
+ ldr r2, =gBattleMons
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x28]
+ cmp r2, 0
+ bne _0806409C
+ b _08064324
+_0806409C:
+ ldrh r3, [r1, 0x2C]
+ lsrs r0, r3, 2
+ cmp r2, r0
+ bcc _08064066
+ adds r0, r2, 0
+ subs r0, r3, r0
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bgt _080640B2
+ b _08064324
+_080640B2:
+ b _08064066
+ .pool
+_080640BC:
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ lsrs r0, 1
+ ldr r2, =gBattleStruct
+ ldr r1, [r2]
+ adds r0, r1
+ adds r0, 0xC6
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x20
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08064100
+ ldr r1, =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 _08064100
+ lsrs r1, r4, 1
+ ldr r0, [r2]
+ adds r1, r0
+ adds r1, 0xC6
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r7, 0x1
+_08064100:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x10
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0806413A
+ ldr r1, =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 _0806412A
+ movs r0, 0x80
+ ands r1, r0
+ cmp r1, 0
+ beq _0806413A
+_0806412A:
+ lsrs r1, r4, 1
+ ldr r0, [r2]
+ adds r1, r0
+ adds r1, 0xC6
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r7, 0x1
+_0806413A:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x8
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0806416C
+ ldr r1, =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 _0806416C
+ lsrs r1, r4, 1
+ ldr r0, [r2]
+ adds r1, r0
+ adds r1, 0xC6
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r7, 0x1
+_0806416C:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x4
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0806419E
+ ldr r1, =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 _0806419E
+ lsrs r1, r4, 1
+ ldr r0, [r2]
+ adds r1, r0
+ adds r1, 0xC6
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r7, 0x1
+_0806419E:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080641D0
+ ldr r1, =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 _080641D0
+ lsrs r1, r4, 1
+ ldr r0, [r2]
+ adds r1, r0
+ adds r1, 0xC6
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r7, 0x1
+_080641D0:
+ ldrb r1, [r5, 0x3]
+ movs r4, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080641DE
+ b _08064324
+_080641DE:
+ ldr r1, =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 _080641F6
+ b _08064324
+_080641F6:
+ lsrs r1, r3, 1
+ ldr r0, [r2]
+ adds r1, r0
+ adds r1, 0xC6
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ b _08064066
+ .pool
+_08064214:
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r3, =gBattleStruct
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC6
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, =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 _08064324
+ ldrb r1, [r5]
+ movs r6, 0xF
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08064254
+ lsrs r2, 1
+ ldr r0, [r3]
+ adds r2, r0
+ adds r2, 0xC6
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08064254:
+ ldrb r1, [r5, 0x1]
+ movs r7, 0xF0
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08064272
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC6
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_08064272:
+ ldrb r1, [r5, 0x1]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0806428E
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC6
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0806428E:
+ ldrb r1, [r5, 0x2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080642AA
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC6
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_080642AA:
+ ldrb r1, [r5, 0x2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080642C6
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC6
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+_080642C6:
+ ldrb r1, [r5]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ bne _080642D2
+ b _08064066
+_080642D2:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r1, [r3]
+ adds r0, r1
+ adds r0, 0xC6
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08064066
+ .pool
+_080642F4:
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =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 _08064324
+ ldr r0, =gSideTimers
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08064324
+ b _08064066
+_08064324:
+ cmp r7, 0
+ beq _08064370
+_08064328:
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsrs r0, 1
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, 0xC0
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, =gBattleResources
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ adds r0, 0x48
+ ldr r2, [sp]
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, r7, 0
+ b _0806437E
+ .pool
+_08064370:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ bgt _0806437C
+ b _08063F72
+_0806437C:
+ movs r0, 0
+_0806437E:
+ 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_8063EE0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index a53ee1fa6..c095c1b21 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -17270,7 +17270,7 @@ _081072D8:
strh r0, [r6, 0x36]
adds r0, r6, 0
bl obj_translate_based_on_private_1_2_3_4
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
adds r4, r0, 0
lsls r4, 24
@@ -28829,7 +28829,7 @@ _0810D028:
lsls r0, 2
adds r4, 0x1C
adds r0, r4
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
_0810D08C:
ldr r0, =sub_810D0B8
@@ -34846,7 +34846,7 @@ _08110094:
adds r0, r2, 0
adds r0, 0x1C
adds r0, r4, r0
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
adds r4, r2
ldrb r0, [r4, 0x1]
@@ -38348,7 +38348,7 @@ _08111D12:
adds r0, r1
lsls r0, 2
adds r0, r4
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
bl oamt_set_x3A_32
movs r0, 0x8
ldrsh r1, [r5, r0]
@@ -39266,7 +39266,7 @@ _08112436:
strh r2, [r4, 0x38]
mov r3, r9
strh r3, [r4, 0x3A]
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r5, r0
ldr r0, =sub_8112384
str r0, [r5]
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index 8bf361615..cb73f3b31 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -69,12 +69,12 @@ sub_8170478: @ 8170478
ldrh r6, [r4, 0x38]
lsls r6, 24
lsrs r6, 24
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x14]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
mov r10, r0
mov r2, r10
@@ -146,7 +146,7 @@ sub_8170478: @ 8170478
movs r0, 0x1C
add r9, r0
add r6, r9
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r6]
add r4, r9
str r1, [r4]
@@ -1332,7 +1332,7 @@ _08170F54:
movs r0, 0x1C
add r9, r0
add r4, r9
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4]
movs r0, 0
bl GetBankByPlayerAI
@@ -3338,7 +3338,7 @@ _0817200A:
ldrb r1, [r0]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_8172508
str r0, [r4]
@@ -3456,7 +3456,7 @@ _0817210E:
ldrb r1, [r0]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_8172508
str r0, [r4]
@@ -3573,7 +3573,7 @@ _08172212:
ldrb r1, [r3]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_8172508
str r0, [r4]
@@ -3690,7 +3690,7 @@ _08172312:
ldrb r1, [r0]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_8172508
str r0, [r4]
@@ -3820,7 +3820,7 @@ _08172430:
ldrb r1, [r3]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_8172508
str r0, [r4]
@@ -3996,7 +3996,7 @@ _081725A6:
ldrb r1, [r3]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_817265C
str r0, [r4]
@@ -4163,7 +4163,7 @@ _08172708:
ldrb r1, [r0]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r1, =gUnknown_0202064C
+ ldr r1, =gSprites + 0x1C
adds r4, r1
ldr r0, =sub_8172508
str r0, [r4]
@@ -4296,7 +4296,7 @@ _0817282E:
ldrb r1, [r3]
adds r0, r5, 0
bl StartObjectImageAnim
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r0, =sub_81728E0
str r0, [r4]
diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s
new file mode 100644
index 000000000..98c44bc58
--- /dev/null
+++ b/asm/battle_controller_linkopponent.s
@@ -0,0 +1,6266 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start nullsub_28
+nullsub_28: @ 8064390
+ bx lr
+ thumb_func_end nullsub_28
+
+ thumb_func_start SetBankFuncToLinkOpponentBufferRunCommand
+SetBankFuncToLinkOpponentBufferRunCommand: @ 8064394
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80643B0
+ str r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end SetBankFuncToLinkOpponentBufferRunCommand
+
+ thumb_func_start sub_80643B0
+sub_80643B0: @ 80643B0
+ push {lr}
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080643FC
+ ldr r0, =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _080643F8
+ ldr r0, =gUnknown_0831C7B4
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _080643FC
+ .pool
+_080643F8:
+ bl sub_8065068
+_080643FC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80643B0
+
+ thumb_func_start sub_8064400
+sub_8064400: @ 8064400
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08064424
+ bl sub_8065068
+_08064424:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064400
+
+ thumb_func_start sub_8064438
+sub_8064438: @ 8064438
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0806445C
+ bl sub_8065068
+_0806445C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064438
+
+ thumb_func_start sub_8064470
+sub_8064470: @ 8064470
+ push {r4-r6,lr}
+ ldr r5, =gSprites
+ ldr r6, =gBankSpriteIds
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080644C2
+ adds r0, r2, r5
+ ldrh r0, [r0, 0x6]
+ bl sub_805DFE4
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl obj_free_rotscale_entry
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ bl sub_8065068
+_080644C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064470
+
+ thumb_func_start sub_80644D8
+sub_80644D8: @ 80644D8
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r1, [r4]
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ ldr r2, [r1, 0x4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08064510
+ ldr r0, [r4]
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ bl sub_8065068
+_08064510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80644D8
+
+ thumb_func_start sub_8064520
+sub_8064520: @ 8064520
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ movs r4, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806454C
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08064584
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08064584
+_0806454C:
+ ldr r2, =gSprites
+ ldr r1, =gUnknown_03005D70
+ ldr r3, =gActiveBank
+ 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, [r0]
+ ldr r0, =SpriteCallbackDummy
+ adds r7, r3, 0
+ cmp r1, r0
+ bne _080645C2
+ b _080645CA
+ .pool
+_08064584:
+ ldr r3, =gSprites
+ ldr r6, =gUnknown_03005D70
+ ldr r2, =gActiveBank
+ ldrb r4, [r2]
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r3, 0
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r3, [r0]
+ ldr r0, =SpriteCallbackDummy
+ adds r7, r2, 0
+ cmp r3, r0
+ bne _080645C0
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ cmp r0, r3
+ bne _080645C0
+ movs r1, 0x1
+ mov r8, r1
+_080645C0:
+ movs r4, 0x1
+_080645C2:
+ mov r0, r8
+ cmp r0, 0
+ bne _080645CA
+ b _08064714
+_080645CA:
+ cmp r4, 0
+ bne _080645DE
+ ldrb r1, [r7]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806469C
+_080645DE:
+ ldr r1, =gUnknown_020244D0
+ mov r12, r1
+ ldr r0, [r1]
+ ldr r7, =gActiveBank
+ ldrb r2, [r7]
+ ldr r3, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r3
+ ldrb r1, [r4, 0x1]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08064600
+ b _08064714
+_08064600:
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08064714
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r2, [r7]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ mov r0, r12
+ ldr r2, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ mov r1, r12
+ ldr r2, [r1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ b _080646F2
+ .pool
+_0806469C:
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldrb r1, [r7]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08064714
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldrb r2, [r7]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080646F2
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+_080646F2:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80644D8
+ str r1, [r0]
+_08064714:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064520
+
+ thumb_func_start sub_8064734
+sub_8064734: @ 8064734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r10, r0
+ ldr r5, =gUnknown_020244D0
+ ldr r0, [r5]
+ ldr r4, =gActiveBank
+ ldrb r2, [r4]
+ ldr r1, [r0, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r6, 0xC4
+ lsls r6, 1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08064776
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_08064776:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080647B4
+ ldr r2, [r5]
+ ldrb r1, [r4]
+ movs r0, 0x2
+ adds r3, r0, 0
+ eors r3, r1
+ ldr r1, [r2, 0x4]
+ lsls r2, r3, 1
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080647B4
+ ldr r0, =gBattlePartyID
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8172EF0
+_080647B4:
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldr r2, =gActiveBank
+ ldrb r5, [r2]
+ ldr r4, [r0, 0x4]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r6, r0, r4
+ ldrb r1, [r6]
+ movs r0, 0x8
+ mov r12, r0
+ ands r0, r1
+ mov r8, r3
+ mov r9, r2
+ cmp r0, 0
+ bne _08064898
+ movs r7, 0x2
+ adds r1, r7, 0
+ eors r1, r5
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0
+ bne _08064898
+ ldrb r1, [r6, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806487A
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806484A
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806484A
+ ldr r4, =gUnknown_03005D70
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ mov r1, r9
+ ldrb r0, [r1]
+ eors r0, r7
+ bl sub_8076918
+ mov r1, r9
+ ldrb r0, [r1]
+ eors r0, r7
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80729D0
+_0806484A:
+ ldr r5, =gUnknown_03005D70
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r4]
+ bl sub_8076918
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_80729D0
+_0806487A:
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ mov r8, r4
+ mov r9, r3
+_08064898:
+ mov r1, r8
+ ldr r0, [r1]
+ mov r1, r9
+ ldrb r2, [r1]
+ ldr r3, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _0806495A
+ movs r1, 0x2
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806495A
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806495A
+ mov r1, r8
+ ldr r0, [r1]
+ mov r1, r9
+ ldrb r2, [r1]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0806493C
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x42
+ ands r0, r1
+ cmp r0, 0x42
+ bne _08064930
+ adds r0, r2, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806493C
+ ldr r0, =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _0806493C
+ .pool
+_08064930:
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_0806493C:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r0, 0x1
+ mov r10, r0
+_0806495A:
+ mov r1, r10
+ cmp r1, 0
+ bne _08064962
+ b _08064AC0
+_08064962:
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03005D7C
+ ldr r5, =gActiveBank
+ ldrb r3, [r5]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r4, r0
+ beq _08064982
+ b _08064AC0
+_08064982:
+ ldr r0, =gBankSpriteIds
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _08064998
+ b _08064AC0
+_08064998:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080649E2
+ adds r0, r3, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080649E2
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldrb r2, [r5]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08064AC0
+ ldr r0, [r3]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+_080649E2:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08064A3A
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08064A3A
+ ldr r1, =gUnknown_03005D7C
+ ldr r5, =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, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldrb r0, [r5]
+ eors r4, r0
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =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_805EE54
+_08064A3A:
+ ldr r1, =gUnknown_03005D7C
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldrb r5, [r4]
+ ldr r1, =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_805EE54
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r0, [r3]
+ ldrb r2, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r0, [r3]
+ ldrb r2, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064520
+ str r1, [r0]
+_08064AC0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064734
+
+ thumb_func_start sub_8064B04
+sub_8064B04: @ 8064B04
+ push {r4-r7,lr}
+ ldr r4, =gSprites
+ ldr r0, =gBankSpriteIds
+ ldr r7, =gActiveBank
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ 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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08064BB6
+ adds r0, r2, r4
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08064BB6
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r4, r3, 1
+ adds r0, r4, r3
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r5, [r2]
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _08064B7C
+ ldr r0, =gBattlePartyID
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8172EF0
+ b _08064BB6
+ .pool
+_08064B7C:
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08064BB6
+ movs r0, 0x7F
+ ands r0, r5
+ strb r0, [r2]
+ ldr r0, [r6]
+ ldrb r2, [r7]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ bl sub_8065068
+_08064BB6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064B04
+
+ thumb_func_start sub_8064BC0
+sub_8064BC0: @ 8064BC0
+ push {r4-r6,lr}
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ ldr r5, =gUnknown_03005D70
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8074AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_80729D0
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08064C08
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl heathbar_draw_hp
+ b _08064C0C
+ .pool
+_08064C08:
+ bl sub_8065068
+_08064C0C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8064BC0
+
+ thumb_func_start sub_8064C14
+sub_8064C14: @ 8064C14
+ push {lr}
+ ldr r2, =gSprites
+ ldr r0, =gBankSpriteIds
+ ldr r1, =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 _08064C42
+ ldr r0, =gUnknown_03005D70
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl sub_8065068
+_08064C42:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064C14
+
+ thumb_func_start sub_8064C58
+sub_8064C58: @ 8064C58
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08064CB2
+ ldr r5, =gBankSpriteIds
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl obj_free_rotscale_entry
+ 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_805EEE0
+ ldr r1, =gUnknown_03005D70
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl sub_8065068
+_08064CB2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064C58
+
+ thumb_func_start sub_8064CCC
+sub_8064CCC: @ 8064CCC
+ push {lr}
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _08064CDE
+ bl sub_8065068
+_08064CDE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8064CCC
+
+ thumb_func_start sub_8064CE4
+sub_8064CE4: @ 8064CE4
+ push {r4,lr}
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, =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 _08064D30
+ 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, =gDoingBattleAnim
+ strb r3, [r0]
+ bl sub_8065068
+ b _08064D5A
+ .pool
+_08064D30:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08064D54
+ 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]
+_08064D54:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08064D5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8064CE4
+
+ thumb_func_start sub_8064D60
+sub_8064D60: @ 8064D60
+ push {r4,lr}
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03005D70
+ ldr r4, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08064DAC
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08064DA0
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_08064DA0:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_8064DD0
+ str r0, [r1]
+_08064DAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064D60
+
+ thumb_func_start sub_8064DD0
+sub_8064DD0: @ 8064DD0
+ push {r4,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08064E2A
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08064E2A
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ 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, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ beq _08064E1A
+ ldr r0, =nullsub_18
+ cmp r1, r0
+ bne _08064E2A
+_08064E1A:
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ bl sub_8065068
+_08064E2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064DD0
+
+ thumb_func_start sub_8064E50
+sub_8064E50: @ 8064E50
+ push {r4-r7,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08064F0C
+ ldr r7, =gSprites
+ ldr r6, =gBankSpriteIds
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r7, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08064F0C
+ ldrb r1, [r3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, [r4]
+ ldrb r2, [r5]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ bl StartObjectImageAnim
+ ldr r4, =gUnknown_03005D70
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r5]
+ bl sub_8076918
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80729D0
+ ldrb r0, [r5]
+ bl sub_805E408
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064D60
+ str r1, [r0]
+_08064F0C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064E50
+
+ thumb_func_start sub_8064F40
+sub_8064F40: @ 8064F40
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _08064F72
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_08064F72:
+ ldr r4, =gSprites
+ ldr r0, =gUnknown_03005D7C
+ 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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08064FDC
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08064FDC
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =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_805EE54
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064E50
+ str r1, [r0]
+_08064FDC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8064F40
+
+ thumb_func_start sub_8065008
+sub_8065008: @ 8065008
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0806502A
+ bl sub_8065068
+_0806502A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8065008
+
+ thumb_func_start sub_8065038
+sub_8065038: @ 8065038
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0806505A
+ bl sub_8065068
+_0806505A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8065038
+
+ thumb_func_start sub_8065068
+sub_8065068: @ 8065068
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gBattleBankFunc
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80643B0
+ str r1, [r0]
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080650BC
+ bl link_get_multiplayer_id
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl PrepareBufferDataTransferLink
+ ldr r1, =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _080650CE
+ .pool
+_080650BC:
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_080650CE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8065068
+
+ thumb_func_start dp01t_00_2_getattr
+dp01t_00_2_getattr: @ 80650E0
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08065118
+ ldr r0, =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_opponent_pokemon
+ adds r6, r0, 0
+ b _0806513A
+ .pool
+_08065118:
+ ldrb r4, [r1]
+ movs r5, 0
+_0806511C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08065132
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_opponent_pokemon
+ adds r6, r0
+_08065132:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0806511C
+_0806513A:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl sub_8065068
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_2_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_opponent_pokemon
+dp01_getattr_by_ch1_for_opponent_pokemon: @ 8065154
+ 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, =gBattleBufferA
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0806517E
+ bl _080658EA
+_0806517E:
+ lsls r0, 2
+ ldr r1, =_08065194
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08065194:
+ .4byte _08065284
+ .4byte _080654A8
+ .4byte _080654B8
+ .4byte _080654C8
+ .4byte _08065530
+ .4byte _08065530
+ .4byte _08065530
+ .4byte _08065530
+ .4byte _0806554C
+ .4byte _08065588
+ .4byte _08065588
+ .4byte _08065588
+ .4byte _08065588
+ .4byte _080658EA
+ .4byte _080658EA
+ .4byte _080658EA
+ .4byte _080658EA
+ .4byte _080655A4
+ .4byte _080655B4
+ .4byte _080655E4
+ .4byte _080655F4
+ .4byte _08065604
+ .4byte _08065614
+ .4byte _08065624
+ .4byte _08065634
+ .4byte _08065644
+ .4byte _08065654
+ .4byte _08065664
+ .4byte _08065674
+ .4byte _08065684
+ .4byte _08065694
+ .4byte _080656A4
+ .4byte _080656F4
+ .4byte _08065704
+ .4byte _08065714
+ .4byte _08065724
+ .4byte _08065734
+ .4byte _08065744
+ .4byte _08065754
+ .4byte _08065764
+ .4byte _08065774
+ .4byte _080657A8
+ .4byte _080657B8
+ .4byte _080657C8
+ .4byte _080657D8
+ .4byte _080657E8
+ .4byte _080657F8
+ .4byte _08065808
+ .4byte _08065818
+ .4byte _08065838
+ .4byte _08065848
+ .4byte _08065858
+ .4byte _08065868
+ .4byte _08065878
+ .4byte _08065888
+ .4byte _08065898
+ .4byte _080658A8
+ .4byte _080658B8
+ .4byte _080658C8
+ .4byte _080658D8
+_08065284:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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
+_080652D0:
+ 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 _080652D0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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, =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, =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, =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
+_08065488:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08065488
+ b _080658EA
+ .pool
+_080654A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _08065822
+ .pool
+_080654B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _08065822
+ .pool
+_080654C8:
+ 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, =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_080654DE:
+ 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 _080654DE
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_0806551C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _0806551C
+ b _080658EA
+ .pool
+_08065530:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08065822
+ .pool
+_0806554C:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, =gEnemyParty
+ mov r8, r2
+_08065558:
+ 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 _08065558
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _080658EA
+ .pool
+_08065588:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _080658E2
+ .pool
+_080655A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _080655BE
+ .pool
+_080655B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_080655BE:
+ 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 _080658EA
+ .pool
+_080655E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _080658E2
+ .pool
+_080655F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _080658E2
+ .pool
+_08065604:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _080658E2
+ .pool
+_08065614:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _080658E2
+ .pool
+_08065624:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _080658E2
+ .pool
+_08065634:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _080658E2
+ .pool
+_08065644:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _080658E2
+ .pool
+_08065654:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _080658E2
+ .pool
+_08065664:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _080658E2
+ .pool
+_08065674:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _080658E2
+ .pool
+_08065684:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _080658E2
+ .pool
+_08065694:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _080658E2
+ .pool
+_080656A4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _080658EA
+ .pool
+_080656F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _080658E2
+ .pool
+_08065704:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _080658E2
+ .pool
+_08065714:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _080658E2
+ .pool
+_08065724:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _080658E2
+ .pool
+_08065734:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _080658E2
+ .pool
+_08065744:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _080658E2
+ .pool
+_08065754:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _0806577E
+ .pool
+_08065764:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _08065822
+ .pool
+_08065774:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_0806577E:
+ 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 _080658EA
+ .pool
+_080657A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _080658E2
+ .pool
+_080657B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _08065822
+ .pool
+_080657C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _08065822
+ .pool
+_080657D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _08065822
+ .pool
+_080657E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _08065822
+ .pool
+_080657F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _08065822
+ .pool
+_08065808:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _08065822
+ .pool
+_08065818:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_08065822:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _080658EA
+ .pool
+_08065838:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _080658E2
+ .pool
+_08065848:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _080658E2
+ .pool
+_08065858:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _080658E2
+ .pool
+_08065868:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _080658E2
+ .pool
+_08065878:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _080658E2
+ .pool
+_08065888:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _080658E2
+ .pool
+_08065898:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _080658E2
+ .pool
+_080658A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _080658E2
+ .pool
+_080658B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _080658E2
+ .pool
+_080658C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _080658E2
+ .pool
+_080658D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_080658E2:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_080658EA:
+ 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
+ .pool
+ thumb_func_end dp01_getattr_by_ch1_for_opponent_pokemon
+
+ thumb_func_start sub_8065900
+sub_8065900: @ 8065900
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8065900
+
+ thumb_func_start sub_806590C
+sub_806590C: @ 806590C
+ push {r4,r5,lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0806593C
+ ldr r0, =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8065964
+ b _0806595A
+ .pool
+_0806593C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08065940:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0806594E
+ adds r0, r5, 0
+ bl sub_8065964
+_0806594E:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08065940
+_0806595A:
+ bl sub_8065068
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806590C
+
+ thumb_func_start sub_8065964
+sub_8065964: @ 8065964
+ 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, =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, =gUnknown_02023067
+ 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 _08065992
+ bl _08066270
+_08065992:
+ lsls r0, 2
+ ldr r1, =_080659A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080659A8:
+ .4byte _08065A98
+ .4byte _08065C30
+ .4byte _08065C4C
+ .4byte _08065C68
+ .4byte _08065CBC
+ .4byte _08065CBC
+ .4byte _08065CBC
+ .4byte _08065CBC
+ .4byte _08065CDC
+ .4byte _08065D44
+ .4byte _08065D44
+ .4byte _08065D44
+ .4byte _08065D44
+ .4byte _08066270
+ .4byte _08066270
+ .4byte _08066270
+ .4byte _08066270
+ .4byte _08065D6C
+ .4byte _08065D88
+ .4byte _08065DA4
+ .4byte _08065DC0
+ .4byte _08065DDC
+ .4byte _08065DF8
+ .4byte _08065E14
+ .4byte _08065E30
+ .4byte _08065E4C
+ .4byte _08065E68
+ .4byte _08065E84
+ .4byte _08065EA0
+ .4byte _08065EBC
+ .4byte _08065ED8
+ .4byte _08065EF4
+ .4byte _08065F68
+ .4byte _08065F84
+ .4byte _08065FA0
+ .4byte _08065FBC
+ .4byte _08065FD8
+ .4byte _08065FF4
+ .4byte _08066010
+ .4byte _0806602C
+ .4byte _08066048
+ .4byte _08066064
+ .4byte _08066080
+ .4byte _0806609C
+ .4byte _080660B8
+ .4byte _080660D4
+ .4byte _080660F0
+ .4byte _0806610C
+ .4byte _08066128
+ .4byte _08066144
+ .4byte _08066160
+ .4byte _0806617C
+ .4byte _08066198
+ .4byte _080661B4
+ .4byte _080661D0
+ .4byte _080661EC
+ .4byte _08066208
+ .4byte _08066224
+ .4byte _08066240
+ .4byte _0806625C
+_08065A98:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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
+_08065AFE:
+ 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 _08065AFE
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _08066270
+ .pool
+_08065C30:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _08066270
+ .pool
+_08065C4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _08066270
+ .pool
+_08065C68:
+ 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, =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08065C80:
+ 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 _08065C80
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _08066270
+ .pool
+_08065CBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r3, =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08065D5A
+ .pool
+_08065CDC:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _08066270
+ .pool
+_08065D44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r3, =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_08065D5A:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _08066270
+ .pool
+_08065D6C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _08066270
+ .pool
+_08065D88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _08066270
+ .pool
+_08065DA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _08066270
+ .pool
+_08065DC0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _08066270
+ .pool
+_08065DDC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _08066270
+ .pool
+_08065DF8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _08066270
+ .pool
+_08065E14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _08066270
+ .pool
+_08065E30:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _08066270
+ .pool
+_08065E4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _08066270
+ .pool
+_08065E68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _08066270
+ .pool
+_08065E84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _08066270
+ .pool
+_08065EA0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _08066270
+ .pool
+_08065EBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _08066270
+ .pool
+_08065ED8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _08066270
+ .pool
+_08065EF4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _08066002
+ .pool
+_08065F68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _08066270
+ .pool
+_08065F84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _08066270
+ .pool
+_08065FA0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _08066270
+ .pool
+_08065FBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _08066270
+ .pool
+_08065FD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _08066270
+ .pool
+_08065FF4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_08066002:
+ movs r1, 0x2C
+ bl SetMonData
+ b _08066270
+ .pool
+_08066010:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _08066270
+ .pool
+_0806602C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _08066270
+ .pool
+_08066048:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _08066270
+ .pool
+_08066064:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _08066270
+ .pool
+_08066080:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _08066270
+ .pool
+_0806609C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _08066270
+ .pool
+_080660B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _08066270
+ .pool
+_080660D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _08066270
+ .pool
+_080660F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _08066270
+ .pool
+_0806610C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _08066270
+ .pool
+_08066128:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _08066270
+ .pool
+_08066144:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _08066270
+ .pool
+_08066160:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _08066270
+ .pool
+_0806617C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _08066270
+ .pool
+_08066198:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _08066270
+ .pool
+_080661B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _08066270
+ .pool
+_080661D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _08066270
+ .pool
+_080661EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _08066270
+ .pool
+_08066208:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _08066270
+ .pool
+_08066224:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _08066270
+ .pool
+_08066240:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _08066270
+ .pool
+_0806625C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_08066270:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8065964
+
+ thumb_func_start sub_8066284
+sub_8066284: @ 8066284
+ push {r4-r7,lr}
+ ldr r1, =gBattlePartyID
+ ldr r7, =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, =gBattleBufferA
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, =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 _080662DC
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_080662BA:
+ 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 _080662BA
+_080662DC:
+ bl sub_8065068
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066284
+
+ thumb_func_start sub_80662F8
+sub_80662F8: @ 80662F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, =gBattlePartyID
+ ldr r6, =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, =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_805DC0C
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_806A068
+ ldr r0, =gUnknown_0202499C
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_80A6138
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_80A82E4
+ 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, =gBankSpriteIds
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, =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, =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, =gUnknown_020244E4
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartObjectImageAnim
+ 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_805EE54
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064B04
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80662F8
+
+ thumb_func_start sub_8066448
+sub_8066448: @ 8066448
+ push {r4,lr}
+ ldr r1, =gBattlePartyID
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, =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_8066494
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064F40
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066448
+
+ thumb_func_start sub_8066494
+sub_8066494: @ 8066494
+ 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_805EF84
+ ldr r0, =gBattlePartyID
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, =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, =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =sub_805D714
+ bl CreateInvisibleSpriteWithCallback
+ ldr r1, =gUnknown_03005D7C
+ 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_805DC0C
+ adds r0, r6, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_806A068
+ ldr r0, =gUnknown_0202499C
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_80A6138
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_80A82E4
+ 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, =gBankSpriteIds
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, =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]
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ 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, =gUnknown_020244E4
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartObjectImageAnim
+ 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, =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_80753E8
+ 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
+ .pool
+ thumb_func_end sub_8066494
+
+ thumb_func_start sub_8066624
+sub_8066624: @ 8066624
+ push {r4-r6,lr}
+ ldr r1, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0806666C
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80666BC
+ str r1, [r0]
+ b _080666A8
+ .pool
+_0806666C:
+ ldr r5, =gBankSpriteIds
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl obj_free_rotscale_entry
+ 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_805EEE0
+ ldr r1, =gUnknown_03005D70
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl sub_8065068
+_080666A8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066624
+
+ thumb_func_start sub_80666BC
+sub_80666BC: @ 80666BC
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r4, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r4, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _080666E4
+ cmp r0, 0x1
+ beq _08066712
+ b _0806673A
+ .pool
+_080666E4:
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080666FE
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_080666FE:
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ b _0806673A
+_08066712:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0806673A
+ 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, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064C58
+ str r1, [r0]
+_0806673A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80666BC
+
+ thumb_func_start sub_8066748
+sub_8066748: @ 8066748
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, =gBattleTypeFlags
+ ldr r0, [r4]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08066840
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ movs r1, 0x2
+ ands r1, r0
+ movs r7, 0xC8
+ cmp r1, 0
+ beq _08066770
+ movs r7, 0x98
+_08066770:
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080667A8
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08066794
+ ldr r0, =gUnknown_02038BCA
+ b _08066796
+ .pool
+_08066794:
+ ldr r0, =gUnknown_02038BCC
+_08066796:
+ ldrh r0, [r0]
+ bl sub_8162AA0
+ lsls r0, 24
+ lsrs r0, 24
+ b _0806694C
+ .pool
+_080667A8:
+ ldrb r0, [r5]
+ bl sub_806D864
+ ldr r6, =gUnknown_020229E8
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r4, 0xFF
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _080667D8
+ ldrb r0, [r5]
+ bl sub_806D864
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x5
+ bne _080667F4
+_080667D8:
+ ldrb r0, [r5]
+ bl sub_806D864
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ bne _080668AA
+ b _080668BC
+ .pool
+_080667F4:
+ ldrb r0, [r5]
+ bl sub_806D864
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _08066822
+ ldrb r0, [r5]
+ bl sub_806D864
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r1]
+ ands r4, r0
+ cmp r4, 0x1
+ bne _08066838
+_08066822:
+ ldrb r0, [r5]
+ bl sub_806D864
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ bne _08066916
+ b _08066924
+_08066838:
+ ldrb r0, [r5]
+ bl sub_806D864
+ b _0806693A
+_08066840:
+ movs r7, 0xB0
+ ldr r0, =gUnknown_02038BCA
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 4
+ cmp r1, r0
+ bne _08066858
+ bl sub_8068B48
+ b _08066948
+ .pool
+_08066858:
+ bl link_get_multiplayer_id
+ ldr r6, =gUnknown_020229E8
+ movs r5, 0x1
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r4, 0xFF
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _08066892
+ bl link_get_multiplayer_id
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x5
+ bne _080668C8
+_08066892:
+ bl link_get_multiplayer_id
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ beq _080668BC
+_080668AA:
+ ldr r0, =gTrainerPicIndices
+ adds r0, 0x4F
+ ldrb r0, [r0]
+ b _0806694C
+ .pool
+_080668BC:
+ ldr r0, =gTrainerPicIndices
+ adds r0, 0x4E
+ ldrb r0, [r0]
+ b _0806694C
+ .pool
+_080668C8:
+ bl link_get_multiplayer_id
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080668FE
+ bl link_get_multiplayer_id
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r1]
+ ands r4, r0
+ cmp r4, 0x1
+ bne _08066930
+_080668FE:
+ bl link_get_multiplayer_id
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0
+ beq _08066924
+_08066916:
+ ldr r0, =gTrainerPicIndices
+ adds r0, 0x51
+ ldrb r0, [r0]
+ b _0806694C
+ .pool
+_08066924:
+ ldr r0, =gTrainerPicIndices
+ adds r0, 0x50
+ ldrb r0, [r0]
+ b _0806694C
+ .pool
+_08066930:
+ bl link_get_multiplayer_id
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+_0806693A:
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x13]
+ bl sub_806F000
+_08066948:
+ lsls r0, 16
+ lsrs r0, 16
+_0806694C:
+ mov r8, r0
+ ldr r5, =gActiveBank
+ ldrb r1, [r5]
+ bl sub_805DF38
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl template_build_for_pokemon_or_trainer
+ ldr r6, =gUnknown_0202499C
+ mov r9, r7
+ ldr r1, =gUnknown_083054E0
+ mov r2, r8
+ 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
+ ldrb r0, [r5]
+ bl sub_80A82E4
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ mov r1, r9
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r6, =gBankSpriteIds
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000ff10
+ 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]
+ ldr r1, =gTrainerFrontPicPaletteTable
+ mov r2, r8
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ ldrb r1, [r5]
+ adds r1, r6
+ 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]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r8
+ strh r1, [r0, 0x6]
+ 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, =sub_805D7AC
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064400
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066748
+
+ thumb_func_start sub_8066A58
+sub_8066A58: @ 8066A58
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08066A74
+ ldr r0, =gUnknown_02038BCA
+ b _08066A76
+ .pool
+_08066A74:
+ ldr r0, =gUnknown_02038BCC
+_08066A76:
+ ldrh r0, [r0]
+ bl sub_8162AA0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, =gActiveBank
+ ldrb r1, [r6]
+ bl sub_805DF38
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl template_build_for_pokemon_or_trainer
+ ldr r0, =gUnknown_0202499C
+ ldr r2, =gUnknown_083054E0
+ mov r3, r8
+ 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, =gBankSpriteIds
+ ldrb r1, [r6]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldrb r0, [r6]
+ 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, [r6]
+ 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, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldr r1, =gTrainerFrontPicPaletteTable
+ mov r2, r8
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ ldrb r1, [r6]
+ 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]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r3, r8
+ strh r3, [r0, 0x6]
+ 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, =sub_805D7AC
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064438
+ str r1, [r0]
+ bl sub_8065068
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066A58
+
+ thumb_func_start sub_8066B94
+sub_8066B94: @ 8066B94
+ push {r4-r6,lr}
+ ldr r6, =gBankSpriteIds
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, =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, =sub_80A6EEC
+ 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, =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064470
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066B94
+
+ thumb_func_start sub_8066C40
+sub_8066C40: @ 8066C40
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r4, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r0, [r4, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _08066C94
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08066C74
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08066C74:
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ adds r1, 0x1
+ strb r1, [r0, 0x4]
+ b _08066CD0
+ .pool
+_08066C94:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08066CD0
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl audio_play_and_stuff
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ 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, =sub_8039934
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064C14
+ str r1, [r0]
+_08066CD0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066C40
+
+ thumb_func_start sub_8066CEC
+sub_8066CEC: @ 8066CEC
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8066CEC
+
+ thumb_func_start sub_8066CF8
+sub_8066CF8: @ 8066CF8
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8066CF8
+
+ thumb_func_start sub_8066D04
+sub_8066D04: @ 8066D04
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8066D04
+
+ thumb_func_start sub_8066D10
+sub_8066D10: @ 8066D10
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8066D10
+
+ thumb_func_start sub_8066D1C
+sub_8066D1C: @ 8066D1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08066D32
+ b _08066E58
+_08066D32:
+ ldr r0, =gBattleBufferA
+ mov r12, r0
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, 0x1
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ mov r0, r12
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r6, r0
+ ldr r0, =gUnknown_02038432
+ mov r8, r0
+ mov r0, r12
+ adds r0, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, r8
+ strb r0, [r1]
+ ldr r3, =gUnknown_02038408
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0x5
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r3]
+ ldr r3, =gUnknown_02038404
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0x6
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0x7
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r2, r0
+ mov r0, r12
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 16
+ orrs r2, r0
+ mov r0, r12
+ adds r0, 0x9
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 24
+ orrs r2, r0
+ str r2, [r3]
+ ldr r2, =gUnknown_0203841A
+ ldrb r0, [r5]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0xA
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r4, =gUnknown_0203841C
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0xD
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r4]
+ ldr r7, =gUnknown_02038400
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0x10
+ adds r1, r0
+ str r1, [r7]
+ ldr r2, =gUnknown_020244BC
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_805DB8C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _08066E30
+ bl sub_8065068
+ b _08066E58
+ .pool
+_08066E30:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r3, [r0, 0x4]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8066E70
+ str r1, [r0]
+ ldrh r1, [r4]
+ ldr r2, [r7]
+ adds r0, r6, 0
+ bl sub_817E0FC
+_08066E58:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066D1C
+
+ thumb_func_start sub_8066E70
+sub_8066E70: @ 8066E70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r3, [r6]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r10, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, r2, 0x2
+ mov r9, r5
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r8, r1
+ ldr r7, =gUnknown_020244D0
+ ldr r5, [r7]
+ ldr r1, [r5, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08066F08
+ cmp r2, 0x1
+ bgt _08066EC8
+ cmp r2, 0
+ beq _08066ED2
+ b _08066FE4
+ .pool
+_08066EC8:
+ cmp r2, 0x2
+ beq _08066F32
+ cmp r2, 0x3
+ beq _08066FA8
+ b _08066FE4
+_08066ED2:
+ ldr r1, [r5]
+ lsls r0, r3, 2
+ adds r1, r0, r1
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _08066EF4
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r6]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08066EF4:
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ b _08066FE4
+_08066F08:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08066FE4
+ movs r0, 0
+ bl sub_805EB9C
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ b _08066FE4
+_08066F32:
+ ldr r0, =gUnknown_020383F8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_020383FD
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08066FE4
+ movs r0, 0x1
+ bl sub_805EB9C
+ ldr r0, [r7]
+ ldrb r2, [r6]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08066F80
+ mov r0, r8
+ cmp r0, 0x1
+ bhi _08066F80
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_08066F80:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08066FE4
+ .pool
+_08066FA8:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08066FE4
+ bl sub_805E394
+ ldrb r0, [r6]
+ lsls r2, r0, 9
+ mov r3, r10
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r9
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_805E94C
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r4, [r0, 0x4]
+ bl sub_8065068
+_08066FE4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8066E70
+
+ thumb_func_start sub_8066FF4
+sub_8066FF4: @ 8066FF4
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r5, =gActiveBank
+ ldrb r4, [r5]
+ lsls r4, 9
+ ldr r0, =gUnknown_02023066
+ adds r4, r0
+ ldrh r0, [r4]
+ bl battle_pick_message
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0
+ bl battle_show_message_maybe
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064CCC
+ str r1, [r0]
+ ldrh r0, [r4]
+ bl sub_817C95C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8066FF4
+
+ thumb_func_start sub_806704C
+sub_806704C: @ 806704C
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806704C
+
+ thumb_func_start sub_8067058
+sub_8067058: @ 8067058
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067058
+
+ thumb_func_start sub_8067064
+sub_8067064: @ 8067064
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067064
+
+ thumb_func_start sub_8067070
+sub_8067070: @ 8067070
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067070
+
+ thumb_func_start sub_806707C
+sub_806707C: @ 806707C
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806707C
+
+ thumb_func_start sub_8067088
+sub_8067088: @ 8067088
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067088
+
+ thumb_func_start sub_8067094
+sub_8067094: @ 8067094
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067094
+
+ thumb_func_start sub_80670A0
+sub_80670A0: @ 80670A0
+ 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, =gBattleBufferA
+ ldr r0, =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, =0x00007fff
+ cmp r7, r0
+ beq _08067130
+ ldr r6, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =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, =gUnknown_03005D70
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_807294C
+ b _0806715A
+ .pool
+_08067130:
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, =gUnknown_03005D70
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_807294C
+_0806715A:
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064BC0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80670A0
+
+ thumb_func_start sub_8067190
+sub_8067190: @ 8067190
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067190
+
+ thumb_func_start sub_806719C
+sub_806719C: @ 806719C
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080671F0
+ ldr r0, =gUnknown_03005D70
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl healthbar_draw_field_maybe
+ ldrb r2, [r4]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8065008
+ str r1, [r0]
+_080671F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806719C
+
+ thumb_func_start sub_8067214
+sub_8067214: @ 8067214
+ push {r4,r5,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08067264
+ ldr r4, =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, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8065008
+ str r1, [r0]
+_08067264:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067214
+
+ thumb_func_start sub_806727C
+sub_806727C: @ 806727C
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806727C
+
+ thumb_func_start sub_8067288
+sub_8067288: @ 8067288
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067288
+
+ thumb_func_start sub_8067294
+sub_8067294: @ 8067294
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067294
+
+ thumb_func_start sub_80672A0
+sub_80672A0: @ 80672A0
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80672A0
+
+ thumb_func_start sub_80672AC
+sub_80672AC: @ 80672AC
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80672AC
+
+ thumb_func_start sub_80672B8
+sub_80672B8: @ 80672B8
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80672B8
+
+ thumb_func_start sub_80672C4
+sub_80672C4: @ 80672C4
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80672C4
+
+ thumb_func_start sub_80672D0
+sub_80672D0: @ 80672D0
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80672D0
+
+ thumb_func_start sub_80672DC
+sub_80672DC: @ 80672DC
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80672DC
+
+ thumb_func_start sub_80672E8
+sub_80672E8: @ 80672E8
+ push {lr}
+ ldr r2, =gUnknown_02022D0C
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80672E8
+
+ thumb_func_start sub_8067304
+sub_8067304: @ 8067304
+ push {lr}
+ ldr r3, =gUnknown_02022D0C
+ ldr r1, =gBattleBufferA
+ ldr r0, =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 sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067304
+
+ thumb_func_start sub_806733C
+sub_806733C: @ 806733C
+ push {lr}
+ ldr r2, =gUnknown_02022D0C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806733C
+
+ thumb_func_start sub_8067354
+sub_8067354: @ 8067354
+ push {lr}
+ ldr r3, =gUnknown_02022D0C
+ 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_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067354
+
+ thumb_func_start sub_806737C
+sub_806737C: @ 806737C
+ push {r4,lr}
+ ldr r3, =gSprites
+ ldr r2, =gBankSpriteIds
+ ldr r4, =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 _080673B0
+ bl sub_8065068
+ b _080673DA
+ .pool
+_080673B0:
+ ldr r1, =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_80769F4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064CE4
+ str r1, [r0]
+_080673DA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806737C
+
+ thumb_func_start sub_80673EC
+sub_80673EC: @ 80673EC
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80673EC
+
+ thumb_func_start sub_80673F8
+sub_80673F8: @ 80673F8
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0806740C
+ movs r3, 0xC0
+_0806740C:
+ ldr r2, =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 audio_play_and_stuff
+ bl sub_8065068
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80673F8
+
+ thumb_func_start sub_806743C
+sub_806743C: @ 806743C
+ push {r4,r5,lr}
+ ldr r4, =gBattleBufferA
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ adds r0, r4, 0x3
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08067478
+ bl sub_805EA60
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r4, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, r4, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl song_play_for_text
+ b _0806748C
+ .pool
+_08067478:
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl fanfare_play
+_0806748C:
+ bl sub_8065068
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806743C
+
+ thumb_func_start sub_8067498
+sub_8067498: @ 8067498
+ push {lr}
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl sub_80A32E4
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067498
+
+ thumb_func_start sub_80674D4
+sub_80674D4: @ 80674D4
+ push {lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl battle_intro_launch
+ ldr r2, =gUnknown_020243FC
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80674D4
+
+ thumb_func_start sub_8067508
+sub_8067508: @ 8067508
+ push {r4-r6,lr}
+ ldr r5, =gBankSpriteIds
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =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, =sub_80A6EEC
+ 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, =sub_80676FC
+ bl oamt_set_x3A_32
+ ldr r0, =c3_08038DC4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldrb r2, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080675CA
+ ldr r0, =gUnknown_020244B4
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, =sub_8073C30
+ str r1, [r0]
+_080675CA:
+ ldr r0, [r3]
+ ldr r2, [r0, 0x8]
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =nullsub_28
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067508
+
+ thumb_func_start c3_08038DC4
+c3_08038DC4: @ 8067618
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, =gActiveBank
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, =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 _08067652
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08067684
+_08067652:
+ ldr r0, =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8066494
+ b _080676C4
+ .pool
+_08067684:
+ ldr r4, =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, =gBattlePartyID
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8066494
+ 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_8066494
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_080676C4:
+ ldr r1, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8064734
+ 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
+ .pool
+ thumb_func_end c3_08038DC4
+
+ thumb_func_start sub_80676FC
+sub_80676FC: @ 80676FC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_805DFE4
+ adds r0, r4, 0
+ bl obj_free_rotscale_entry
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80676FC
+
+ thumb_func_start sub_8067718
+sub_8067718: @ 8067718
+ push {r4-r7,lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08067748
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08067748
+ bl sub_8065068
+ b _08067812
+ .pool
+_08067748:
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, =gBattleBufferA
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _080677B4
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 27
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bhi _080677AC
+ adds r0, 0x1
+ movs r1, 0xF
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x1F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _08067812
+ .pool
+_080677AC:
+ movs r0, 0x1F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_080677B4:
+ adds r5, r7, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, =gUnknown_02023068
+ 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_80735DC
+ ldr r2, =gUnknown_020244B4
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r3, 0
+ strb r0, [r1]
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r3, [r0, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08067806
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08067806:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r7]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_806782C
+ str r0, [r1]
+_08067812:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067718
+
+ thumb_func_start sub_806782C
+sub_806782C: @ 806782C
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08067864
+ ldr r0, [r4]
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x5]
+ bl sub_8065068
+_08067864:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806782C
+
+ thumb_func_start sub_8067874
+sub_8067874: @ 8067874
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ ldr r1, [r1, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080678A6
+ ldr r2, =gTasks
+ ldr r0, =gUnknown_020244B4
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, =sub_8073C30
+ str r1, [r0]
+_080678A6:
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067874
+
+ thumb_func_start sub_80678C4
+sub_80678C4: @ 80678C4
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80678C4
+
+ thumb_func_start sub_80678D0
+sub_80678D0: @ 80678D0
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl sub_80A6A90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08067916
+ ldr r3, =gSprites
+ ldr r0, =gBankSpriteIds
+ 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, =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_805E408
+_08067916:
+ bl sub_8065068
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80678D0
+
+ thumb_func_start sub_8067930
+sub_8067930: @ 8067930
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08067992
+ ldr r4, =gBattleBufferA
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, r4, 0x1
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r4, 0x3
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ str r3, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ adds r3, r6, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08067980
+ bl sub_8065068
+ b _0806798C
+ .pool
+_08067980:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_8065038
+ str r0, [r1]
+_0806798C:
+ adds r0, r6, 0
+ bl sub_817E32C
+_08067992:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8067930
+
+ thumb_func_start sub_80679A4
+sub_80679A4: @ 80679A4
+ push {lr}
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r1, =gUnknown_02023066
+ adds r0, r1
+ bl sub_81851A8
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80679A4
+
+ thumb_func_start sub_80679C4
+sub_80679C4: @ 80679C4
+ push {lr}
+ bl sub_8065068
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80679C4
+
+ thumb_func_start sub_80679D0
+sub_80679D0: @ 80679D0
+ push {r4,r5,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 9
+ ldr r4, =gUnknown_02023068
+ adds r0, r4
+ bl sub_81851A8
+ ldrb r0, [r5]
+ lsls r0, 9
+ subs r4, 0x3
+ adds r0, r4
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _08067A00
+ ldr r0, =gBattleOutcome
+ strb r2, [r0]
+ b _08067A08
+ .pool
+_08067A00:
+ ldr r0, =gBattleOutcome
+ movs r1, 0x3
+ eors r1, r2
+ strb r1, [r0]
+_08067A08:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r1, =gBattleBufferA
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r3, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x5
+ bl sub_80A2F50
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl sub_8065068
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80587B0
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80679D0
+
+ thumb_func_start nullsub_92
+nullsub_92: @ 8067A70
+ bx lr
+ thumb_func_end nullsub_92
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
new file mode 100644
index 000000000..a790956d9
--- /dev/null
+++ b/asm/battle_controller_opponent.s
@@ -0,0 +1,6676 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start nullsub_26
+nullsub_26: @ 805F160
+ bx lr
+ thumb_func_end nullsub_26
+
+ thumb_func_start sub_805F164
+sub_805F164: @ 805F164
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_exec_buffer_A_ch0_tbl7
+ str r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_805F164
+
+ thumb_func_start bx_exec_buffer_A_ch0_tbl7
+bx_exec_buffer_A_ch0_tbl7: @ 805F180
+ push {lr}
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0805F1CC
+ ldr r0, =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0805F1C8
+ ldr r0, =gUnknown_0831C6C8
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0805F1CC
+ .pool
+_0805F1C8:
+ bl dp01_tbl7_exec_completed
+_0805F1CC:
+ pop {r0}
+ bx r0
+ thumb_func_end bx_exec_buffer_A_ch0_tbl7
+
+ thumb_func_start sub_805F1D0
+sub_805F1D0: @ 805F1D0
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805F1F4
+ bl dp01_tbl7_exec_completed
+_0805F1F4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F1D0
+
+ thumb_func_start sub_805F208
+sub_805F208: @ 805F208
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805F22C
+ bl dp01_tbl7_exec_completed
+_0805F22C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F208
+
+ thumb_func_start sub_805F240
+sub_805F240: @ 805F240
+ push {r4-r6,lr}
+ ldr r5, =gSprites
+ ldr r6, =gBankSpriteIds
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805F292
+ adds r0, r2, r5
+ ldrh r0, [r0, 0x6]
+ bl sub_805DFE4
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl obj_free_rotscale_entry
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ bl dp01_tbl7_exec_completed
+_0805F292:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F240
+
+ thumb_func_start sub_805F2A8
+sub_805F2A8: @ 805F2A8
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r1, [r4]
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ ldr r2, [r1, 0x4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0805F2E0
+ ldr r0, [r4]
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ bl dp01_tbl7_exec_completed
+_0805F2E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F2A8
+
+ thumb_func_start sub_805F2F0
+sub_805F2F0: @ 805F2F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r10, r0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F32C
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F31E
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F32C
+_0805F31E:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0805F368
+_0805F32C:
+ ldr r2, =gSprites
+ ldr r1, =gUnknown_03005D70
+ ldr r3, =gActiveBank
+ 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, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805F34E
+ movs r1, 0x1
+ mov r10, r1
+_0805F34E:
+ movs r6, 0
+ b _0805F3A2
+ .pool
+_0805F368:
+ ldr r3, =gSprites
+ ldr r6, =gUnknown_03005D70
+ ldr r2, =gActiveBank
+ ldrb r4, [r2]
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r5, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r5, r0
+ bne _0805F3A0
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, r5
+ bne _0805F3A0
+ movs r0, 0x1
+ mov r10, r0
+_0805F3A0:
+ movs r6, 0x1
+_0805F3A2:
+ ldr r3, =gUnknown_020244D8
+ ldr r1, =gUnknown_020244D0
+ mov r8, r1
+ ldr r2, [r1]
+ ldr r7, =gActiveBank
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, [r2, 0x4]
+ adds r0, r5, r0
+ str r0, [r3]
+ ldr r2, =gUnknown_020244DC
+ ldrb r0, [r7]
+ movs r1, 0x2
+ mov r9, r1
+ mov r1, r9
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5, r0
+ str r0, [r2]
+ mov r0, r10
+ cmp r0, 0
+ bne _0805F3D8
+ b _0805F53C
+_0805F3D8:
+ cmp r6, 0x1
+ bne _0805F494
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F3F2
+ b _0805F53C
+_0805F3F2:
+ mov r0, r9
+ eors r0, r2
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ ands r6, r0
+ cmp r6, 0
+ bne _0805F408
+ b _0805F53C
+_0805F408:
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r2, [r7]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ mov r0, r8
+ ldr r2, [r0]
+ ldrb r0, [r7]
+ mov r1, r9
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ mov r1, r8
+ ldr r2, [r1]
+ ldrb r0, [r7]
+ mov r1, r9
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ b _0805F51A
+ .pool
+_0805F494:
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805F53C
+ adds r0, r2, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0805F4E4
+ mov r0, r8
+ ldr r2, [r0]
+ ldrb r0, [r7]
+ mov r1, r9
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F53C
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+_0805F4E4:
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+_0805F51A:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F2A8
+ str r1, [r0]
+_0805F53C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F2F0
+
+ thumb_func_start sub_805F560
+sub_805F560: @ 805F560
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ mov r10, r0
+ ldr r5, =gUnknown_020244D0
+ ldr r0, [r5]
+ ldr r4, =gActiveBank
+ ldrb r2, [r4]
+ ldr r1, [r0, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r6, 0xC4
+ lsls r6, 1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F5A6
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_0805F5A6:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00008040
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F5EE
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F5EE
+ ldr r2, [r5]
+ ldrb r1, [r4]
+ movs r0, 0x2
+ adds r3, r0, 0
+ eors r3, r1
+ ldr r1, [r2, 0x4]
+ lsls r2, r3, 1
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F5EE
+ ldr r0, =gBattlePartyID
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8172EF0
+_0805F5EE:
+ ldr r2, =gUnknown_020244D0
+ ldr r0, [r2]
+ ldr r1, =gActiveBank
+ mov r8, r1
+ ldrb r4, [r1]
+ ldr r5, [r0, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r5
+ ldrb r1, [r3]
+ movs r6, 0x8
+ adds r0, r6, 0
+ ands r0, r1
+ mov r9, r2
+ cmp r0, 0
+ bne _0805F6D0
+ movs r7, 0x2
+ adds r1, r7, 0
+ eors r1, r4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F6D0
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F6B4
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F684
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F684
+ ldr r4, =gUnknown_03005D70
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ mov r1, r8
+ ldrb r0, [r1]
+ eors r0, r7
+ bl sub_8076918
+ mov r1, r8
+ ldrb r0, [r1]
+ eors r0, r7
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80729D0
+_0805F684:
+ ldr r5, =gUnknown_03005D70
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r4]
+ bl sub_8076918
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_80729D0
+_0805F6B4:
+ ldr r3, =gUnknown_020244D0
+ ldr r2, [r3]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ mov r9, r3
+_0805F6D0:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r4, =gActiveBank
+ ldrb r2, [r4]
+ ldr r3, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _0805F792
+ movs r1, 0x2
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F792
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805F792
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r4, [r4]
+ ldr r1, [r0, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F774
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x42
+ ands r0, r1
+ cmp r0, 0x42
+ bne _0805F768
+ adds r0, r4, 0
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0805F774
+ ldr r0, =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _0805F774
+ .pool
+_0805F768:
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_0805F774:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r0, 0x1
+ str r0, [sp]
+_0805F792:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F7B2
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F810
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0805F810
+_0805F7B2:
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03005D7C
+ ldr r1, =gActiveBank
+ ldrb r4, [r1]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r3, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r3, r0
+ bne _0805F86E
+ ldr r0, =gBankSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r3
+ bne _0805F86E
+ movs r1, 0x1
+ mov r10, r1
+ b _0805F86E
+ .pool
+_0805F810:
+ ldr r2, =gSprites
+ ldr r7, =gUnknown_03005D7C
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ adds r0, r3, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0805F86E
+ ldr r6, =gBankSpriteIds
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r5, [r0]
+ cmp r5, r4
+ bne _0805F86E
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r4, [r0]
+ cmp r4, r5
+ bne _0805F86E
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0805F86E
+ movs r0, 0x1
+ mov r10, r0
+_0805F86E:
+ ldr r1, [sp]
+ cmp r1, 0
+ beq _0805F958
+ mov r0, r10
+ cmp r0, 0
+ beq _0805F958
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805F8D2
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F8D2
+ ldr r1, =gUnknown_03005D7C
+ ldr r5, =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, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldrb r0, [r5]
+ eors r4, r0
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =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_805EE54
+_0805F8D2:
+ ldr r1, =gUnknown_03005D7C
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldrb r5, [r4]
+ ldr r1, =gBattlePartyID
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_805EE54
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r0, [r3]
+ ldrb r2, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r0, [r3]
+ ldrb r2, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F2F0
+ str r1, [r0]
+_0805F958:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F560
+
+ thumb_func_start sub_805F994
+sub_805F994: @ 805F994
+ push {r4,r5,lr}
+ ldr r2, =gSprites
+ ldr r0, =gBankSpriteIds
+ ldr r1, =gActiveBank
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ 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 _0805F9E0
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r2, r3, 1
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0805F9E0
+ ldr r0, =gBattlePartyID
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8172EF0
+_0805F9E0:
+ ldr r2, =gSprites
+ ldr r0, =gBankSpriteIds
+ ldr r5, =gActiveBank
+ ldrb r3, [r5]
+ 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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805FA48
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805FA48
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, [r4]
+ ldrb r2, [r5]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ bl dp01_tbl7_exec_completed
+_0805FA48:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805F994
+
+ thumb_func_start sub_805FA70
+sub_805FA70: @ 805FA70
+ push {r4-r6,lr}
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ ldr r5, =gUnknown_03005D70
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8074AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_80729D0
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0805FAB8
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl heathbar_draw_hp
+ b _0805FABC
+ .pool
+_0805FAB8:
+ bl dp01_tbl7_exec_completed
+_0805FABC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805FA70
+
+ thumb_func_start sub_805FAC4
+sub_805FAC4: @ 805FAC4
+ push {lr}
+ ldr r2, =gSprites
+ ldr r0, =gBankSpriteIds
+ ldr r1, =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 _0805FAF2
+ ldr r0, =gUnknown_03005D70
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl dp01_tbl7_exec_completed
+_0805FAF2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805FAC4
+
+ thumb_func_start sub_805FB08
+sub_805FB08: @ 805FB08
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FB62
+ ldr r5, =gBankSpriteIds
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl obj_free_rotscale_entry
+ 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_805EEE0
+ ldr r1, =gUnknown_03005D70
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl dp01_tbl7_exec_completed
+_0805FB62:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805FB08
+
+ thumb_func_start bx_t7_button_a
+bx_t7_button_a: @ 805FB7C
+ push {lr}
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _0805FB8E
+ bl dp01_tbl7_exec_completed
+_0805FB8E:
+ pop {r0}
+ bx r0
+ thumb_func_end bx_t7_button_a
+
+ thumb_func_start bx_blink_t7
+bx_blink_t7: @ 805FB94
+ push {r4,lr}
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, =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 _0805FBE0
+ 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, =gDoingBattleAnim
+ strb r3, [r0]
+ bl dp01_tbl7_exec_completed
+ b _0805FC0A
+ .pool
+_0805FBE0:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FC04
+ 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]
+_0805FC04:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0805FC0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t7
+
+ thumb_func_start sub_805FC10
+sub_805FC10: @ 805FC10
+ push {r4,lr}
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03005D70
+ ldr r4, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805FC5C
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0805FC50
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_0805FC50:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =bx_803AEDC
+ str r0, [r1]
+_0805FC5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805FC10
+
+ thumb_func_start bx_803AEDC
+bx_803AEDC: @ 805FC80
+ push {r4,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FCDA
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805FCDA
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ 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, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ beq _0805FCCA
+ ldr r0, =nullsub_18
+ cmp r1, r0
+ bne _0805FCDA
+_0805FCCA:
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ bl dp01_tbl7_exec_completed
+_0805FCDA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_803AEDC
+
+ thumb_func_start sub_805FD00
+sub_805FD00: @ 805FD00
+ push {r4-r7,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r1, [r3, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805FDBC
+ ldr r7, =gSprites
+ ldr r6, =gBankSpriteIds
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r7, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805FDBC
+ ldrb r1, [r3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, [r4]
+ ldrb r2, [r5]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ bl StartObjectImageAnim
+ ldr r4, =gUnknown_03005D70
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r5]
+ bl sub_8076918
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80729D0
+ ldrb r0, [r5]
+ bl sub_805E408
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FC10
+ str r1, [r0]
+_0805FDBC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805FD00
+
+ thumb_func_start sub_805FDF0
+sub_805FDF0: @ 805FDF0
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FE22
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_0805FE22:
+ ldr r4, =gSprites
+ ldr r0, =gUnknown_03005D7C
+ 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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0805FE8C
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FE8C
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =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_805EE54
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FD00
+ str r1, [r0]
+_0805FE8C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805FDF0
+
+ thumb_func_start sub_805FEB8
+sub_805FEB8: @ 805FEB8
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FEDA
+ bl dp01_tbl7_exec_completed
+_0805FEDA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805FEB8
+
+ thumb_func_start bx_803B0F4
+bx_803B0F4: @ 805FEE8
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0805FF0A
+ bl dp01_tbl7_exec_completed
+_0805FF0A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_803B0F4
+
+ thumb_func_start dp01_tbl7_exec_completed
+dp01_tbl7_exec_completed: @ 805FF18
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gBattleBankFunc
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_exec_buffer_A_ch0_tbl7
+ str r1, [r0]
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0805FF6C
+ bl link_get_multiplayer_id
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl PrepareBufferDataTransferLink
+ ldr r1, =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0805FF7E
+ .pool
+_0805FF6C:
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0805FF7E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01_tbl7_exec_completed
+
+ thumb_func_start dp01t_00_7_getattr
+dp01t_00_7_getattr: @ 805FF90
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0805FFC8
+ ldr r0, =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl sub_8060004
+ adds r6, r0, 0
+ b _0805FFEA
+ .pool
+_0805FFC8:
+ ldrb r4, [r1]
+ movs r5, 0
+_0805FFCC:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0805FFE2
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl sub_8060004
+ adds r6, r0
+_0805FFE2:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0805FFCC
+_0805FFEA:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl7_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_7_getattr
+
+ thumb_func_start sub_8060004
+sub_8060004: @ 8060004
+ 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, =gBattleBufferA
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0806002E
+ bl _0806079A
+_0806002E:
+ lsls r0, 2
+ ldr r1, =_08060044
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08060044:
+ .4byte _08060134
+ .4byte _08060358
+ .4byte _08060368
+ .4byte _08060378
+ .4byte _080603E0
+ .4byte _080603E0
+ .4byte _080603E0
+ .4byte _080603E0
+ .4byte _080603FC
+ .4byte _08060438
+ .4byte _08060438
+ .4byte _08060438
+ .4byte _08060438
+ .4byte _0806079A
+ .4byte _0806079A
+ .4byte _0806079A
+ .4byte _0806079A
+ .4byte _08060454
+ .4byte _08060464
+ .4byte _08060494
+ .4byte _080604A4
+ .4byte _080604B4
+ .4byte _080604C4
+ .4byte _080604D4
+ .4byte _080604E4
+ .4byte _080604F4
+ .4byte _08060504
+ .4byte _08060514
+ .4byte _08060524
+ .4byte _08060534
+ .4byte _08060544
+ .4byte _08060554
+ .4byte _080605A4
+ .4byte _080605B4
+ .4byte _080605C4
+ .4byte _080605D4
+ .4byte _080605E4
+ .4byte _080605F4
+ .4byte _08060604
+ .4byte _08060614
+ .4byte _08060624
+ .4byte _08060658
+ .4byte _08060668
+ .4byte _08060678
+ .4byte _08060688
+ .4byte _08060698
+ .4byte _080606A8
+ .4byte _080606B8
+ .4byte _080606C8
+ .4byte _080606E8
+ .4byte _080606F8
+ .4byte _08060708
+ .4byte _08060718
+ .4byte _08060728
+ .4byte _08060738
+ .4byte _08060748
+ .4byte _08060758
+ .4byte _08060768
+ .4byte _08060778
+ .4byte _08060788
+_08060134:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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
+_08060180:
+ 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 _08060180
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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, =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, =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, =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
+_08060338:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08060338
+ b _0806079A
+ .pool
+_08060358:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _080606D2
+ .pool
+_08060368:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _080606D2
+ .pool
+_08060378:
+ 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, =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_0806038E:
+ 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 _0806038E
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_080603CC:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _080603CC
+ b _0806079A
+ .pool
+_080603E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _080606D2
+ .pool
+_080603FC:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, =gEnemyParty
+ mov r8, r2
+_08060408:
+ 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 _08060408
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0806079A
+ .pool
+_08060438:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _08060792
+ .pool
+_08060454:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0806046E
+ .pool
+_08060464:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_0806046E:
+ 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 _0806079A
+ .pool
+_08060494:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _08060792
+ .pool
+_080604A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _08060792
+ .pool
+_080604B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _08060792
+ .pool
+_080604C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _08060792
+ .pool
+_080604D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _08060792
+ .pool
+_080604E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _08060792
+ .pool
+_080604F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _08060792
+ .pool
+_08060504:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _08060792
+ .pool
+_08060514:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _08060792
+ .pool
+_08060524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _08060792
+ .pool
+_08060534:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _08060792
+ .pool
+_08060544:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _08060792
+ .pool
+_08060554:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _0806079A
+ .pool
+_080605A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _08060792
+ .pool
+_080605B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _08060792
+ .pool
+_080605C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _08060792
+ .pool
+_080605D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _08060792
+ .pool
+_080605E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _08060792
+ .pool
+_080605F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _08060792
+ .pool
+_08060604:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _0806062E
+ .pool
+_08060614:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _080606D2
+ .pool
+_08060624:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_0806062E:
+ 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 _0806079A
+ .pool
+_08060658:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _08060792
+ .pool
+_08060668:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _080606D2
+ .pool
+_08060678:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _080606D2
+ .pool
+_08060688:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _080606D2
+ .pool
+_08060698:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _080606D2
+ .pool
+_080606A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _080606D2
+ .pool
+_080606B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _080606D2
+ .pool
+_080606C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_080606D2:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0806079A
+ .pool
+_080606E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _08060792
+ .pool
+_080606F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _08060792
+ .pool
+_08060708:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _08060792
+ .pool
+_08060718:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _08060792
+ .pool
+_08060728:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _08060792
+ .pool
+_08060738:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _08060792
+ .pool
+_08060748:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _08060792
+ .pool
+_08060758:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _08060792
+ .pool
+_08060768:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _08060792
+ .pool
+_08060778:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _08060792
+ .pool
+_08060788:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_08060792:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0806079A:
+ 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
+ .pool
+ thumb_func_end sub_8060004
+
+ thumb_func_start dp01t_01_2_read_pokmon_data_slice
+dp01t_01_2_read_pokmon_data_slice: @ 80607B0
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, =gBattlePartyID
+ ldr r5, =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, =gBattleBufferA
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, =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 _08060806
+ adds r3, r0, 0
+_080607EC:
+ 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 _080607EC
+_08060806:
+ 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_tbl7_exec_completed
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_01_2_read_pokmon_data_slice
+
+ thumb_func_start dp01t_02_7_setattr
+dp01t_02_7_setattr: @ 8060838
+ push {r4,r5,lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08060868
+ ldr r0, =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8060890
+ b _08060886
+ .pool
+_08060868:
+ ldrb r4, [r1]
+ movs r5, 0
+_0806086C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0806087A
+ adds r0, r5, 0
+ bl sub_8060890
+_0806087A:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0806086C
+_08060886:
+ bl dp01_tbl7_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_02_7_setattr
+
+ thumb_func_start sub_8060890
+sub_8060890: @ 8060890
+ 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, =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, =gUnknown_02023067
+ 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 _080608BE
+ bl _0806119C
+_080608BE:
+ lsls r0, 2
+ ldr r1, =_080608D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080608D4:
+ .4byte _080609C4
+ .4byte _08060B5C
+ .4byte _08060B78
+ .4byte _08060B94
+ .4byte _08060BE8
+ .4byte _08060BE8
+ .4byte _08060BE8
+ .4byte _08060BE8
+ .4byte _08060C08
+ .4byte _08060C70
+ .4byte _08060C70
+ .4byte _08060C70
+ .4byte _08060C70
+ .4byte _0806119C
+ .4byte _0806119C
+ .4byte _0806119C
+ .4byte _0806119C
+ .4byte _08060C98
+ .4byte _08060CB4
+ .4byte _08060CD0
+ .4byte _08060CEC
+ .4byte _08060D08
+ .4byte _08060D24
+ .4byte _08060D40
+ .4byte _08060D5C
+ .4byte _08060D78
+ .4byte _08060D94
+ .4byte _08060DB0
+ .4byte _08060DCC
+ .4byte _08060DE8
+ .4byte _08060E04
+ .4byte _08060E20
+ .4byte _08060E94
+ .4byte _08060EB0
+ .4byte _08060ECC
+ .4byte _08060EE8
+ .4byte _08060F04
+ .4byte _08060F20
+ .4byte _08060F3C
+ .4byte _08060F58
+ .4byte _08060F74
+ .4byte _08060F90
+ .4byte _08060FAC
+ .4byte _08060FC8
+ .4byte _08060FE4
+ .4byte _08061000
+ .4byte _0806101C
+ .4byte _08061038
+ .4byte _08061054
+ .4byte _08061070
+ .4byte _0806108C
+ .4byte _080610A8
+ .4byte _080610C4
+ .4byte _080610E0
+ .4byte _080610FC
+ .4byte _08061118
+ .4byte _08061134
+ .4byte _08061150
+ .4byte _0806116C
+ .4byte _08061188
+_080609C4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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
+_08060A2A:
+ 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 _08060A2A
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _0806119C
+ .pool
+_08060B5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060B78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060B94:
+ 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, =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08060BAC:
+ 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 _08060BAC
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060BE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r3, =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08060C86
+ .pool
+_08060C08:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _0806119C
+ .pool
+_08060C70:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldr r3, =gBattleBufferA
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_08060C86:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060C98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060CB4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060CD0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060CEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060D08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060D24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060D40:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060D5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060D78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060D94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060DB0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060DCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060DE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060E04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060E20:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _08060F2E
+ .pool
+_08060E94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060EB0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060ECC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060EE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060F04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060F20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_08060F2E:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060F3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060F58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060F74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060F90:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060FAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060FC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _0806119C
+ .pool
+_08060FE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061000:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _0806119C
+ .pool
+_0806101C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061038:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061054:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061070:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _0806119C
+ .pool
+_0806108C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _0806119C
+ .pool
+_080610A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _0806119C
+ .pool
+_080610C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _0806119C
+ .pool
+_080610E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _0806119C
+ .pool
+_080610FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061118:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061134:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061150:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _0806119C
+ .pool
+_0806116C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _0806119C
+ .pool
+_08061188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_0806119C:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8060890
+
+ thumb_func_start sub_80611B0
+sub_80611B0: @ 80611B0
+ push {r4-r7,lr}
+ ldr r1, =gBattlePartyID
+ ldr r7, =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, =gBattleBufferA
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, =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 _08061208
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_080611E6:
+ 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 _080611E6
+_08061208:
+ bl dp01_tbl7_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80611B0
+
+ thumb_func_start sub_8061224
+sub_8061224: @ 8061224
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r1, =gBattlePartyID
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r2, =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, =gBattlePartyID
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ bl sub_805DC0C
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_806A068
+ ldr r0, =gUnknown_0202499C
+ mov r9, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_80A6138
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_80A82E4
+ 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, =gBankSpriteIds
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, =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, =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, =gUnknown_020244E4
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartObjectImageAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ ldr r2, =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_805EE54
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F994
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061224
+
+ thumb_func_start sub_806137C
+sub_806137C: @ 806137C
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ adds r0, 0x5C
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r1, =gBattlePartyID
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, =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_80613DC
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FDF0
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806137C
+
+ thumb_func_start sub_80613DC
+sub_80613DC: @ 80613DC
+ 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_805EF84
+ ldr r0, =gBattlePartyID
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, =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, =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =sub_805D714
+ bl CreateInvisibleSpriteWithCallback
+ ldr r1, =gUnknown_03005D7C
+ 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_805DC0C
+ adds r0, r6, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_806A068
+ ldr r0, =gUnknown_0202499C
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_80A6138
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_80A82E4
+ 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, =gBankSpriteIds
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, =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]
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [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, =gUnknown_020244E4
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartObjectImageAnim
+ 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, =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_80753E8
+ 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
+ .pool
+ thumb_func_end sub_80613DC
+
+ thumb_func_start sub_806156C
+sub_806156C: @ 806156C
+ push {r4-r6,lr}
+ ldr r1, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080615B4
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8061604
+ str r1, [r0]
+ b _080615F0
+ .pool
+_080615B4:
+ ldr r5, =gBankSpriteIds
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl obj_free_rotscale_entry
+ 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_805EEE0
+ ldr r1, =gUnknown_03005D70
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl dp01_tbl7_exec_completed
+_080615F0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806156C
+
+ thumb_func_start sub_8061604
+sub_8061604: @ 8061604
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r4, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r4, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0806162C
+ cmp r0, 0x1
+ beq _0806165A
+ b _08061682
+ .pool
+_0806162C:
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08061646
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08061646:
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ b _08061682
+_0806165A:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08061682
+ 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, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FB08
+ str r1, [r0]
+_08061682:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061604
+
+ thumb_func_start sub_8061690
+sub_8061690: @ 8061690
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gBattleTypeFlags
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 20
+ ands r0, r2
+ cmp r0, 0
+ beq _080616B0
+ bl sub_806B830
+ b _0806175A
+ .pool
+_080616B0:
+ ldr r3, =gUnknown_02038BCA
+ ldrh r1, [r3]
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _080616C8
+ bl sub_81A4CB0
+ b _0806175A
+ .pool
+_080616C8:
+ movs r0, 0x80
+ lsls r0, 19
+ ands r0, r2
+ cmp r0, 0
+ beq _08061708
+ movs r0, 0x80
+ lsls r0, 8
+ ands r2, r0
+ cmp r2, 0
+ beq _08061700
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080616F0
+ ldrh r0, [r3]
+ bl sub_81D5588
+ b _0806175A
+ .pool
+_080616F0:
+ ldr r0, =gUnknown_02038BCC
+ ldrh r0, [r0]
+ bl sub_81D5588
+ b _0806175A
+ .pool
+_08061700:
+ ldrh r0, [r3]
+ bl sub_81D5588
+ b _0806175A
+_08061708:
+ ldr r0, =0x003f0100
+ ands r0, r2
+ cmp r0, 0
+ beq _0806174C
+ ldr r0, =0x00808000
+ ands r2, r0
+ cmp r2, 0
+ beq _08061744
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08061734
+ ldrh r0, [r3]
+ bl sub_8162AA0
+ b _0806175A
+ .pool
+_08061734:
+ ldr r0, =gUnknown_02038BCC
+ ldrh r0, [r0]
+ bl sub_8162AA0
+ b _0806175A
+ .pool
+_08061744:
+ ldrh r0, [r3]
+ bl sub_8162AA0
+ b _0806175A
+_0806174C:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r2
+ cmp r0, 0
+ beq _08061760
+ bl sub_8165244
+_0806175A:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ b _08061796
+_08061760:
+ movs r0, 0x80
+ lsls r0, 8
+ ands r2, r0
+ cmp r2, 0
+ beq _08061788
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08061788
+ ldr r2, =gTrainers
+ ldr r0, =gUnknown_02038BCC
+ ldrh r1, [r0]
+ b _0806178C
+ .pool
+_08061788:
+ ldr r2, =gTrainers
+ ldrh r1, [r3]
+_0806178C:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r4, [r0, 0x3]
+_08061796:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00008040
+ ands r0, r1
+ cmp r0, 0
+ beq _080617C8
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r1, 0x2
+ ands r1, r0
+ movs r7, 0xC8
+ cmp r1, 0
+ beq _080617CA
+ movs r7, 0x98
+ b _080617CA
+ .pool
+_080617C8:
+ movs r7, 0xB0
+_080617CA:
+ mov r8, r4
+ ldr r5, =gActiveBank
+ ldrb r1, [r5]
+ mov r0, r8
+ bl sub_805DF38
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl template_build_for_pokemon_or_trainer
+ ldr r6, =gUnknown_0202499C
+ mov r9, r7
+ ldr r1, =gUnknown_083054E0
+ mov r2, r8
+ 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
+ ldrb r0, [r5]
+ bl sub_80A82E4
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ mov r1, r9
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r6, =gBankSpriteIds
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000ff10
+ 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]
+ ldr r1, =gTrainerFrontPicPaletteTable
+ mov r2, r8
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ ldrb r1, [r5]
+ adds r1, r6
+ 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]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r8
+ strh r1, [r0, 0x6]
+ 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, =sub_805D7AC
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F1D0
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061690
+
+ thumb_func_start sub_80618D8
+sub_80618D8: @ 80618D8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, =gBattleTypeFlags
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 20
+ ands r0, r2
+ cmp r0, 0
+ beq _080618F8
+ bl sub_806B830
+ b _080619A2
+ .pool
+_080618F8:
+ ldr r3, =gUnknown_02038BCA
+ ldrh r1, [r3]
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _08061910
+ bl sub_81A4CB0
+ b _080619A2
+ .pool
+_08061910:
+ movs r0, 0x80
+ lsls r0, 19
+ ands r0, r2
+ cmp r0, 0
+ beq _08061950
+ movs r0, 0x80
+ lsls r0, 8
+ ands r2, r0
+ cmp r2, 0
+ beq _08061948
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08061938
+ ldrh r0, [r3]
+ bl sub_81D5588
+ b _080619A2
+ .pool
+_08061938:
+ ldr r0, =gUnknown_02038BCC
+ ldrh r0, [r0]
+ bl sub_81D5588
+ b _080619A2
+ .pool
+_08061948:
+ ldrh r0, [r3]
+ bl sub_81D5588
+ b _080619A2
+_08061950:
+ ldr r0, =0x003f0100
+ ands r0, r2
+ cmp r0, 0
+ beq _08061994
+ ldr r0, =0x00808000
+ ands r2, r0
+ cmp r2, 0
+ beq _0806198C
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0806197C
+ ldrh r0, [r3]
+ bl sub_8162AA0
+ b _080619A2
+ .pool
+_0806197C:
+ ldr r0, =gUnknown_02038BCC
+ ldrh r0, [r0]
+ bl sub_8162AA0
+ b _080619A2
+ .pool
+_0806198C:
+ ldrh r0, [r3]
+ bl sub_8162AA0
+ b _080619A2
+_08061994:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r2
+ cmp r0, 0
+ beq _080619A8
+ bl sub_8165244
+_080619A2:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080619DE
+_080619A8:
+ movs r0, 0x80
+ lsls r0, 8
+ ands r2, r0
+ cmp r2, 0
+ beq _080619D0
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080619D0
+ ldr r2, =gTrainers
+ ldr r0, =gUnknown_02038BCC
+ ldrh r1, [r0]
+ b _080619D4
+ .pool
+_080619D0:
+ ldr r2, =gTrainers
+ ldrh r1, [r3]
+_080619D4:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_080619DE:
+ mov r8, r0
+ ldr r6, =gActiveBank
+ ldrb r1, [r6]
+ bl sub_805DF38
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl template_build_for_pokemon_or_trainer
+ ldr r0, =gUnknown_0202499C
+ ldr r2, =gUnknown_083054E0
+ mov r3, r8
+ 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, =gBankSpriteIds
+ ldrb r1, [r6]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldrb r0, [r6]
+ 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, [r6]
+ 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, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldr r1, =gTrainerFrontPicPaletteTable
+ mov r2, r8
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ ldrb r1, [r6]
+ 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]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r3, r8
+ strh r3, [r0, 0x6]
+ 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, =sub_805D7AC
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F208
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80618D8
+
+ thumb_func_start sub_8061AF0
+sub_8061AF0: @ 8061AF0
+ push {r4-r6,lr}
+ ldr r6, =gBankSpriteIds
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, =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, =sub_80A6EEC
+ 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, =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F240
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061AF0
+
+ thumb_func_start sub_8061B9C
+sub_8061B9C: @ 8061B9C
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r4, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r0, [r4, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _08061BF0
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08061BD0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08061BD0:
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ adds r1, 0x1
+ strb r1, [r0, 0x4]
+ b _08061C2C
+ .pool
+_08061BF0:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08061C2C
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl audio_play_and_stuff
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ 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, =sub_8039934
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FAC4
+ str r1, [r0]
+_08061C2C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061B9C
+
+ thumb_func_start sub_8061C48
+sub_8061C48: @ 8061C48
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061C48
+
+ thumb_func_start sub_8061C54
+sub_8061C54: @ 8061C54
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061C54
+
+ thumb_func_start sub_8061C60
+sub_8061C60: @ 8061C60
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061C60
+
+ thumb_func_start sub_8061C6C
+sub_8061C6C: @ 8061C6C
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061C6C
+
+ thumb_func_start sub_8061C78
+sub_8061C78: @ 8061C78
+ push {r4-r6,lr}
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08061C8A
+ b _08061D9E
+_08061C8A:
+ ldr r0, =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, =gUnknown_02038432
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, =gUnknown_02038408
+ 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, =gUnknown_02038404
+ 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, =gUnknown_0203841A
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, =gUnknown_0203841C
+ 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, =gUnknown_02038400
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, =gUnknown_020244BC
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_805DB8C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _08061D80
+ bl dp01_tbl7_exec_completed
+ b _08061D9E
+ .pool
+_08061D80:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r3, [r0, 0x4]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_move_anim_7
+ str r1, [r0]
+_08061D9E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061C78
+
+ thumb_func_start bx_move_anim_7
+bx_move_anim_7: @ 8061DB0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r3, [r6]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r10, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, r2, 0x2
+ mov r9, r5
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r8, r1
+ ldr r7, =gUnknown_020244D0
+ ldr r5, [r7]
+ ldr r1, [r5, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08061E48
+ cmp r2, 0x1
+ bgt _08061E08
+ cmp r2, 0
+ beq _08061E12
+ b _08061F24
+ .pool
+_08061E08:
+ cmp r2, 0x2
+ beq _08061E72
+ cmp r2, 0x3
+ beq _08061EE8
+ b _08061F24
+_08061E12:
+ ldr r1, [r5]
+ lsls r0, r3, 2
+ adds r1, r0, r1
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _08061E34
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r6]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08061E34:
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ b _08061F24
+_08061E48:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08061F24
+ movs r0, 0
+ bl sub_805EB9C
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ b _08061F24
+_08061E72:
+ ldr r0, =gUnknown_020383F8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_020383FD
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08061F24
+ movs r0, 0x1
+ bl sub_805EB9C
+ ldr r0, [r7]
+ ldrb r2, [r6]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08061EC0
+ mov r0, r8
+ cmp r0, 0x1
+ bhi _08061EC0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_08061EC0:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08061F24
+ .pool
+_08061EE8:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08061F24
+ bl sub_805E394
+ ldrb r0, [r6]
+ lsls r2, r0, 9
+ mov r3, r10
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r9
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_805E94C
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r4, [r0, 0x4]
+ bl dp01_tbl7_exec_completed
+_08061F24:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_move_anim_7
+
+ thumb_func_start sub_8061F34
+sub_8061F34: @ 8061F34
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r5, =gActiveBank
+ ldrb r4, [r5]
+ lsls r4, 9
+ ldr r0, =gUnknown_02023066
+ adds r4, r0
+ ldrh r0, [r4]
+ bl battle_pick_message
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0
+ bl battle_show_message_maybe
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_t7_button_a
+ str r1, [r0]
+ ldrb r0, [r5]
+ ldrh r1, [r4]
+ bl sub_81A57E4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8061F34
+
+ thumb_func_start sub_8061F90
+sub_8061F90: @ 8061F90
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061F90
+
+ thumb_func_start sub_8061F9C
+sub_8061F9C: @ 8061F9C
+ push {lr}
+ bl sub_8063880
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061F9C
+
+ thumb_func_start sub_8061FAC
+sub_8061FAC: @ 8061FAC
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061FAC
+
+ thumb_func_start sub_8061FB8
+sub_8061FB8: @ 8061FB8
+ push {r4-r6,lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 10
+ ands r0, r2
+ cmp r0, 0
+ beq _08061FE4
+ bl sub_805D19C
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xA
+_08061FD6:
+ bl dp01_build_cmdbuf_x21_a_bb
+_08061FDA:
+ bl dp01_tbl7_exec_completed
+ b _08062156
+ .pool
+_08061FE4:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r1, =gUnknown_02023068
+ adds r5, r0, r1
+ movs r0, 0x93
+ lsls r0, 3
+ ands r2, r0
+ cmp r2, 0
+ beq _080620C4
+ movs r0, 0xF
+ bl BattleAI_SetupAIData
+ bl sub_8130BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ beq _08062022
+ cmp r4, 0x5
+ bgt _0806201C
+ cmp r4, 0x4
+ beq _08062028
+ b _08062040
+ .pool
+_0806201C:
+ cmp r4, 0x6
+ beq _08062030
+ b _08062040
+_08062022:
+ movs r0, 0x1
+ movs r1, 0x4
+ b _0806202C
+_08062028:
+ movs r0, 0x1
+ movs r1, 0x3
+_0806202C:
+ movs r2, 0
+ b _08061FD6
+_08062030:
+ ldr r0, =gBankTarget
+ ldrb r2, [r0]
+ movs r0, 0x1
+ movs r1, 0xF
+ b _08061FD6
+ .pool
+_08062040:
+ ldr r3, =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 _08062062
+ ldr r0, =gBankTarget
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ strb r1, [r0]
+_08062062:
+ 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 _0806209C
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r5, =gBankTarget
+ strb r0, [r5]
+ ldr r0, =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0806209C
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+_0806209C:
+ ldr r0, =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
+ b _08061FDA
+ .pool
+_080620C4:
+ movs r6, 0x3
+_080620C6:
+ bl Random
+ adds r4, r0, 0
+ ands r4, r6
+ lsls r0, r4, 1
+ adds r0, r5, r0
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080620C6
+ ldr r1, =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 _08062108
+ ldr r0, =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 _08062152
+ .pool
+_08062108:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806213C
+ 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 _08062152
+ .pool
+_0806213C:
+ 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
+_08062152:
+ bl dp01_tbl7_exec_completed
+_08062156:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8061FB8
+
+ thumb_func_start sub_806215C
+sub_806215C: @ 806215C
+ push {lr}
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsrs r0, 1
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, 0xC0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806215C
+
+ thumb_func_start sub_8062188
+sub_8062188: @ 8062188
+ push {r4-r7,lr}
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ movs r2, 0xA5
+ lsls r2, 2
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _08062254
+ bl sub_8063A90
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _0806225A
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080621D4
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ b _080621E8
+ .pool
+_080621D4:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080621E8:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x00808000
+ ands r0, r1
+ cmp r0, 0
+ beq _08062214
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08062210
+ movs r0, 0
+ movs r6, 0x3
+ b _08062218
+ .pool
+_08062210:
+ movs r0, 0x3
+ b _08062216
+_08062214:
+ movs r0, 0
+_08062216:
+ movs r6, 0x6
+_08062218:
+ adds r4, r0, 0
+ b _0806221E
+_0806221C:
+ adds r4, 0x1
+_0806221E:
+ cmp r4, r6
+ bge _0806225A
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0806221C
+ ldr r1, =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0806221C
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0806221C
+ b _0806225A
+ .pool
+_08062254:
+ ldrb r4, [r1]
+ movs r0, 0x6
+ strb r0, [r1]
+_0806225A:
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ adds r0, 0x5C
+ 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 dp01_tbl7_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062188
+
+ thumb_func_start sub_8062288
+sub_8062288: @ 8062288
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062288
+
+ thumb_func_start sub_8062294
+sub_8062294: @ 8062294
+ 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, =gBattleBufferA
+ ldr r0, =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, =0x00007fff
+ cmp r7, r0
+ beq _08062324
+ ldr r6, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =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, =gUnknown_03005D70
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_807294C
+ b _0806234E
+ .pool
+_08062324:
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, =gUnknown_03005D70
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_807294C
+_0806234E:
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FA70
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062294
+
+ thumb_func_start sub_8062384
+sub_8062384: @ 8062384
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062384
+
+ thumb_func_start sub_8062390
+sub_8062390: @ 8062390
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080623E4
+ ldr r0, =gUnknown_03005D70
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl healthbar_draw_field_maybe
+ ldrb r2, [r4]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FEB8
+ str r1, [r0]
+_080623E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062390
+
+ thumb_func_start sub_8062408
+sub_8062408: @ 8062408
+ push {r4,r5,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08062458
+ ldr r4, =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, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805FEB8
+ str r1, [r0]
+_08062458:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062408
+
+ thumb_func_start sub_8062470
+sub_8062470: @ 8062470
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062470
+
+ thumb_func_start sub_806247C
+sub_806247C: @ 806247C
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806247C
+
+ thumb_func_start sub_8062488
+sub_8062488: @ 8062488
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062488
+
+ thumb_func_start sub_8062494
+sub_8062494: @ 8062494
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062494
+
+ thumb_func_start sub_80624A0
+sub_80624A0: @ 80624A0
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80624A0
+
+ thumb_func_start sub_80624AC
+sub_80624AC: @ 80624AC
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80624AC
+
+ thumb_func_start sub_80624B8
+sub_80624B8: @ 80624B8
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80624B8
+
+ thumb_func_start sub_80624C4
+sub_80624C4: @ 80624C4
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80624C4
+
+ thumb_func_start sub_80624D0
+sub_80624D0: @ 80624D0
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80624D0
+
+ thumb_func_start sub_80624DC
+sub_80624DC: @ 80624DC
+ push {lr}
+ ldr r2, =gUnknown_02022D0C
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80624DC
+
+ thumb_func_start sub_80624F8
+sub_80624F8: @ 80624F8
+ push {lr}
+ ldr r3, =gUnknown_02022D0C
+ ldr r1, =gBattleBufferA
+ ldr r0, =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_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80624F8
+
+ thumb_func_start sub_8062530
+sub_8062530: @ 8062530
+ push {lr}
+ ldr r2, =gUnknown_02022D0C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062530
+
+ thumb_func_start sub_8062548
+sub_8062548: @ 8062548
+ push {lr}
+ ldr r3, =gUnknown_02022D0C
+ 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_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062548
+
+ thumb_func_start dp01t_29_7_blink
+dp01t_29_7_blink: @ 8062570
+ push {r4,lr}
+ ldr r3, =gSprites
+ ldr r2, =gBankSpriteIds
+ ldr r4, =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 _080625A4
+ bl dp01_tbl7_exec_completed
+ b _080625CE
+ .pool
+_080625A4:
+ ldr r1, =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_80769F4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_blink_t7
+ str r1, [r0]
+_080625CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_29_7_blink
+
+ thumb_func_start sub_80625E0
+sub_80625E0: @ 80625E0
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80625E0
+
+ thumb_func_start sub_80625EC
+sub_80625EC: @ 80625EC
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08062600
+ movs r3, 0xC0
+_08062600:
+ ldr r2, =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 audio_play_and_stuff
+ bl dp01_tbl7_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80625EC
+
+ thumb_func_start sub_8062630
+sub_8062630: @ 8062630
+ push {r4,r5,lr}
+ ldr r4, =gBattleBufferA
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ adds r0, r4, 0x3
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0806266C
+ bl sub_805EA60
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r4, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, r4, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl song_play_for_text
+ b _08062680
+ .pool
+_0806266C:
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl fanfare_play
+_08062680:
+ bl dp01_tbl7_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062630
+
+ thumb_func_start sub_806268C
+sub_806268C: @ 806268C
+ push {lr}
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl sub_80A32E4
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_806268C
+
+ thumb_func_start dp01t_2E_7_battle_intro
+dp01t_2E_7_battle_intro: @ 80626C8
+ push {lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl battle_intro_launch
+ ldr r2, =gUnknown_020243FC
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_2E_7_battle_intro
+
+ thumb_func_start sub_80626FC
+sub_80626FC: @ 80626FC
+ push {r4-r6,lr}
+ ldr r5, =gBankSpriteIds
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =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, =sub_80A6EEC
+ 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, =sub_806280C
+ bl oamt_set_x3A_32
+ ldr r0, =sub_8062828
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldrb r2, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080627BE
+ ldr r0, =gUnknown_020244B4
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, =sub_8073C30
+ str r1, [r0]
+_080627BE:
+ ldr r0, [r3]
+ ldr r2, [r0, 0x8]
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =nullsub_26
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80626FC
+
+ thumb_func_start sub_806280C
+sub_806280C: @ 806280C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_805DFE4
+ adds r0, r4, 0
+ bl obj_free_rotscale_entry
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806280C
+
+ thumb_func_start sub_8062828
+sub_8062828: @ 8062828
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, =gActiveBank
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, =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 _0806286C
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0806286C
+ movs r0, 0x80
+ lsls r0, 8
+ ands r1, r0
+ cmp r1, 0
+ beq _080628A0
+_0806286C:
+ ldr r0, =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_80613DC
+ b _080628E0
+ .pool
+_080628A0:
+ ldr r4, =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, =gBattlePartyID
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_80613DC
+ 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_80613DC
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_080628E0:
+ ldr r1, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805F560
+ 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
+ .pool
+ thumb_func_end sub_8062828
+
+ thumb_func_start dp01t_30_7_0803D67C
+dp01t_30_7_0803D67C: @ 8062918
+ push {r4-r7,lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08062948
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08062948
+ bl dp01_tbl7_exec_completed
+ b _08062A12
+ .pool
+_08062948:
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, =gBattleBufferA
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _080629B4
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 27
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bhi _080629AC
+ adds r0, 0x1
+ movs r1, 0xF
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x1F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _08062A12
+ .pool
+_080629AC:
+ movs r0, 0x1F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_080629B4:
+ adds r5, r7, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, =gUnknown_02023068
+ 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_80735DC
+ ldr r2, =gUnknown_020244B4
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r3, 0
+ strb r0, [r1]
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r3, [r0, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08062A06
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08062A06:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r7]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =bx_0803D790_t7
+ str r0, [r1]
+_08062A12:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_30_7_0803D67C
+
+ thumb_func_start bx_0803D790_t7
+bx_0803D790_t7: @ 8062A2C
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08062A64
+ ldr r0, [r4]
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x5]
+ bl dp01_tbl7_exec_completed
+_08062A64:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_0803D790_t7
+
+ thumb_func_start sub_8062A74
+sub_8062A74: @ 8062A74
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ ldr r1, [r1, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08062AA6
+ ldr r2, =gTasks
+ ldr r0, =gUnknown_020244B4
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, =sub_8073C30
+ str r1, [r0]
+_08062AA6:
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062A74
+
+ thumb_func_start sub_8062AC4
+sub_8062AC4: @ 8062AC4
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062AC4
+
+ thumb_func_start sub_8062AD0
+sub_8062AD0: @ 8062AD0
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl sub_80A6A90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08062B16
+ ldr r3, =gSprites
+ ldr r0, =gBankSpriteIds
+ 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, =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_805E408
+_08062B16:
+ bl dp01_tbl7_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062AD0
+
+ thumb_func_start dp01t_34_7_move_anim_start_t3
+dp01t_34_7_move_anim_start_t3: @ 8062B30
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08062B88
+ ldr r5, =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 _08062B7C
+ bl dp01_tbl7_exec_completed
+ b _08062B88
+ .pool
+_08062B7C:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =bx_803B0F4
+ str r0, [r1]
+_08062B88:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_34_7_move_anim_start_t3
+
+ thumb_func_start sub_8062B98
+sub_8062B98: @ 8062B98
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062B98
+
+ thumb_func_start sub_8062BA4
+sub_8062BA4: @ 8062BA4
+ push {lr}
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8062BA4
+
+ thumb_func_start sub_8062BB0
+sub_8062BB0: @ 8062BB0
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08062BDA
+ ldr r2, =gMain
+ ldr r0, =0x00000439
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, =gUnknown_03005D00
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08062BDA:
+ bl dp01_tbl7_exec_completed
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8062BB0
+
+ thumb_func_start nullsub_91
+nullsub_91: @ 8062BF4
+ bx lr
+ thumb_func_end nullsub_91
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
new file mode 100644
index 000000000..37ecb62de
--- /dev/null
+++ b/asm/battle_controller_player.s
@@ -0,0 +1,10419 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start nullsub_21
+nullsub_21: @ 8057458
+ bx lr
+ thumb_func_end nullsub_21
+
+ thumb_func_start SetBankFuncToPlayerBufferRunCommand
+SetBankFuncToPlayerBufferRunCommand: @ 805745C
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =PlayerBufferRunCommand
+ str r1, [r0]
+ ldr r0, =gDoingBattleAnim
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, =gUnknown_020244CC
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end SetBankFuncToPlayerBufferRunCommand
+
+ thumb_func_start PlayerBufferExecCompleted
+PlayerBufferExecCompleted: @ 805748C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gBattleBankFunc
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =PlayerBufferRunCommand
+ str r1, [r0]
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080574E0
+ bl link_get_multiplayer_id
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl PrepareBufferDataTransferLink
+ ldr r1, =gBattleBufferA
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _080574F2
+ .pool
+_080574E0:
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_080574F2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end PlayerBufferExecCompleted
+
+ thumb_func_start PlayerBufferRunCommand
+PlayerBufferRunCommand: @ 8057504
+ push {lr}
+ ldr r2, =gBattleExecBuffer
+ ldr r1, =gBitTable
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08057550
+ ldr r0, =gBattleBufferA
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0805754C
+ ldr r0, =gPlayerBufferCommands
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _08057550
+ .pool
+_0805754C:
+ bl PlayerBufferExecCompleted
+_08057550:
+ pop {r0}
+ bx r0
+ thumb_func_end PlayerBufferRunCommand
+
+ thumb_func_start bx_0802E404
+bx_0802E404: @ 8057554
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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 _08057576
+ bl PlayerBufferExecCompleted
+_08057576:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_0802E404
+
+ thumb_func_start sub_8057588
+sub_8057588: @ 8057588
+ push {r4-r7,lr}
+ ldr r3, =gBattleBufferA
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 9
+ adds r1, r3, 0x2
+ adds r1, r2, r1
+ ldrb r5, [r1]
+ adds r3, 0x3
+ adds r2, r3
+ 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, =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _080575EC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x2
+ bne _080575EC
+ ldr r1, =gUnknown_020244CC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080575F0
+ .pool
+_080575EC:
+ ldr r1, =gUnknown_020244CC
+ movs r0, 0
+_080575F0:
+ strb r0, [r1]
+ ldr r0, =gMain
+ ldrh r2, [r0, 0x2E]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08057658
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, =gUnknown_020244AC
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08057640
+ cmp r0, 0x1
+ bgt _08057630
+ cmp r0, 0
+ beq _0805763A
+ b _080577C2
+ .pool
+_08057630:
+ cmp r0, 0x2
+ beq _08057646
+ cmp r0, 0x3
+ beq _0805764C
+ b _080577C2
+_0805763A:
+ movs r0, 0x1
+ movs r1, 0
+ b _080577BC
+_08057640:
+ movs r0, 0x1
+ movs r1, 0x1
+ b _080577BC
+_08057646:
+ movs r0, 0x1
+ movs r1, 0x2
+ b _080577BC
+_0805764C:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _080577C2
+_08057658:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08057698
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08057674
+ b _080577E8
+_08057674:
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _08057732
+ .pool
+_08057698:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080576D8
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080576B4
+ b _080577E8
+_080576B4:
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _08057732
+ .pool
+_080576D8:
+ movs r7, 0x40
+ adds r0, r7, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08057700
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080577E8
+ b _0805771A
+ .pool
+_08057700:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _0805774C
+ ldr r5, =gUnknown_020244AC
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080577E8
+_0805771A:
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8059CF8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_08057732:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8059CB4
+ b _080577E8
+ .pool
+_0805774C:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _0805775A
+ ldrb r0, [r1]
+ cmp r0, 0x3B
+ bls _080577DC
+_0805775A:
+ ldr r4, =gBattleTypeFlags
+ ldr r0, [r4]
+ ands r0, r3
+ cmp r0, 0
+ beq _080577E8
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080577E8
+ movs r0, 0
+ bl GetBankByPlayerAI
+ ldr r1, =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080577E8
+ ldr r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080577E8
+ ldr r0, =gBattleBufferA
+ ldrb r1, [r6]
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _080577B2
+ cmp r5, 0xC
+ bhi _080577E8
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl bag_add_item
+_080577B2:
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ movs r1, 0xC
+_080577BC:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080577C2:
+ bl PlayerBufferExecCompleted
+ b _080577E8
+ .pool
+_080577DC:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080577E8
+ bl sub_8073314
+_080577E8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8057588
+
+ thumb_func_start sub_80577F0
+sub_80577F0: @ 80577F0
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057824
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80577F0
+
+ thumb_func_start sub_8057824
+sub_8057824: @ 8057824
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0831C5F8
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, =gUnknown_03005D74
+ ldrb r0, [r0]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ movs r4, 0
+ ldr r0, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08057866
+_0805784A:
+ ldr r0, =gUnknown_03005D74
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0805785C
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl dp11b_obj_free
+_0805785C:
+ adds r4, 0x1
+ ldr r0, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0805784A
+_08057866:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _0805789C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x2
+ bne _0805789C
+ ldr r1, =gUnknown_020244CC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080578A0
+ .pool
+_0805789C:
+ ldr r1, =gUnknown_020244CC
+ movs r0, 0
+_080578A0:
+ strb r0, [r1]
+ ldrh r2, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08057910
+ movs r0, 0x5
+ bl audio_play
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r4, =gUnknown_03005D74
+ 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, =sub_8039B2C
+ str r1, [r0]
+ ldr r1, =gUnknown_020244B0
+ ldr r0, =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 _08057BC8
+ .pool
+_08057910:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _0805791E
+ ldrb r0, [r1]
+ cmp r0, 0x3B
+ bls _0805798C
+_0805791E:
+ movs r0, 0x5
+ bl audio_play
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r5, =gUnknown_03005D74
+ 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, =sub_8039B2C
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057BFC
+ 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 _08057BC8
+ .pool
+_0805798C:
+ movs r0, 0x60
+ ands r0, r2
+ cmp r0, 0
+ bne _08057996
+ b _08057AB0
+_08057996:
+ movs r0, 0x5
+ bl audio_play
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r3, =gUnknown_03005D74
+ 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, =sub_8039B2C
+ str r1, [r0]
+ adds r5, r3, 0
+_080579B8:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _080579E2
+ .pool
+_080579D8:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080579E8
+ mov r2, sp
+ adds r0, r2, r4
+_080579E2:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080579D8
+_080579E8:
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080579F0
+ movs r4, 0x4
+_080579F0:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+ ldr r1, =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080579E8
+ movs r4, 0
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08057A6E
+ cmp r0, 0x1
+ bgt _08057A28
+ cmp r0, 0
+ beq _08057A32
+ b _08057A70
+ .pool
+_08057A28:
+ cmp r0, 0x2
+ beq _08057A32
+ cmp r0, 0x3
+ beq _08057A6E
+ b _08057A70
+_08057A32:
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _08057A6E
+ ldr r1, =gBattlePartyID
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gUnknown_020244B0
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, =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 _08057A70
+_08057A6E:
+ adds r4, 0x1
+_08057A70:
+ ldr r0, =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, =gUnknown_03005D74
+ cmp r1, 0
+ beq _08057A88
+ movs r4, 0
+_08057A88:
+ cmp r4, 0
+ beq _080579B8
+ b _08057BB0
+ .pool
+_08057AB0:
+ movs r0, 0x90
+ ands r0, r2
+ cmp r0, 0
+ bne _08057ABA
+ b _08057BC8
+_08057ABA:
+ movs r0, 0x5
+ bl audio_play
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r3, =gUnknown_03005D74
+ 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, =sub_8039B2C
+ str r1, [r0]
+ adds r5, r3, 0
+_08057ADC:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _08057B06
+ .pool
+_08057AFC:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08057B0C
+ mov r2, sp
+ adds r0, r2, r4
+_08057B06:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08057AFC
+_08057B0C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08057B14
+ movs r4, 0
+_08057B14:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl GetBankByPlayerAI
+ strb r0, [r5]
+ ldr r1, =gNoOfAllBanks
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08057B0C
+ movs r4, 0
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08057B92
+ cmp r0, 0x1
+ bgt _08057B4C
+ cmp r0, 0
+ beq _08057B56
+ b _08057B94
+ .pool
+_08057B4C:
+ cmp r0, 0x2
+ beq _08057B56
+ cmp r0, 0x3
+ beq _08057B92
+ b _08057B94
+_08057B56:
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _08057B92
+ ldr r1, =gBattlePartyID
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gUnknown_020244B0
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, =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 _08057B94
+_08057B92:
+ adds r4, 0x1
+_08057B94:
+ ldr r0, =gAbsentBankFlags
+ ldrb r1, [r0]
+ ldr r2, =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, =gUnknown_03005D74
+ cmp r1, 0
+ beq _08057BAC
+ movs r4, 0
+_08057BAC:
+ cmp r4, 0
+ beq _08057ADC
+_08057BB0:
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ 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, =sub_8039AD8
+ str r1, [r0]
+_08057BC8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8057824
+
+ thumb_func_start sub_8057BFC
+sub_8057BFC: @ 8057BFC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r1, =gUnknown_02023068
+ adds r6, r0, r1
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0xF0
+ ands r0, r1
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _08057C44
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x2
+ bne _08057C44
+ ldr r1, =gUnknown_020244CC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08057C48
+ .pool
+_08057C44:
+ ldr r1, =gUnknown_020244CC
+ movs r0, 0
+_08057C48:
+ strb r0, [r1]
+ ldrh r2, [r2, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _08057C58
+ b _08057E04
+_08057C58:
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, =gUnknown_020244B0
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ cmp r0, 0xAE
+ bne _08057C98
+ ldrb r0, [r6, 0x12]
+ movs r4, 0
+ cmp r0, 0x7
+ beq _08057CA6
+ 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 _08057CA6
+ .pool
+_08057C98:
+ ldr r2, =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x6]
+_08057CA6:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _08057CC4
+ ldr r0, =gUnknown_03005D74
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08057CDE
+ .pool
+_08057CC4:
+ ldr r0, =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, =gUnknown_03005D74
+ strb r0, [r1]
+_08057CDE:
+ ldr r5, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ lsls r2, r3, 9
+ adds r1, r5, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _08057D18
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _08057D5A
+ adds r0, r5, 0x2
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08057D5A
+ movs r0, 0x1
+ add r8, r0
+ b _08057D5A
+ .pool
+_08057D18:
+ movs r0, 0x7D
+ ands r0, r4
+ cmp r0, 0
+ bne _08057D24
+ movs r0, 0x1
+ add r8, r0
+_08057D24:
+ ldr r0, =gUnknown_020244B0
+ adds r0, r3, r0
+ adds r1, r6, 0
+ adds r1, 0x8
+ ldrb r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08057D62
+ movs r0, 0x12
+ ands r0, r4
+ cmp r0, 0
+ bne _08057D5A
+ movs r0, 0
+ bl sub_8069DEC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08057D5A
+ ldrb r0, [r7]
+ bl sub_8069F34
+ ldr r1, =gUnknown_03005D74
+ strb r0, [r1]
+ movs r0, 0
+ mov r8, r0
+_08057D5A:
+ ldr r7, =gActiveBank
+ mov r0, r8
+ cmp r0, 0
+ bne _08057D80
+_08057D62:
+ ldr r1, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r0, =gUnknown_03005D74
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r2, r0
+ b _08057E1C
+ .pool
+_08057D80:
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057824
+ str r1, [r0]
+ movs r0, 0x12
+ ands r4, r0
+ cmp r4, 0
+ beq _08057DA8
+ ldr r1, =gUnknown_03005D74
+ ldrb r0, [r7]
+ b _08057DD8
+ .pool
+_08057DA8:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ ldr r1, =gAbsentBankFlags
+ ldrb r1, [r1]
+ ldr r2, =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08057DD0
+ movs r0, 0x3
+ b _08057DD2
+ .pool
+_08057DD0:
+ movs r0, 0x1
+_08057DD2:
+ bl GetBankByPlayerAI
+ ldr r1, =gUnknown_03005D74
+_08057DD8:
+ strb r0, [r1]
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gUnknown_03005D74
+ 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, =sub_8039AD8
+ b _08057F9C
+ .pool
+_08057E04:
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _08057E14
+ ldrb r0, [r1]
+ cmp r0, 0x3B
+ bls _08057E30
+_08057E14:
+ movs r0, 0x5
+ bl audio_play
+ ldr r2, =0x0000ffff
+_08057E1C:
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl PlayerBufferExecCompleted
+ b _08057F9E
+ .pool
+_08057E30:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08057E60
+ ldr r4, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08057E4A
+ b _08057F9E
+_08057E4A:
+ ldrb r0, [r2]
+ bl battle_menu_cursor_related
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x1
+ eors r0, r2
+ b _08057F08
+ .pool
+_08057E60:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _08057EA4
+ ldr r4, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r3, r0, r4
+ ldrb r2, [r3]
+ movs r6, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08057E7C
+ b _08057F9E
+_08057E7C:
+ ldr r1, =gUnknown_03005D78
+ adds r0, r6, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08057E8A
+ b _08057F9E
+_08057E8A:
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r6
+ b _08057F08
+ .pool
+_08057EA4:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08057ED4
+ ldr r4, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08057F9E
+ ldrb r0, [r2]
+ bl battle_menu_cursor_related
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ b _08057F08
+ .pool
+_08057ED4:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08057F30
+ ldr r4, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r3, r0, r4
+ ldrb r2, [r3]
+ movs r5, 0x2
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _08057F9E
+ ldr r1, =gUnknown_03005D78
+ adds r0, r5, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08057F9E
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r5
+_08057F08:
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+ bl sub_8059B3C
+ bl sub_8059BB0
+ b _08057F9E
+ .pool
+_08057F30:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _08057F9E
+ ldr r0, =gUnknown_03005D78
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _08057F9E
+ ldr r0, =gBattleTypeFlags
+ ldr r5, [r0]
+ ands r5, r6
+ cmp r5, 0
+ bne _08057F9E
+ ldr r4, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x1D
+ bl battle_menu_cursor_related_2
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08057F78
+ ldr r0, =gUnknown_03005D74
+ strb r5, [r0]
+ b _08057F80
+ .pool
+_08057F78:
+ ldr r1, =gUnknown_03005D74
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_08057F80:
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ bl battle_menu_cursor_related_2
+ ldr r0, =gUnknown_085CCACA
+ movs r1, 0xB
+ bl battle_show_message_maybe
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8058138
+_08057F9C:
+ str r1, [r0]
+_08057F9E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8057BFC
+
+ thumb_func_start sub_8057FBC
+sub_8057FBC: @ 8057FBC
+ push {r4-r7,lr}
+ movs r7, 0
+ ldr r4, =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08057FD6
+ movs r0, 0x5
+ bl audio_play
+ movs r7, 0x1
+_08057FD6:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08057FF8
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, =gUnknown_02022E14
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E16
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r7, 0xFF
+_08057FF8:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08058038
+ ldr r5, =gUnknown_020244B0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r2, r0, r5
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08058038
+ ldrb r0, [r2]
+ bl battle_menu_cursor_related
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ eors r0, r2
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+_08058038:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08058086
+ ldr r5, =gUnknown_020244B0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r3, r0, r5
+ ldrb r2, [r3]
+ movs r6, 0x1
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _08058086
+ ldr r1, =gUnknown_03005D78
+ adds r0, r6, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08058086
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ eors r0, r6
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+_08058086:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080580C8
+ ldr r5, =gUnknown_020244B0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r2, r0, r5
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080580C8
+ ldrb r0, [r2]
+ bl battle_menu_cursor_related
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+_080580C8:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08058116
+ ldr r5, =gUnknown_020244B0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r3, r0, r5
+ ldrb r2, [r3]
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _08058116
+ ldr r1, =gUnknown_03005D78
+ adds r0, r6, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08058116
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ eors r0, r6
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+_08058116:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8057FBC
+
+ thumb_func_start sub_8058138
+sub_8058138: @ 8058138
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x5
+ ands r0, r1
+ cmp r0, 0
+ bne _08058152
+ b _08058500
+_08058152:
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, =gUnknown_020244B0
+ mov r10, r0
+ ldr r1, =gActiveBank
+ mov r8, r1
+ ldrb r1, [r1]
+ adds r2, r1, r0
+ ldr r5, =gUnknown_03005D74
+ ldrb r0, [r2]
+ ldrb r3, [r5]
+ cmp r0, r3
+ bne _08058170
+ b _080584A8
+_08058170:
+ lsls r1, 9
+ ldr r0, =gUnknown_02023068
+ 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, =gDisableStructs
+ adds r6, r0, r2
+ ldrb r4, [r6, 0x18]
+ lsls r3, r4, 24
+ lsrs r2, r3, 28
+ ldr r0, =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 _0805822A
+ 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, =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]
+_0805822A:
+ bl sub_8059AAC
+ movs r6, 0
+ mov r12, r7
+ mov r5, sp
+ adds r5, 0x18
+ str r5, [sp, 0x1C]
+ ldr r2, =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
+_0805824E:
+ mov r1, sp
+ adds r3, r1, r6
+ 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 _0805824E
+ ldr r1, =gUnknown_020244B0
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ add r0, sp
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x1C]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r3, sp
+ adds r2, r3, r0
+ ldr r1, =gUnknown_03005D74
+ ldrb r0, [r1]
+ add r0, sp
+ ldrb r0, [r0]
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r0, [r1]
+ mov r5, sp
+ adds r1, r5, r0
+ ldr r2, [sp, 0x1C]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ strb r3, [r2]
+ movs r6, 0
+ ldr r2, [sp, 0x1C]
+_0805829E:
+ mov r3, sp
+ adds r0, r3, r6
+ 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 _0805829E
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x3B
+ ldr r5, [sp, 0x1C]
+ ldrb r1, [r5]
+ strb r1, [r0]
+ movs r6, 0
+ adds r4, r7, 0
+ movs r3, 0x58
+ movs r0, 0x24
+ add r0, r10
+ mov r8, r0
+ mov r2, r9
+ mov r7, r10
+ adds r7, 0xC
+ mov r5, r12
+_080582D8:
+ 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 _080582D8
+ ldr r2, =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 _0805831A
+ b _080584A8
+_0805831A:
+ movs r6, 0
+ mov r1, sp
+ adds r1, 0x4
+ str r1, [sp, 0x20]
+ add r3, sp, 0xC
+ mov r10, r3
+ ldr r5, =gBattlePartyID
+ mov r9, r5
+ mov r8, r2
+ movs r7, 0x64
+ ldr r5, =gPlayerParty
+ adds r4, r1, 0
+_08058332:
+ 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 _08058332
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ ldr r5, [sp, 0x1C]
+ strb r0, [r5]
+ movs r6, 0
+ movs r5, 0x3
+ ldr r4, [sp, 0x1C]
+_08058392:
+ mov r0, sp
+ adds r3, r0, r6
+ 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 _08058392
+ ldr r4, =gUnknown_020244B0
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r2, [sp, 0x20]
+ adds r1, r2, r1
+ ldrh r6, [r1]
+ ldr r2, =gUnknown_03005D74
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ movs r5, 0
+ strh r0, [r1]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r1, [sp, 0x20]
+ 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
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r3, sp
+ adds r1, r3, r0
+ ldrb r0, [r2]
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ adds r1, r3, r0
+ ldr r2, [sp, 0x1C]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ strb r5, [r2]
+ movs r6, 0
+ ldr r2, [sp, 0x1C]
+_0805841E:
+ mov r3, sp
+ adds r0, r3, r6
+ 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 _0805841E
+ movs r6, 0
+ ldr r5, =gBattlePartyID
+ mov r10, r5
+ ldr r0, =gActiveBank
+ mov r9, r0
+ movs r1, 0x64
+ mov r8, r1
+ ldr r7, =gPlayerParty
+ ldr r5, [sp, 0x20]
+ adds r5, 0x8
+ ldr r4, [sp, 0x20]
+_0805844A:
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r2, r4, 0
+ bl SetMonData
+ 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, 0x11
+ adds r2, r5, 0
+ bl SetMonData
+ adds r5, 0x1
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0805844A
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+_080584A8:
+ ldr r1, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057BFC
+ str r1, [r0]
+ ldr r3, =gUnknown_020244B0
+ ldrb r0, [r2]
+ adds r0, r3
+ ldr r1, =gUnknown_03005D74
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+ b _08058532
+ .pool
+_08058500:
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _08058554
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, =gUnknown_03005D74
+ ldrb r0, [r0]
+ bl battle_menu_cursor_related
+ ldr r1, =gUnknown_020244B0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057BFC
+ str r1, [r0]
+_08058532:
+ bl sub_8059B18
+ bl sub_8059B3C
+ bl sub_8059BB0
+ b _080586E8
+ .pool
+_08058554:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080585A4
+ ldr r3, =gUnknown_03005D74
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0805856A
+ b _080586E8
+_0805856A:
+ ldr r0, =gUnknown_020244B0
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _08058590
+_08058578:
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl battle_menu_cursor_related_2
+ b _08058596
+ .pool
+_08058590:
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+_08058596:
+ ldr r4, =gUnknown_03005D74
+ ldrb r0, [r4]
+ movs r1, 0x1
+ b _0805862C
+ .pool
+_080585A4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080585E8
+ ldr r3, =gUnknown_03005D74
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080585BA
+ b _080586E8
+_080585BA:
+ ldr r1, =gUnknown_03005D78
+ movs r0, 0x1
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080585C8
+ b _080586E8
+_080585C8:
+ ldr r0, =gUnknown_020244B0
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ beq _08058578
+ b _08058590
+ .pool
+_080585E8:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0805865C
+ ldr r3, =gUnknown_03005D74
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080586E8
+ ldr r0, =gUnknown_020244B0
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _08058620
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl battle_menu_cursor_related_2
+ b _08058626
+ .pool
+_08058620:
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+_08058626:
+ ldr r4, =gUnknown_03005D74
+ ldrb r0, [r4]
+ movs r1, 0x2
+_0805862C:
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, =gUnknown_020244B0
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _080586CA
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl battle_menu_cursor_related_2
+ b _080586E8
+ .pool
+_0805865C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080586E8
+ ldr r3, =gUnknown_03005D74
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _080586E8
+ ldr r1, =gUnknown_03005D78
+ movs r0, 0x2
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080586E8
+ ldr r0, =gUnknown_020244B0
+ ldr r1, =gActiveBank
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _080586A4
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl battle_menu_cursor_related_2
+ b _080586AA
+ .pool
+_080586A4:
+ ldrb r0, [r3]
+ bl battle_menu_cursor_related
+_080586AA:
+ ldr r4, =gUnknown_03005D74
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, =gUnknown_020244B0
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080586E0
+_080586CA:
+ adds r0, r1, 0
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+ b _080586E8
+ .pool
+_080586E0:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl battle_menu_cursor_related_2
+_080586E8:
+ 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 sub_8058138
+
+ thumb_func_start sub_80586F8
+sub_80586F8: @ 80586F8
+ push {lr}
+ ldr r0, =gLinkVSyncDisabled
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805875C
+ ldr r0, =gUnknown_03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08058798
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, =gMain
+ ldr r0, =0x00000439
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, =gUnknown_03005D00
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, =sub_8038D64
+ bl SetMainCallback2
+ ldr r0, =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08058738
+ bl sub_817E3F4
+_08058738:
+ bl FreeAllWindowBuffers
+ b _08058798
+ .pool
+_0805875C:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058798
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, =gMain
+ ldr r0, =0x00000439
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, =gUnknown_03005D00
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, =sub_8038D64
+ bl SetMainCallback2
+ ldr r0, =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08058794
+ bl sub_817E3F4
+_08058794:
+ bl FreeAllWindowBuffers
+_08058798:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80586F8
+
+ thumb_func_start sub_80587B0
+sub_80587B0: @ 80587B0
+ push {lr}
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08058832
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08058810
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058832
+ ldr r0, =gLinkVSyncDisabled
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080587F0
+ bl sub_800AC34
+ b _080587F4
+ .pool
+_080587F0:
+ bl sub_800ADF8
+_080587F4:
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80586F8
+ str r1, [r0]
+ b _08058832
+ .pool
+_08058810:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, =gMain
+ ldr r0, =0x00000439
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, =gUnknown_03005D00
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08058832:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80587B0
+
+ thumb_func_start sub_8058844
+sub_8058844: @ 8058844
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08058868
+ bl PlayerBufferExecCompleted
+_08058868:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8058844
+
+ thumb_func_start sub_805887C
+sub_805887C: @ 805887C
+ push {lr}
+ ldr r2, =gSprites
+ ldr r1, =gBankSpriteIds
+ ldr r0, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080588A0
+ bl PlayerBufferExecCompleted
+_080588A0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805887C
+
+ thumb_func_start bx_802F7A0
+bx_802F7A0: @ 80588B4
+ push {r4-r6,lr}
+ ldr r6, =gSprites
+ ldr r5, =gBankSpriteIds
+ ldr r4, =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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08058908
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ bl nullsub_25
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl obj_free_rotscale_entry
+ 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
+_08058908:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_802F7A0
+
+ thumb_func_start sub_8058924
+sub_8058924: @ 8058924
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r1, [r4]
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ ldr r2, [r1, 0x4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0805895C
+ ldr r0, [r4]
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ bl PlayerBufferExecCompleted
+_0805895C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8058924
+
+ thumb_func_start sub_805896C
+sub_805896C: @ 805896C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058998
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080589D0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080589D0
+_08058998:
+ ldr r2, =gSprites
+ ldr r1, =gUnknown_03005D70
+ ldr r3, =gActiveBank
+ 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, [r0]
+ ldr r0, =SpriteCallbackDummy
+ mov r10, r3
+ cmp r1, r0
+ bne _08058A0A
+ b _08058A0E
+ .pool
+_080589D0:
+ ldr r3, =gSprites
+ ldr r6, =gUnknown_03005D70
+ ldr r2, =gActiveBank
+ ldrb r4, [r2]
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r3, 0
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r3, [r0]
+ ldr r0, =SpriteCallbackDummy
+ mov r10, r2
+ cmp r3, r0
+ bne _08058A0A
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ cmp r0, r3
+ bne _08058A0A
+ movs r7, 0x1
+_08058A0A:
+ cmp r7, 0
+ beq _08058B08
+_08058A0E:
+ ldr r0, =gUnknown_020244D0
+ mov r9, r0
+ ldr r0, [r0]
+ mov r6, r10
+ ldrb r2, [r6]
+ ldr r3, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r3
+ ldrb r1, [r4, 0x1]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08058B08
+ movs r1, 0x2
+ mov r8, r1
+ mov r1, r8
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08058B08
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ mov r2, r9
+ ldr r0, [r2]
+ ldrb r2, [r6]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ mov r0, r9
+ ldr r2, [r0]
+ ldrb r0, [r6]
+ mov r1, r8
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ mov r1, r9
+ ldr r2, [r1]
+ ldrb r0, [r6]
+ mov r1, r8
+ eors r1, r0
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ ldr r7, =gBattlePartyID
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ bl sub_805E990
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058AE4
+ ldrb r0, [r6]
+ mov r1, r8
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ bl sub_805E990
+_08058AE4:
+ mov r2, r9
+ ldr r0, [r2]
+ mov r2, r10
+ ldrb r1, [r2]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, =gBattleBankFunc
+ mov r2, r10
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8058924
+ str r1, [r0]
+_08058B08:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805896C
+
+ thumb_func_start sub_8058B40
+sub_8058B40: @ 8058B40
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r9, r0
+ mov r8, r0
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r7, =gActiveBank
+ ldrb r2, [r7]
+ ldr r1, [r0, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r5, 0x88
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08058B80
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_08058B80:
+ ldr r1, [r4]
+ ldrb r0, [r7]
+ movs r6, 0x2
+ adds r2, r6, 0
+ eors r2, r0
+ ldr r1, [r1, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08058BB2
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_08058BB2:
+ ldr r0, [r4]
+ ldrb r2, [r7]
+ ldr r3, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r3
+ ldrb r1, [r4]
+ movs r5, 0x8
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08058C82
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08058C82
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08058C68
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058C38
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08058C38
+ ldr r4, =gUnknown_03005D70
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r7]
+ eors r0, r6
+ bl sub_8076918
+ ldrb r0, [r7]
+ eors r0, r6
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80729D0
+_08058C38:
+ ldr r5, =gUnknown_03005D70
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r4]
+ bl sub_8076918
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_80729D0
+_08058C68:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_08058C82:
+ ldr r5, =gUnknown_020244D0
+ ldr r0, [r5]
+ ldr r4, =gActiveBank
+ ldrb r2, [r4]
+ ldr r3, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _08058D32
+ movs r1, 0x2
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08058D32
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08058D32
+ ldr r0, [r5]
+ ldrb r1, [r4]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08058D14
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x42
+ ands r0, r1
+ cmp r0, 0x42
+ bne _08058D08
+ ldr r0, =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _08058D14
+ .pool
+_08058D08:
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08058D14:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r0, 0x1
+ mov r9, r0
+_08058D32:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058D52
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058DAC
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08058DAC
+_08058D52:
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03005D7C
+ ldr r1, =gActiveBank
+ ldrb r4, [r1]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r3, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r3, r0
+ bne _08058E0A
+ ldr r0, =gBankSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r3
+ bne _08058E0A
+ b _08058E06
+ .pool
+_08058DAC:
+ ldr r2, =gSprites
+ ldr r7, =gUnknown_03005D7C
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ adds r0, r3, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r4, r0
+ bne _08058E0A
+ ldr r6, =gBankSpriteIds
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r5, [r0]
+ cmp r5, r4
+ bne _08058E0A
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r4, [r0]
+ cmp r4, r5
+ bne _08058E0A
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _08058E0A
+_08058E06:
+ movs r0, 0x1
+ mov r8, r0
+_08058E0A:
+ mov r0, r9
+ cmp r0, 0
+ beq _08058EAA
+ mov r0, r8
+ cmp r0, 0
+ beq _08058EAA
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08058E48
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08058E48
+ ldr r2, =gUnknown_03005D7C
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+_08058E48:
+ ldr r1, =gUnknown_03005D7C
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r0, [r3]
+ ldrb r2, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r0, [r3]
+ ldrb r2, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805896C
+ str r1, [r0]
+_08058EAA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8058B40
+
+ thumb_func_start sub_8058EDC
+sub_8058EDC: @ 8058EDC
+ push {r4-r6,lr}
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03005D70
+ ldr r6, =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 r4, [r0]
+ ldr r0, =SpriteCallbackDummy
+ cmp r4, r0
+ bne _08058F94
+ ldr r5, =gUnknown_020244D0
+ ldr r0, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08058F94
+ ldr r0, =gBankSpriteIds
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _08058F94
+ adds r0, r3, 0
+ bl sub_805E408
+ ldr r0, [r5]
+ ldrb r2, [r6]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r2, [r6]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, =0x000027f9
+ adds r0, r4, 0
+ bl FreeObjectTilesByTag
+ adds r0, r4, 0
+ bl FreeObjectPaletteByTag
+ ldr r0, [r5]
+ ldrb r2, [r6]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08058F88
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_08058F88:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_8058FC0
+ str r0, [r1]
+_08058F94:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8058EDC
+
+ thumb_func_start sub_8058FC0
+sub_8058FC0: @ 8058FC0
+ push {r4,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805900E
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805900E
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r2, =gBattlePartyID
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, =gPlayerParty
+ adds r0, r2
+ bl sub_805E990
+ bl PlayerBufferExecCompleted
+_0805900E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8058FC0
+
+ thumb_func_start sub_805902C
+sub_805902C: @ 805902C
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r0, 0x4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0805905E
+ ldr r0, =gBattlePartyID
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8172EF0
+_0805905E:
+ ldr r4, =gSprites
+ ldr r0, =gUnknown_03005D7C
+ 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, =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080590D2
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080590D2
+ adds r0, r3, r4
+ bl DestroySprite
+ ldr r4, =gUnknown_03005D70
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ ldrb r0, [r5]
+ bl sub_8076918
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80729D0
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8058EDC
+ str r1, [r0]
+_080590D2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805902C
+
+ thumb_func_start c3_0802FDF4
+c3_0802FDF4: @ 8059100
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80A36C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08059122
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ adds r0, r4, 0
+ bl DestroyTask
+_08059122:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c3_0802FDF4
+
+ thumb_func_start bx_t1_healthbar_update
+bx_t1_healthbar_update: @ 8059130
+ push {r4-r6,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ ldr r6, =gUnknown_03005D70
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8074AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_80729D0
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08059178
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl heathbar_draw_hp
+ b _08059192
+ .pool
+_08059178:
+ ldr r2, =gBattlePartyID
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, =gPlayerParty
+ adds r0, r2
+ bl sub_805E990
+ bl PlayerBufferExecCompleted
+_08059192:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_t1_healthbar_update
+
+ thumb_func_start sub_80591A0
+sub_80591A0: @ 80591A0
+ push {lr}
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _080591B2
+ bl PlayerBufferExecCompleted
+_080591B2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80591A0
+
+ thumb_func_start sub_80591B8
+sub_80591B8: @ 80591B8
+ 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, =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 _080591FE
+ ldr r1, =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r10, r0
+ bne _080591FE
+ b _08059314
+_080591FE:
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ ldr r0, =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, =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, =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 _080592EC
+ adds r0, r6, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r6, 0
+ bl pokemon_calc_effective_stats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ ldr r0, [sp, 0xC]
+ subs r2, r0, r2
+ ldr r4, =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 battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080592D4
+ ldr r2, =gBattlePartyID
+ lsls r0, r7, 1
+ adds r0, r2
+ mov r1, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _080592B2
+ movs r0, 0x2
+ eors r7, r0
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080592D4
+_080592B2:
+ ldr r0, =sub_8059544
+ b _08059316
+ .pool
+_080592D4:
+ ldr r0, =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_805965C
+ b _08059318
+ .pool
+_080592EC:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, =gBattleBankFunc
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, =sub_80591A0
+ str r1, [r0]
+ mov r0, r9
+ bl DestroyTask
+ b _0805931A
+ .pool
+_08059314:
+ ldr r0, =sub_8059330
+_08059316:
+ mov r1, r8
+_08059318:
+ str r0, [r1]
+_0805931A:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80591B8
+
+ thumb_func_start sub_8059330
+sub_8059330: @ 8059330
+ 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, =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, =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, =gExperienceTables
+ lsls r1, r4, 2
+ ldr r2, =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, =gUnknown_03005D70
+ add r0, r10
+ ldrb r1, [r0]
+ mov r0, r9
+ negs r0, r0
+ str r0, [sp]
+ mov r0, r10
+ bl sub_807294C
+ movs r0, 0x21
+ bl audio_play
+ ldr r0, =sub_8059400
+ 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
+ .pool
+ thumb_func_end sub_8059330
+
+ thumb_func_start sub_8059400
+sub_8059400: @ 8059400
+ 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, =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 _08059430
+ adds r0, r1, 0x1
+ strh r0, [r6, 0x1C]
+ b _0805952C
+ .pool
+_08059430:
+ ldrb r0, [r6, 0x8]
+ mov r9, r0
+ ldrh r2, [r6, 0xA]
+ mov r10, r2
+ ldrb r7, [r6, 0xC]
+ ldr r5, =gUnknown_03005D70
+ adds r5, r7, r5
+ ldrb r1, [r5]
+ adds r0, r7, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8074AA0
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ bl sub_80729D0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0805952C
+ movs r0, 0x21
+ bl m4aSongNumStop
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, =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, =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, =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 _08059510
+ adds r0, r5, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl pokemon_calc_effective_stats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ subs r2, r4, r2
+ ldr r4, =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, =sub_8059544
+ str r0, [r6]
+ b _0805952C
+ .pool
+_08059510:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, =gBattleBankFunc
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r1, =sub_80591A0
+ str r1, [r0]
+ mov r0, r8
+ bl DestroyTask
+_0805952C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059400
+
+ thumb_func_start sub_8059544
+sub_8059544: @ 8059544
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =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 _08059578
+ ldr r1, =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 _08059578
+ adds r4, r2, 0
+_08059578:
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl move_anim_start_t4
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_80595A4
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059544
+
+ thumb_func_start sub_80595A4
+sub_80595A4: @ 80595A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r5, [r2, 0xC]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08059646
+ ldrb r4, [r2, 0x8]
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, =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 _08059624
+ ldr r1, =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 _08059624
+ ldr r0, =gUnknown_03005D70
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r1, r7, 0
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+ b _08059638
+ .pool
+_08059624:
+ ldr r0, =gUnknown_03005D70
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r1, 0x64
+ muls r1, r4
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl healthbar_draw_field_maybe
+_08059638:
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_805965C
+ str r0, [r1]
+_08059646:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80595A4
+
+ thumb_func_start sub_805965C
+sub_805965C: @ 805965C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =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, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ ldrb r0, [r4, 0xC]
+ ldr r1, =gBattleBankFunc
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80591A0
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805965C
+
+ thumb_func_start sub_80596A8
+sub_80596A8: @ 80596A8
+ push {r4-r6,lr}
+ ldr r6, =gSprites
+ ldr r5, =gBankSpriteIds
+ ldr r4, =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 _08059724
+ ldr r1, =gBattlePartyID
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl nullsub_24
+ 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 rotscale_free_entry
+ 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, =gUnknown_03005D70
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl PlayerBufferExecCompleted
+_08059724:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80596A8
+
+ thumb_func_start sub_8059744
+sub_8059744: @ 8059744
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08059798
+ ldr r5, =gBankSpriteIds
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl obj_free_rotscale_entry
+ 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, =gUnknown_03005D70
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl PlayerBufferExecCompleted
+_08059798:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059744
+
+ thumb_func_start sub_80597B4
+sub_80597B4: @ 80597B4
+ push {lr}
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _080597C6
+ bl PlayerBufferExecCompleted
+_080597C6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80597B4
+
+ thumb_func_start sub_80597CC
+sub_80597CC: @ 80597CC
+ push {r4,lr}
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0805980A
+ ldr r1, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8059828
+ str r1, [r0]
+ ldr r3, =gTasks
+ ldr r1, =gUnknown_03005D7C
+ 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
+ bl FreeAllWindowBuffers
+ adds r0, r4, 0
+ bl sub_81B89AC
+_0805980A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80597CC
+
+ thumb_func_start sub_8059828
+sub_8059828: @ 8059828
+ push {lr}
+ ldr r0, =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, =sub_8038420
+ cmp r1, r0
+ bne _08059898
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08059898
+ ldr r0, =gUnknown_0203CEE8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08059870
+ ldr r0, =gUnknown_0203CEE9
+ ldrb r1, [r0]
+ ldr r2, =gUnknown_0203CF00
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ b _0805987A
+ .pool
+_08059870:
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+_0805987A:
+ ldr r1, =gBattleBufferA
+ ldr r0, =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 _08059894
+ bl b_link_standby_message
+_08059894:
+ bl PlayerBufferExecCompleted
+_08059898:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059828
+
+ thumb_func_start sub_80598A4
+sub_80598A4: @ 80598A4
+ push {lr}
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080598CC
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80598E0
+ str r1, [r0]
+ bl nullsub_35
+ bl FreeAllWindowBuffers
+ bl sub_81AABB0
+_080598CC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80598A4
+
+ thumb_func_start sub_80598E0
+sub_80598E0: @ 80598E0
+ push {lr}
+ ldr r0, =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, =sub_8038420
+ cmp r1, r0
+ bne _08059906
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08059906
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl PlayerBufferExecCompleted
+_08059906:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80598E0
+
+ thumb_func_start bx_wait_t1
+bx_wait_t1: @ 805991C
+ push {lr}
+ ldr r0, =gDoingBattleAnim
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08059942
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08059946
+_08059942:
+ bl PlayerBufferExecCompleted
+_08059946:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_wait_t1
+
+ thumb_func_start bx_blink_t1
+bx_blink_t1: @ 8059958
+ push {r4,lr}
+ ldr r1, =gBankSpriteIds
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, =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 _080599A4
+ 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, =gDoingBattleAnim
+ strb r3, [r0]
+ bl PlayerBufferExecCompleted
+ b _080599CE
+ .pool
+_080599A4:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080599C8
+ 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]
+_080599C8:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080599CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t1
+
+ thumb_func_start sub_80599D4
+sub_80599D4: @ 80599D4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08059A02
+ ldr r4, =gUnknown_03005D74
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08059A02
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ bl sub_8056BAC
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0
+ bl sub_8056B74
+_08059A02:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08059A2C
+ ldr r4, =gUnknown_03005D74
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08059A2C
+ movs r0, 0x5
+ bl audio_play
+ ldrb r0, [r4]
+ bl sub_8056BAC
+ movs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ bl sub_8056B74
+_08059A2C:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08059A7A
+ str r2, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_8056A3C
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, =gUnknown_03005D74
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08059A6C
+ movs r0, 0x1
+ movs r1, 0xE
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08059A76
+ .pool
+_08059A6C:
+ movs r0, 0x1
+ movs r1, 0xD
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_08059A76:
+ bl PlayerBufferExecCompleted
+_08059A7A:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08059AA0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_8056A3C
+ movs r0, 0x5
+ bl audio_play
+ bl PlayerBufferExecCompleted
+_08059AA0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80599D4
+
+ thumb_func_start sub_8059AAC
+sub_8059AAC: @ 8059AAC
+ push {r4-r7,lr}
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ lsls r1, 9
+ ldr r3, =gUnknown_02023068
+ ldr r2, =gUnknown_03005D78
+ movs r0, 0
+ strb r0, [r2]
+ movs r5, 0
+ ldr r7, =gUnknown_02022E2C
+ adds r4, r1, r3
+ adds r6, r2, 0
+_08059AC4:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl battle_menu_cursor_related
+ ldrh r1, [r4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ adds r0, r7, 0
+ bl StringCopy
+ adds r1, r5, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ bl battle_show_message_maybe
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08059AF4
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+_08059AF4:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08059AC4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059AAC
+
+ thumb_func_start sub_8059B18
+sub_8059B18: @ 8059B18
+ push {r4,lr}
+ ldr r4, =gUnknown_02022E2C
+ ldr r1, =gUnknown_085CCA6F
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl battle_show_message_maybe
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059B18
+
+ thumb_func_start sub_8059B3C
+sub_8059B3C: @ 8059B3C
+ push {r4-r7,lr}
+ ldr r5, =gBattleBufferA
+ ldr r7, =gActiveBank
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08059B98
+ bl sub_814FBAC
+ ldrb r1, [r7]
+ lsls r4, r1, 9
+ adds r0, r5, 0x4
+ adds r4, r0
+ ldr r6, =gUnknown_02022E2C
+ ldr r5, =gUnknown_020244B0
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0x8
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r1, 0xBA
+ strb r1, [r0]
+ adds r0, 0x1
+ ldrb r1, [r7]
+ adds r1, r5
+ adds r4, 0xC
+ ldrb r1, [r1]
+ adds r4, r1
+ ldrb r1, [r4]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ movs r1, 0x9
+ bl battle_show_message_maybe
+_08059B98:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059B3C
+
+ thumb_func_start sub_8059BB0
+sub_8059BB0: @ 8059BB0
+ push {r4-r6,lr}
+ ldr r5, =gActiveBank
+ ldrb r4, [r5]
+ lsls r4, 9
+ ldr r0, =gUnknown_02023068
+ adds r4, r0
+ ldr r6, =gUnknown_02022E2C
+ ldr r1, =gUnknown_085CCA73
+ adds r0, r6, 0
+ bl StringCopy
+ movs r1, 0xFC
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x6
+ strb r1, [r0]
+ adds r0, 0x1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ ldr r3, =gBattleMoves
+ ldr r2, =gUnknown_020244B0
+ ldrb r1, [r5]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r4, r1
+ ldrh r2, [r4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x2]
+ lsls r1, r2, 3
+ subs r1, r2
+ ldr r2, =gTypeNames
+ adds r1, r2
+ bl StringCopy
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl battle_show_message_maybe
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059BB0
+
+ thumb_func_start battle_menu_cursor_related_2
+battle_menu_cursor_related_2: @ 8059C28
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ add r2, sp, 0xC
+ adds r0, r1, 0x1
+ strh r0, [r2]
+ adds r0, r2, 0
+ adds r1, 0x2
+ strh r1, [r0, 0x2]
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r0, 3
+ adds r2, r0
+ adds r2, 0x1
+ movs r0, 0x2
+ ands r3, r0
+ adds r3, 0x37
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ add r1, sp, 0xC
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ thumb_func_end battle_menu_cursor_related_2
+
+ thumb_func_start battle_menu_cursor_related
+battle_menu_cursor_related: @ 8059C70
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ add r0, sp, 0xC
+ ldr r1, =0x00001016
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r0, 3
+ adds r2, r0
+ adds r2, 0x1
+ movs r0, 0x2
+ ands r3, r0
+ adds r3, 0x37
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ add r1, sp, 0xC
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end battle_menu_cursor_related
+
+ thumb_func_start sub_8059CB4
+sub_8059CB4: @ 8059CB4
+ push {r4,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ add r0, sp, 0xC
+ movs r4, 0x1
+ strh r4, [r0]
+ movs r1, 0x2
+ strh r1, [r0, 0x2]
+ adds r0, r3, 0
+ ands r0, r4
+ lsls r2, r0, 3
+ subs r2, r0
+ adds r2, 0x10
+ lsls r2, 24
+ lsrs r2, 24
+ ands r3, r1
+ adds r3, 0x23
+ str r4, [sp]
+ str r1, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ add r1, sp, 0xC
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8059CB4
+
+ thumb_func_start sub_8059CF8
+sub_8059CF8: @ 8059CF8
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ add r0, sp, 0xC
+ ldr r1, =0x00001016
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ movs r1, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r0, 3
+ subs r2, r0
+ adds r2, 0x10
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x2
+ ands r3, r0
+ adds r3, 0x23
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ add r1, sp, 0xC
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059CF8
+
+ thumb_func_start sub_8059D40
+sub_8059D40: @ 8059D40
+ push {lr}
+ ldr r0, =sub_80A92F8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059D40
+
+ thumb_func_start sub_8059D50
+sub_8059D50: @ 8059D50
+ push {lr}
+ ldr r0, =sub_80A92F8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059D50
+
+ thumb_func_start sub_8059D60
+sub_8059D60: @ 8059D60
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08059D82
+ bl PlayerBufferExecCompleted
+_08059D82:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8059D60
+
+ thumb_func_start bx_8030B2C
+bx_8030B2C: @ 8059D90
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08059DB2
+ bl PlayerBufferExecCompleted
+_08059DB2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bx_8030B2C
+
+ thumb_func_start b_link_standby_message
+b_link_standby_message: @ 8059DC0
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08059DE0
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r0, =gUnknown_085CCA29
+ movs r1, 0
+ bl battle_show_message_maybe
+_08059DE0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end b_link_standby_message
+
+ thumb_func_start dp01t_00_1_getattr
+dp01t_00_1_getattr: @ 8059DF4
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08059E2C
+ ldr r0, =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 _08059E4E
+ .pool
+_08059E2C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08059E30:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08059E46
+ 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
+_08059E46:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08059E30
+_08059E4E:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl PlayerBufferExecCompleted
+ 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_: @ 8059E68
+ 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, =gBattleBufferA
+ ldr r3, =gActiveBank
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _08059E92
+ bl _0805A5FE
+_08059E92:
+ lsls r0, 2
+ ldr r1, =_08059EA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08059EA8:
+ .4byte _08059F98
+ .4byte _0805A1BC
+ .4byte _0805A1CC
+ .4byte _0805A1DC
+ .4byte _0805A244
+ .4byte _0805A244
+ .4byte _0805A244
+ .4byte _0805A244
+ .4byte _0805A260
+ .4byte _0805A29C
+ .4byte _0805A29C
+ .4byte _0805A29C
+ .4byte _0805A29C
+ .4byte _0805A5FE
+ .4byte _0805A5FE
+ .4byte _0805A5FE
+ .4byte _0805A5FE
+ .4byte _0805A2B8
+ .4byte _0805A2C8
+ .4byte _0805A2F8
+ .4byte _0805A308
+ .4byte _0805A318
+ .4byte _0805A328
+ .4byte _0805A338
+ .4byte _0805A348
+ .4byte _0805A358
+ .4byte _0805A368
+ .4byte _0805A378
+ .4byte _0805A388
+ .4byte _0805A398
+ .4byte _0805A3A8
+ .4byte _0805A3B8
+ .4byte _0805A408
+ .4byte _0805A418
+ .4byte _0805A428
+ .4byte _0805A438
+ .4byte _0805A448
+ .4byte _0805A458
+ .4byte _0805A468
+ .4byte _0805A478
+ .4byte _0805A488
+ .4byte _0805A4BC
+ .4byte _0805A4CC
+ .4byte _0805A4DC
+ .4byte _0805A4EC
+ .4byte _0805A4FC
+ .4byte _0805A50C
+ .4byte _0805A51C
+ .4byte _0805A52C
+ .4byte _0805A54C
+ .4byte _0805A55C
+ .4byte _0805A56C
+ .4byte _0805A57C
+ .4byte _0805A58C
+ .4byte _0805A59C
+ .4byte _0805A5AC
+ .4byte _0805A5BC
+ .4byte _0805A5CC
+ .4byte _0805A5DC
+ .4byte _0805A5EC
+_08059F98:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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
+_08059FE4:
+ 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 _08059FE4
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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, =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, =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, =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
+_0805A19C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _0805A19C
+ b _0805A5FE
+ .pool
+_0805A1BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ b _0805A536
+ .pool
+_0805A1CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ b _0805A536
+ .pool
+_0805A1DC:
+ 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, =gPlayerParty
+ adds r4, r1, r0
+ mov r8, r9
+_0805A1F2:
+ 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 _0805A1F2
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_0805A230:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _0805A230
+ b _0805A5FE
+ .pool
+_0805A244:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0805A536
+ .pool
+_0805A260:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, =gPlayerParty
+ mov r8, r2
+_0805A26C:
+ 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 _0805A26C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0805A5FE
+ .pool
+_0805A29C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0805A5F6
+ .pool
+_0805A2B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0805A2D2
+ .pool
+_0805A2C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x19
+_0805A2D2:
+ 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 _0805A5FE
+ .pool
+_0805A2F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0805A5F6
+ .pool
+_0805A308:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0805A5F6
+ .pool
+_0805A318:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0805A5F6
+ .pool
+_0805A328:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0805A5F6
+ .pool
+_0805A338:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0805A5F6
+ .pool
+_0805A348:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0805A5F6
+ .pool
+_0805A358:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0805A5F6
+ .pool
+_0805A368:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0805A5F6
+ .pool
+_0805A378:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0805A5F6
+ .pool
+_0805A388:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0805A5F6
+ .pool
+_0805A398:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0805A5F6
+ .pool
+_0805A3A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0805A5F6
+ .pool
+_0805A3B8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _0805A5FE
+ .pool
+_0805A408:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0805A5F6
+ .pool
+_0805A418:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0805A5F6
+ .pool
+_0805A428:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0805A5F6
+ .pool
+_0805A438:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0805A5F6
+ .pool
+_0805A448:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0805A5F6
+ .pool
+_0805A458:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0805A5F6
+ .pool
+_0805A468:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ b _0805A492
+ .pool
+_0805A478:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x9
+ b _0805A536
+ .pool
+_0805A488:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x37
+_0805A492:
+ 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 _0805A5FE
+ .pool
+_0805A4BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0805A5F6
+ .pool
+_0805A4CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ b _0805A536
+ .pool
+_0805A4DC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _0805A536
+ .pool
+_0805A4EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _0805A536
+ .pool
+_0805A4FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _0805A536
+ .pool
+_0805A50C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _0805A536
+ .pool
+_0805A51C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _0805A536
+ .pool
+_0805A52C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3F
+_0805A536:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0805A5FE
+ .pool
+_0805A54C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0805A5F6
+ .pool
+_0805A55C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0805A5F6
+ .pool
+_0805A56C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0805A5F6
+ .pool
+_0805A57C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0805A5F6
+ .pool
+_0805A58C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0805A5F6
+ .pool
+_0805A59C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0805A5F6
+ .pool
+_0805A5AC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0805A5F6
+ .pool
+_0805A5BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0805A5F6
+ .pool
+_0805A5CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0805A5F6
+ .pool
+_0805A5DC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0805A5F6
+ .pool
+_0805A5EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x36
+_0805A5F6:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0805A5FE:
+ 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
+ .pool
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
+
+ thumb_func_start sub_805A614
+sub_805A614: @ 805A614
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, =gBattlePartyID
+ ldr r5, =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, =gBattleBufferA
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, =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 _0805A66A
+ adds r3, r0, 0
+_0805A650:
+ 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 _0805A650
+_0805A66A:
+ 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 PlayerBufferExecCompleted
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805A614
+
+ thumb_func_start dp01t_02_1_setattr
+dp01t_02_1_setattr: @ 805A69C
+ push {r4,r5,lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0805A6CC
+ ldr r0, =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl dp01_setattr_by_ch1_for_player_pokemon
+ b _0805A6EA
+ .pool
+_0805A6CC:
+ ldrb r4, [r1]
+ movs r5, 0
+_0805A6D0:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0805A6DE
+ adds r0, r5, 0
+ bl dp01_setattr_by_ch1_for_player_pokemon
+_0805A6DE:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0805A6D0
+_0805A6EA:
+ bl PlayerBufferExecCompleted
+ 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: @ 805A6F4
+ 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, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, =gUnknown_02023067
+ 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 _0805A720
+ bl _0805B0BA
+_0805A720:
+ lsls r0, 2
+ ldr r1, =_0805A738
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0805A738:
+ .4byte _0805A828
+ .4byte _0805A9C0
+ .4byte _0805A9E0
+ .4byte _0805AA00
+ .4byte _0805AA58
+ .4byte _0805AA58
+ .4byte _0805AA58
+ .4byte _0805AA58
+ .4byte _0805AA80
+ .4byte _0805AAE4
+ .4byte _0805AAE4
+ .4byte _0805AAE4
+ .4byte _0805AAE4
+ .4byte _0805B0BA
+ .4byte _0805B0BA
+ .4byte _0805B0BA
+ .4byte _0805B0BA
+ .4byte _0805AB14
+ .4byte _0805AB34
+ .4byte _0805AB54
+ .4byte _0805AB74
+ .4byte _0805AB94
+ .4byte _0805ABB4
+ .4byte _0805ABD4
+ .4byte _0805ABF4
+ .4byte _0805AC14
+ .4byte _0805AC34
+ .4byte _0805AC54
+ .4byte _0805AC74
+ .4byte _0805AC94
+ .4byte _0805ACB4
+ .4byte _0805ACD4
+ .4byte _0805AD44
+ .4byte _0805AD64
+ .4byte _0805AD84
+ .4byte _0805ADA4
+ .4byte _0805ADC4
+ .4byte _0805ADE4
+ .4byte _0805AE04
+ .4byte _0805AE24
+ .4byte _0805AE44
+ .4byte _0805AE64
+ .4byte _0805AE84
+ .4byte _0805AEA4
+ .4byte _0805AEC4
+ .4byte _0805AEE4
+ .4byte _0805AF04
+ .4byte _0805AF24
+ .4byte _0805AF44
+ .4byte _0805AF64
+ .4byte _0805AF84
+ .4byte _0805AFA4
+ .4byte _0805AFC4
+ .4byte _0805AFE4
+ .4byte _0805B004
+ .4byte _0805B024
+ .4byte _0805B044
+ .4byte _0805B064
+ .4byte _0805B084
+ .4byte _0805B0A4
+_0805A828:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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
+_0805A88E:
+ 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 _0805A88E
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =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 _0805B0BA
+ .pool
+_0805A9C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805A9E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AA00:
+ 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, =gPlayerParty
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_0805AA1A:
+ 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 _0805AA1A
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AA58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r3, =gBattleBufferA
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0805AAFC
+ .pool
+_0805AA80:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ ldr r5, =gActiveBank
+ 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 _0805B0BA
+ .pool
+_0805AAE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r3, =gBattleBufferA
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0805AAFC:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AB14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AB34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AB54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AB74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AB94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ABB4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ABD4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ABF4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AC14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AC34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AC54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AC74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AC94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ACB4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ACD4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ ldr r5, =gActiveBank
+ 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 _0805ADF4
+ .pool
+_0805AD44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AD64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AD84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ADA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ADC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805ADE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_0805ADF4:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AE04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AE24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AE44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AE64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AE84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AEA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AEC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AEE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AF04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AF24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AF44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AF64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AF84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AFA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AFC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805AFE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805B004:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805B024:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805B044:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805B064:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805B084:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _0805B0BA
+ .pool
+_0805B0A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gActiveBank
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_0805B0BA:
+ ldr r2, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, =gPlayerParty
+ adds r0, r2
+ bl sub_805E990
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
+
+ thumb_func_start sub_805B0F0
+sub_805B0F0: @ 805B0F0
+ push {r4-r7,lr}
+ ldr r1, =gBattlePartyID
+ ldr r7, =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, =gBattleBufferA
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, =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 _0805B148
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0805B126:
+ 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 _0805B126
+_0805B148:
+ bl PlayerBufferExecCompleted
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B0F0
+
+ thumb_func_start sub_805B164
+sub_805B164: @ 805B164
+ push {r4,lr}
+ ldr r2, =gBattlePartyID
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, =gPlayerParty
+ adds r0, r2
+ bl sub_805DD7C
+ ldr r2, =gSprites
+ ldr r0, =gBankSpriteIds
+ 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, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_0802E404
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B164
+
+ thumb_func_start sub_805B1CC
+sub_805B1CC: @ 805B1CC
+ push {r4-r6,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ ldr r4, =gBattleBufferA
+ lsls r1, r0, 9
+ adds r6, r4, 0x2
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_805EF84
+ ldr r2, =gBattlePartyID
+ 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, =gPlayerParty
+ adds r0, r2
+ bl sub_805DD7C
+ ldr r1, =gUnknown_020244AC
+ ldrb r0, [r5]
+ adds r0, r1
+ strb r4, [r0]
+ ldr r1, =gUnknown_020244B0
+ ldrb r0, [r5]
+ adds r0, r1
+ strb r4, [r0]
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_805B258
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805902C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B1CC
+
+ thumb_func_start sub_805B258
+sub_805B258: @ 805B258
+ 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_805EF84
+ ldr r0, =gBattlePartyID
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, =gBattleBufferA
+ 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, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =sub_805D714
+ bl CreateInvisibleSpriteWithCallback
+ ldr r1, =gUnknown_03005D7C
+ mov r9, r1
+ add r9, r6
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_806A068
+ ldr r0, =gUnknown_0202499C
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_80A5C6C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_80A6138
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_80A82E4
+ 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, =gBankSpriteIds
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, =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]
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ 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, =gUnknown_020244E4
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartObjectImageAnim
+ 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, =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_80753E8
+ 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
+ .pool
+ thumb_func_end sub_805B258
+
+ thumb_func_start sub_805B3D4
+sub_805B3D4: @ 805B3D4
+ push {r4-r6,lr}
+ ldr r1, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0805B41C
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805B464
+ str r1, [r0]
+ b _0805B452
+ .pool
+_0805B41C:
+ ldr r5, =gBankSpriteIds
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl obj_free_rotscale_entry
+ 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, =gUnknown_03005D70
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8072984
+ bl PlayerBufferExecCompleted
+_0805B452:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B3D4
+
+ thumb_func_start sub_805B464
+sub_805B464: @ 805B464
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r4, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r1, [r4, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0805B48C
+ cmp r0, 0x1
+ beq _0805B4BA
+ b _0805B4E2
+ .pool
+_0805B48C:
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0805B4A6
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0805B4A6:
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ b _0805B4E2
+_0805B4BA:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0805B4E2
+ 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, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8059744
+ str r1, [r0]
+_0805B4E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B464
+
+ thumb_func_start sub_805B4F0
+sub_805B4F0: @ 805B4F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0805B5B4
+ bl link_get_multiplayer_id
+ ldr r5, =gUnknown_020229E8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r4, 0xFF
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0805B538
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x5
+ bne _0805B558
+_0805B538:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x13]
+ adds r4, r0, 0x2
+ b _0805B5BA
+ .pool
+_0805B558:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _0805B58A
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1]
+ ands r4, r0
+ cmp r4, 0x1
+ bne _0805B5A0
+_0805B58A:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x13]
+ adds r4, r0, 0x4
+ b _0805B5BA
+_0805B5A0:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r4, [r1, 0x13]
+ b _0805B5BA
+_0805B5B4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x8]
+_0805B5BA:
+ ldr r0, =gBattleTypeFlags
+ ldr r1, [r0]
+ movs r2, 0x40
+ ands r1, r2
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0805B63C
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ movs r1, 0x2
+ ands r1, r0
+ movs r0, 0x20
+ mov r9, r0
+ cmp r1, 0
+ beq _0805B5E0
+ movs r1, 0x5A
+ mov r9, r1
+_0805B5E0:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _0805B618
+ ldr r0, =gUnknown_02038BCE
+ ldrh r1, [r0]
+ ldr r0, =0x00000c03
+ cmp r1, r0
+ beq _0805B618
+ movs r0, 0x5A
+ mov r9, r0
+ ldr r1, =gUnknown_083054E0
+ b _0805B642
+ .pool
+_0805B618:
+ ldr r1, =gUnknown_08305D2C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ subs r0, r1
+ lsls r0, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r0, r1
+ lsrs r7, r0, 16
+ ldr r5, =gBattleTypeFlags
+ b _0805B656
+ .pool
+_0805B63C:
+ movs r0, 0x50
+ mov r9, r0
+ ldr r1, =gUnknown_08305D2C
+_0805B642:
+ lsls r0, r4, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x8
+ subs r0, r1
+ lsls r0, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r0, r1
+ lsrs r7, r0, 16
+_0805B656:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 15
+ ands r0, r1
+ cmp r0, 0
+ bne _0805B664
+ b _0805B794
+_0805B664:
+ ldr r0, =gUnknown_02038BCE
+ ldrh r1, [r0]
+ ldr r0, =0x00000c03
+ cmp r1, r0
+ bne _0805B670
+ b _0805B794
+_0805B670:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ bl sub_806F000
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ ldr r6, =gActiveBank
+ ldrb r1, [r6]
+ adds r0, r5, 0
+ bl sub_805DF38
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806A1C0
+ ldr r0, =gUnknown_0202499C
+ mov r8, r0
+ lsls r4, r7, 16
+ asrs r4, 16
+ ldrb r0, [r6]
+ bl sub_80A82E4
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ mov r1, r9
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, =gBankSpriteIds
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, =gTrainerFrontPicPaletteTable
+ lsls r5, 3
+ adds r5, r0
+ ldrh r0, [r5, 0x4]
+ bl IndexOfSpritePaletteTag
+ ldr r5, =gSprites
+ ldrb r1, [r6]
+ adds r1, r4
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r5
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ ldrb r0, [r6]
+ adds r0, r4
+ 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, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x30
+ strh r1, [r0, 0x26]
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r4
+ 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, =sub_805D7AC
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0805B82A
+ .pool
+_0805B794:
+ ldr r5, =gActiveBank
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_805DF84
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl template_build_for_pokemon_or_trainer
+ ldr r6, =gUnknown_0202499C
+ mov r8, r9
+ lsls r4, r7, 16
+ asrs r4, 16
+ ldrb r0, [r5]
+ bl sub_80A82E4
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r6, =gBankSpriteIds
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, =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, =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, =sub_805D7AC
+ str r1, [r0]
+_0805B82A:
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8058844
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B4F0
+
+ thumb_func_start dp01t_08_1_8032428
+dp01t_08_1_8032428: @ 805B864
+ push {r4-r6,lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0805B920
+ bl link_get_multiplayer_id
+ ldr r5, =gUnknown_020229E8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r4, 0xFF
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ beq _0805B8A6
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x5
+ bne _0805B8C4
+_0805B8A6:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x13]
+ adds r4, r0, 0x2
+ b _0805B926
+ .pool
+_0805B8C4:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _0805B8F6
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1]
+ ands r4, r0
+ cmp r4, 0x1
+ bne _0805B90C
+_0805B8F6:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x13]
+ adds r4, r0, 0x4
+ b _0805B926
+_0805B90C:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r4, [r1, 0x13]
+ b _0805B926
+_0805B920:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x8]
+_0805B926:
+ ldr r5, =gActiveBank
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_805DF84
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl template_build_for_pokemon_or_trainer
+ ldr r0, =gUnknown_0202499C
+ ldr r1, =gUnknown_08305D2C
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4]
+ 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, =gBankSpriteIds
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, =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, =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, =sub_805D7AC
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805887C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_08_1_8032428
+
+ thumb_func_start sub_805B9F8
+sub_805B9F8: @ 805B9F8
+ push {r4-r6,lr}
+ ldr r5, =gBankSpriteIds
+ ldr r6, =gActiveBank
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =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, =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, =sub_80A6EEC
+ 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, =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 StartObjectImageAnim
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_802F7A0
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805B9F8
+
+ thumb_func_start sub_805BAB8
+sub_805BAB8: @ 805BAB8
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_020244D0
+ ldr r4, [r6]
+ ldr r5, =gActiveBank
+ ldrb r2, [r5]
+ ldr r0, [r4, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0805BB0C
+ ldr r1, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0805BAEC
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0805BAEC:
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ adds r1, 0x1
+ strb r1, [r0, 0x4]
+ b _0805BB82
+ .pool
+_0805BB0C:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0805BB82
+ strb r4, [r3, 0x4]
+ ldr r2, =gBattlePartyID
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, =gPlayerParty
+ adds r0, r2
+ bl sub_805E990
+ movs r1, 0x40
+ negs r1, r1
+ movs r0, 0x10
+ bl audio_play_and_stuff
+ ldr r2, =gSprites
+ ldr r3, =gBankSpriteIds
+ 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, =sub_8039C00
+ str r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80596A8
+ str r1, [r0]
+_0805BB82:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805BAB8
+
+ thumb_func_start sub_805BBA4
+sub_805BBA4: @ 805BBA4
+ 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 PlayerBufferExecCompleted
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805BBA4
+
+ thumb_func_start sub_805BBC4
+sub_805BBC4: @ 805BBC4
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x8]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, =gDoingBattleAnim
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, =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, 0x3
+ bl move_anim_start_t4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_wait_t1
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805BBC4
+
+ thumb_func_start sub_805BC18
+sub_805BC18: @ 805BC18
+ push {r4,r5,lr}
+ ldr r1, =gBattleBufferA
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ strb r1, [r0, 0x8]
+ ldr r1, =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, 0x3
+ bl move_anim_start_t4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_wait_t1
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805BC18
+
+ thumb_func_start sub_805BC78
+sub_805BC78: @ 805BC78
+ push {lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805BC96
+_0805BC8C:
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0805BC8C
+_0805BC96:
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805BC78
+
+ thumb_func_start dp01t_0F_1_move_anim
+dp01t_0F_1_move_anim: @ 805BCA8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805BCBE
+ b _0805BDE4
+_0805BCBE:
+ ldr r0, =gBattleBufferA
+ mov r12, r0
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, 0x1
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ mov r0, r12
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r6, r0
+ ldr r0, =gUnknown_02038432
+ mov r8, r0
+ mov r0, r12
+ adds r0, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, r8
+ strb r0, [r1]
+ ldr r3, =gUnknown_02038408
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0x5
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r3]
+ ldr r3, =gUnknown_02038404
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0x6
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0x7
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r2, r0
+ mov r0, r12
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 16
+ orrs r2, r0
+ mov r0, r12
+ adds r0, 0x9
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 24
+ orrs r2, r0
+ str r2, [r3]
+ ldr r2, =gUnknown_0203841A
+ ldrb r0, [r5]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0xA
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r4, =gUnknown_0203841C
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0xD
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r4]
+ ldr r7, =gUnknown_02038400
+ ldrb r1, [r5]
+ lsls r1, 9
+ mov r0, r12
+ adds r0, 0x10
+ adds r1, r0
+ str r1, [r7]
+ ldr r2, =gUnknown_020244BC
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_805DB8C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0805BDBC
+ bl PlayerBufferExecCompleted
+ b _0805BDE4
+ .pool
+_0805BDBC:
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r3, [r0, 0x4]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_move_anim_1
+ str r1, [r0]
+ ldrh r1, [r4]
+ ldr r2, [r7]
+ adds r0, r6, 0
+ bl sub_817E0FC
+_0805BDE4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_0F_1_move_anim
+
+ thumb_func_start bx_move_anim_1
+bx_move_anim_1: @ 805BDFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, =gBattleBufferA
+ ldr r6, =gActiveBank
+ ldrb r3, [r6]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r10, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, r2, 0x2
+ mov r9, r5
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r8, r1
+ ldr r7, =gUnknown_020244D0
+ ldr r5, [r7]
+ ldr r1, [r5, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _0805BE94
+ cmp r2, 0x1
+ bgt _0805BE54
+ cmp r2, 0
+ beq _0805BE5E
+ b _0805BF70
+ .pool
+_0805BE54:
+ cmp r2, 0x2
+ beq _0805BEBE
+ cmp r2, 0x3
+ beq _0805BF34
+ b _0805BF70
+_0805BE5E:
+ ldr r1, [r5]
+ lsls r0, r3, 2
+ adds r1, r0, r1
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _0805BE80
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r6]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0805BE80:
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0, 0x4]
+ b _0805BF70
+_0805BE94:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0805BF70
+ movs r0, 0
+ bl sub_805EB9C
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ b _0805BF70
+_0805BEBE:
+ ldr r0, =gUnknown_020383F8
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, =gUnknown_020383FD
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805BF70
+ movs r0, 0x1
+ bl sub_805EB9C
+ ldr r0, [r7]
+ ldrb r2, [r6]
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0805BF0C
+ mov r0, r8
+ cmp r0, 0x1
+ bhi _0805BF0C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_0805BF0C:
+ ldr r0, =gUnknown_020244D0
+ ldr r2, [r0]
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r2, [r2, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _0805BF70
+ .pool
+_0805BF34:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0805BF70
+ bl sub_805E394
+ ldrb r0, [r6]
+ lsls r2, r0, 9
+ mov r3, r10
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r9
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_805E94C
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r4, [r0, 0x4]
+ bl PlayerBufferExecCompleted
+_0805BF70:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_move_anim_1
+
+ thumb_func_start sub_805BF80
+sub_805BF80: @ 805BF80
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r5, =gActiveBank
+ ldrb r4, [r5]
+ lsls r4, 9
+ ldr r0, =gUnknown_02023066
+ adds r4, r0
+ ldrh r0, [r4]
+ bl battle_pick_message
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0
+ bl battle_show_message_maybe
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80597B4
+ str r1, [r0]
+ ldrh r0, [r4]
+ bl sub_817C95C
+ ldrb r0, [r5]
+ ldrh r1, [r4]
+ bl sub_81A57E4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805BF80
+
+ thumb_func_start dp01t_11_1_message_for_player_only
+dp01t_11_1_message_for_player_only: @ 805BFE0
+ push {lr}
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805BFFC
+ bl sub_805BF80
+ b _0805C000
+ .pool
+_0805BFFC:
+ bl PlayerBufferExecCompleted
+_0805C000:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_1_message_for_player_only
+
+ thumb_func_start sub_805C004
+sub_805C004: @ 805C004
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0805C02A
+ ldr r0, =gUnknown_02022E14
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E16
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057588
+ str r1, [r0]
+_0805C02A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C004
+
+ thumb_func_start dp01t_12_6_battle_menu
+dp01t_12_6_battle_menu: @ 805C044
+ push {r4,lr}
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805C004
+ str r1, [r0]
+ bl sub_817F2A8
+ ldr r0, =gUnknown_085CCA3A
+ movs r1, 0x2
+ bl battle_show_message_maybe
+ movs r4, 0
+_0805C062:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8059CF8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0805C062
+ ldr r1, =gUnknown_020244AC
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8059CB4
+ ldr r0, =gUnknown_085CC9F3
+ bl get_battle_strings_
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0x1
+ bl battle_show_message_maybe
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_12_6_battle_menu
+
+ thumb_func_start sub_805C0B0
+sub_805C0B0: @ 805C0B0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0805C108
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_8056A3C
+ ldr r0, =gUnknown_085CCABB
+ movs r1, 0xC
+ bl battle_show_message_maybe
+ ldr r1, =gUnknown_03005D74
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8056B74
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80599D4
+ str r1, [r0]
+ b _0805C10C
+ .pool
+_0805C108:
+ bl PlayerBufferExecCompleted
+_0805C10C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C0B0
+
+ thumb_func_start sub_805C114
+sub_805C114: @ 805C114
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0805C13E
+ ldr r0, =gUnknown_02022E14
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E16
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8057BFC
+ str r1, [r0]
+_0805C13E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C114
+
+ thumb_func_start sub_805C158
+sub_805C158: @ 805C158
+ push {lr}
+ ldr r0, =gActiveBank
+ ldrb r1, [r0]
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ adds r1, r0
+ movs r0, 0xA6
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805C194
+ ldr r1, =gUnknown_0203BD30
+ ldr r0, =gRngValue
+ ldr r0, [r0]
+ str r0, [r1]
+ bl sub_805D19C
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl PlayerBufferExecCompleted
+_0805C194:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C158
+
+ thumb_func_start dp01t_14_5_move_menu_pokedude
+dp01t_14_5_move_menu_pokedude: @ 805C1A8
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 10
+ ands r0, r1
+ cmp r0, 0
+ beq _0805C1EC
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r0, r1
+ movs r1, 0xA6
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strb r1, [r0]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805C158
+ b _0805C1FC
+ .pool
+_0805C1EC:
+ bl sub_805C210
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_805C114
+_0805C1FC:
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_14_5_move_menu_pokedude
+
+ thumb_func_start sub_805C210
+sub_805C210: @ 805C210
+ push {lr}
+ bl sub_8059AAC
+ ldr r1, =gUnknown_03005D74
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, =gUnknown_020244B0
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl battle_menu_cursor_related_2
+ bl sub_8059B18
+ bl sub_8059B3C
+ bl sub_8059BB0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C210
+
+ thumb_func_start sub_805C248
+sub_805C248: @ 805C248
+ 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, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80598A4
+ str r1, [r0]
+ ldr r1, =gUnknown_020244B8
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r3, 0
+ ldr r5, =gUnknown_0203CF00
+ ldr r4, =gBattleBufferA
+_0805C276:
+ 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 _0805C276
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C248
+
+ thumb_func_start sub_805C2AC
+sub_805C2AC: @ 805C2AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r3, 0
+ ldr r0, =gUnknown_0203CF00
+ mov r12, r0
+ ldr r1, =gBattleBufferA
+ mov r8, r1
+ ldr r2, =gActiveBank
+ ldr r7, =gBattleTypeFlags
+ mov r6, r12
+ mov r5, r8
+ adds r4, r2, 0
+_0805C2C8:
+ adds r0, r3, r6
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r3, r1
+ adds r1, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _0805C2C8
+ ldr r0, [r7]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ beq _0805C330
+ ldrb r3, [r2]
+ lsls r0, r3, 9
+ mov r1, r8
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x2
+ beq _0805C330
+ ldr r1, =gBattlePartyID
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ mov r2, r12
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl PlayerBufferExecCompleted
+ b _0805C3BC
+ .pool
+_0805C330:
+ ldr r0, =TaskDummy
+ movs r1, 0xFF
+ bl CreateTask
+ ldr r3, =gUnknown_03005D7C
+ ldr r4, =gActiveBank
+ ldrb r1, [r4]
+ adds r1, r3
+ movs r2, 0
+ mov r8, r2
+ strb r0, [r1]
+ ldr r5, =gTasks
+ ldrb r2, [r4]
+ adds r3, r2, r3
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r5
+ ldr r5, =gBattleBufferA
+ lsls r2, 9
+ adds r6, r5, 0x1
+ adds r2, r6
+ ldrb r2, [r2]
+ movs r0, 0xF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldr r3, =gBattleStruct
+ ldr r1, [r3]
+ adds r1, 0x49
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r6
+ ldrb r0, [r0]
+ lsrs r0, 4
+ strb r0, [r1]
+ ldr r2, [r3]
+ adds r2, 0x8B
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r1, [r3]
+ adds r1, 0xB0
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r5, 0x3
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ mov r1, r8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80597CC
+ str r1, [r0]
+ ldr r1, =gUnknown_020244B8
+ ldrb r0, [r4]
+ strb r0, [r1]
+_0805C3BC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C2AC
+
+ thumb_func_start sub_805C3EC
+sub_805C3EC: @ 805C3EC
+ push {lr}
+ sub sp, 0x4
+ bl sub_805EA60
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl PlayerBufferExecCompleted
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C3EC
+
+ thumb_func_start sub_805C410
+sub_805C410: @ 805C410
+ 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, =gBattleBufferA
+ ldr r0, =gActiveBank
+ mov r9, r0
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r3, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r3, 0x3
+ adds r1, r3
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ lsls r2, 16
+ asrs r7, r2, 16
+ cmp r7, 0
+ ble _0805C44A
+ ldr r1, =gUnknown_0203CD70
+ ldr r0, [r1]
+ adds r0, r7
+ str r0, [r1]
+_0805C44A:
+ ldr r0, =0x00007fff
+ cmp r7, r0
+ beq _0805C4B4
+ ldr r6, =gBattlePartyID
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r2, r9
+ ldrb r0, [r2]
+ 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, =gUnknown_03005D70
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_807294C
+ b _0805C4F2
+ .pool
+_0805C4B4:
+ ldr r1, =gBattlePartyID
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r4, =gUnknown_03005D70
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_807294C
+ mov r2, r9
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl heathbar_draw_hp
+_0805C4F2:
+ ldr r1, =gBattleBankFunc
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =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
+ .pool
+ thumb_func_end sub_805C410
+
+ thumb_func_start sub_805C528
+sub_805C528: @ 805C528
+ push {r4-r7,lr}
+ ldr r5, =gBattleBufferA
+ ldr r6, =gActiveBank
+ 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, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0805C560
+ bl PlayerBufferExecCompleted
+ b _0805C5AC
+ .pool
+_0805C560:
+ 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, =sub_80591B8
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =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, =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =nullsub_21
+ str r1, [r0]
+_0805C5AC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C528
+
+ thumb_func_start sub_805C5C4
+sub_805C5C4: @ 805C5C4
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805C618
+ ldr r0, =gUnknown_03005D70
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0x9
+ bl healthbar_draw_field_maybe
+ ldrb r2, [r4]
+ ldr r0, =gUnknown_020244D0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8059D60
+ str r1, [r0]
+_0805C618:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C5C4
+
+ thumb_func_start sub_805C63C
+sub_805C63C: @ 805C63C
+ push {r4,r5,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805C68C
+ ldr r4, =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, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8059D60
+ str r1, [r0]
+_0805C68C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C63C
+
+ thumb_func_start sub_805C6A4
+sub_805C6A4: @ 805C6A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ ldr r0, =gBattlePartyID
+ mov r8, r0
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ movs r1, 0x37
+ bl GetMonData
+ ldr r2, =gBattleBufferA
+ 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 PlayerBufferExecCompleted
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C6A4
+
+ thumb_func_start sub_805C710
+sub_805C710: @ 805C710
+ push {lr}
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C710
+
+ thumb_func_start sub_805C71C
+sub_805C71C: @ 805C71C
+ push {r4,r5,lr}
+ ldr r3, =gBattleBufferA
+ ldr r0, =gActiveBank
+ 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 _0805C78C
+ ldr r0, =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 _0805C7B8
+ .pool
+_0805C78C:
+ ldr r3, =0x040000d4
+ str r2, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, =0x80000800
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r2, r0
+ adds r5, r0
+ ldr r1, =0xfffff000
+ adds r4, r1
+ cmp r4, r0
+ bhi _0805C78C
+ 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]
+_0805C7B8:
+ bl PlayerBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C71C
+
+ thumb_func_start sub_805C7D0
+sub_805C7D0: @ 805C7D0
+ push {lr}
+ ldr r2, =gBattleBufferA
+ ldr r0, =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 song_play_for_text
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C7D0
+
+ thumb_func_start sub_805C800
+sub_805C800: @ 805C800
+ push {lr}
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C800
+
+ thumb_func_start sub_805C80C
+sub_805C80C: @ 805C80C
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C80C
+
+ thumb_func_start sub_805C820
+sub_805C820: @ 805C820
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C820
+
+ thumb_func_start sub_805C834
+sub_805C834: @ 805C834
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C834
+
+ thumb_func_start sub_805C848
+sub_805C848: @ 805C848
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x24_aa_0
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C848
+
+ thumb_func_start sub_805C85C
+sub_805C85C: @ 805C85C
+ push {lr}
+ ldr r2, =gUnknown_02022D0C
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C85C
+
+ thumb_func_start sub_805C878
+sub_805C878: @ 805C878
+ push {lr}
+ ldr r3, =gUnknown_02022D0C
+ ldr r1, =gBattleBufferA
+ ldr r0, =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 PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C878
+
+ thumb_func_start sub_805C8B0
+sub_805C8B0: @ 805C8B0
+ push {lr}
+ ldr r2, =gUnknown_02022D0C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C8B0
+
+ thumb_func_start sub_805C8C8
+sub_805C8C8: @ 805C8C8
+ push {lr}
+ ldr r3, =gUnknown_02022D0C
+ 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 PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C8C8
+
+ thumb_func_start dp01t_29_1_blink
+dp01t_29_1_blink: @ 805C8F0
+ push {r4,lr}
+ ldr r3, =gSprites
+ ldr r2, =gBankSpriteIds
+ ldr r4, =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 _0805C924
+ bl PlayerBufferExecCompleted
+ b _0805C94E
+ .pool
+_0805C924:
+ ldr r1, =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_80769F4
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =bx_blink_t1
+ str r1, [r0]
+_0805C94E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_29_1_blink
+
+ thumb_func_start sub_805C960
+sub_805C960: @ 805C960
+ push {lr}
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C960
+
+ thumb_func_start sub_805C96C
+sub_805C96C: @ 805C96C
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0805C980
+ movs r3, 0xC0
+_0805C980:
+ ldr r2, =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 audio_play_and_stuff
+ bl PlayerBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805C96C
+
+ thumb_func_start sub_805C9B0
+sub_805C9B0: @ 805C9B0
+ push {r4,r5,lr}
+ ldr r4, =gBattleBufferA
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ adds r0, r4, 0x3
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805C9EC
+ bl sub_805EA60
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r4, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, r4, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl song_play_for_text
+ b _0805CA00
+ .pool
+_0805C9EC:
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl fanfare_play
+_0805CA00:
+ bl PlayerBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805C9B0
+
+ thumb_func_start sub_805CA0C
+sub_805CA0C: @ 805CA0C
+ push {lr}
+ ldr r1, =gBattlePartyID
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =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 sub_80A32E4
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CA0C
+
+ thumb_func_start dp01t_2E_1_battle_intro
+dp01t_2E_1_battle_intro: @ 805CA4C
+ push {lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl battle_intro_launch
+ ldr r2, =gUnknown_020243FC
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_2E_1_battle_intro
+
+ thumb_func_start dp01t_2F_1_pokemon_enter
+dp01t_2F_1_pokemon_enter: @ 805CA80
+ push {r4-r7,lr}
+ ldr r6, =gBankSpriteIds
+ ldr r7, =gActiveBank
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, =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, =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, =sub_80A6EEC
+ 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, =sub_805CC00
+ 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 StartObjectImageAnim
+ ldr r0, =0x0000d6f8
+ bl AllocObjectPalette
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r1, =gTrainerBackPicPaletteTable
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ 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, =task05_08033660
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ ldr r3, =gUnknown_020244D0
+ ldr r0, [r3]
+ ldrb r2, [r7]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805CBA2
+ ldr r0, =gUnknown_020244B4
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, =sub_8073C30
+ str r1, [r0]
+_0805CBA2:
+ ldr r0, [r3]
+ ldr r2, [r0, 0x8]
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =nullsub_21
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_2F_1_pokemon_enter
+
+ thumb_func_start sub_805CC00
+sub_805CC00: @ 805CC00
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r4, [r5, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ bl obj_free_rotscale_entry
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ bl GetObjectPaletteTagBySlot
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeObjectPaletteByTag
+ adds r0, r5, 0
+ bl DestroySprite
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_805DD7C
+ ldr r0, =gBankSpriteIds
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartObjectImageAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CC00
+
+ thumb_func_start task05_08033660
+task05_08033660: @ 805CC68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, =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 _0805CC94
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _0805CD50
+ .pool
+_0805CC94:
+ ldr r7, =gActiveBank
+ 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 _0805CCB4
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0805CCE4
+_0805CCB4:
+ ldr r0, =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, =gBattlePartyID
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_805B258
+ b _0805CD38
+ .pool
+_0805CCE4:
+ ldr r4, =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r5, =gBattlePartyID
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_805B258
+ 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, =gPlayerParty
+ adds r0, r2
+ bl sub_805DD7C
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_805B258
+ ldrb r0, [r7]
+ eors r0, r6
+ strb r0, [r7]
+_0805CD38:
+ ldr r1, =gBattleBankFunc
+ ldr r2, =gActiveBank
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_8058B40
+ str r1, [r0]
+ mov r3, r9
+ strb r3, [r2]
+ mov r0, r8
+ bl DestroyTask
+_0805CD50:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task05_08033660
+
+ thumb_func_start sub_805CD74
+sub_805CD74: @ 805CD74
+ push {r4-r6,lr}
+ ldr r1, =gBattleBufferA
+ ldr r0, =gActiveBank
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805CDA4
+ adds r0, r2, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805CDA4
+ bl PlayerBufferExecCompleted
+ b _0805CE18
+ .pool
+_0805CDA4:
+ ldr r6, =gUnknown_020244D0
+ ldr r0, [r6]
+ ldr r5, =gActiveBank
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, =gUnknown_02023068
+ 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_80735DC
+ ldr r2, =gUnknown_020244B4
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r3, 0
+ strb r0, [r1]
+ ldr r0, [r6]
+ ldrb r1, [r5]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strb r3, [r0, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805CE0C
+ ldr r0, [r6]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_0805CE0C:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =sub_805CE38
+ str r0, [r1]
+_0805CE18:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CD74
+
+ thumb_func_start sub_805CE38
+sub_805CE38: @ 805CE38
+ push {r4,lr}
+ ldr r4, =gUnknown_020244D0
+ ldr r0, [r4]
+ ldr r3, =gActiveBank
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _0805CE70
+ ldr r0, [r4]
+ ldrb r1, [r3]
+ ldr r2, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x5]
+ bl PlayerBufferExecCompleted
+_0805CE70:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CE38
+
+ thumb_func_start sub_805CE80
+sub_805CE80: @ 805CE80
+ push {lr}
+ ldr r0, =gUnknown_020244D0
+ ldr r1, [r0]
+ ldr r0, =gActiveBank
+ ldrb r3, [r0]
+ ldr r1, [r1, 0x4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805CEB2
+ ldr r2, =gTasks
+ ldr r0, =gUnknown_020244B4
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, =sub_8073C30
+ str r1, [r0]
+_0805CEB2:
+ bl PlayerBufferExecCompleted
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CE80
+
+ thumb_func_start sub_805CED0
+sub_805CED0: @ 805CED0
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ bl PlayerBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CED0
+
+ thumb_func_start dp01t_33_1_enemy_move
+dp01t_33_1_enemy_move: @ 805CEF4
+ push {r4,lr}
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ bl sub_80A6A90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805CF3A
+ ldr r3, =gSprites
+ ldr r0, =gBankSpriteIds
+ 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, =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_805E408
+_0805CF3A:
+ bl PlayerBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp01t_33_1_enemy_move
+
+ thumb_func_start sub_805CF54
+sub_805CF54: @ 805CF54
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0805CFB6
+ ldr r4, =gBattleBufferA
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, r4, 0x1
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r4, 0x3
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ str r3, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ adds r3, r6, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805CFA4
+ bl PlayerBufferExecCompleted
+ b _0805CFB0
+ .pool
+_0805CFA4:
+ ldr r0, =gBattleBankFunc
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, =bx_8030B2C
+ str r0, [r1]
+_0805CFB0:
+ adds r0, r6, 0
+ bl sub_817E32C
+_0805CFB6:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805CF54
+
+ thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
+dp01t_35_1_link_standby_message_and_free_vram: @ 805CFC8
+ push {r4,r5,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 9
+ ldr r4, =gUnknown_02023066
+ adds r0, r4
+ bl sub_81851A8
+ ldrb r0, [r5]
+ lsls r0, 9
+ subs r4, 0x1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0805D002
+ cmp r0, 0x1
+ bgt _0805CFF8
+ cmp r0, 0
+ beq _0805CFFE
+ b _0805D020
+ .pool
+_0805CFF8:
+ cmp r0, 0x2
+ beq _0805D01C
+ b _0805D020
+_0805CFFE:
+ bl b_link_standby_message
+_0805D002:
+ ldr r4, =gActiveBank
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ b _0805D020
+ .pool
+_0805D01C:
+ bl b_link_standby_message
+_0805D020:
+ bl PlayerBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
+
+ thumb_func_start sub_805D02C
+sub_805D02C: @ 805D02C
+ push {r4,lr}
+ ldr r1, =gBattleBufferA
+ ldr r4, =gActiveBank
+ ldrb r3, [r4]
+ lsls r0, r3, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _0805D074
+ cmp r2, 0x1
+ bgt _0805D054
+ cmp r2, 0
+ beq _0805D05A
+ b _0805D084
+ .pool
+_0805D054:
+ cmp r2, 0x2
+ beq _0805D07C
+ b _0805D084
+_0805D05A:
+ ldr r0, =gUnknown_020244AC
+ adds r0, r3, r0
+ strb r2, [r0]
+ ldr r1, =gUnknown_020244B0
+ ldrb r0, [r4]
+ adds r0, r1
+ strb r2, [r0]
+ b _0805D084
+ .pool
+_0805D074:
+ ldr r0, =gUnknown_020244AC
+ b _0805D07E
+ .pool
+_0805D07C:
+ ldr r0, =gUnknown_020244B0
+_0805D07E:
+ adds r0, r3, r0
+ movs r1, 0
+ strb r1, [r0]
+_0805D084:
+ bl PlayerBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805D02C
+
+ thumb_func_start sub_805D094
+sub_805D094: @ 805D094
+ push {r4,r5,lr}
+ ldr r5, =gActiveBank
+ ldrb r0, [r5]
+ lsls r0, 9
+ ldr r4, =gUnknown_02023068
+ adds r0, r4
+ bl sub_81851A8
+ ldr r2, =gBattleOutcome
+ ldrb r0, [r5]
+ lsls r0, 9
+ subs r1, r4, 0x3
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldrb r0, [r5]
+ lsls r0, 9
+ subs r4, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r3, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x5
+ bl sub_80A2F50
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl PlayerBufferExecCompleted
+ ldr r1, =gBattleBankFunc
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, =sub_80587B0
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_805D094
+
+ thumb_func_start nullsub_22
+nullsub_22: @ 805D114
+ bx lr
+ thumb_func_end nullsub_22
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index c8b8ea0d2..2013be6c2 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -7844,7 +7844,7 @@ sub_8149F08: @ 8149F08
sub_8149F2C: @ 8149F2C
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index 5d767cb96..0aa9f2ab1 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -71,7 +71,7 @@ sub_807F764: @ 807F764
movs r0, 0x2
bl SetBgAffine
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
add sp, 0x10
pop {r4}
@@ -6494,7 +6494,7 @@ _08082EF4:
ands r0, r2
subs r0, r7, r0
strh r0, [r4, 0x30]
- ldr r3, =gUnknown_0202064C
+ ldr r3, =gSprites + 0x1C
adds r5, r3
ldr r0, =sub_8082E3C
str r0, [r5]
@@ -8087,7 +8087,7 @@ _08083B9A:
adds r5, r6, 0
adds r5, 0x1C
adds r0, r5
- ldr r4, =DummyObjectCallback
+ ldr r4, =SpriteCallbackDummy
str r4, [r0]
mov r0, r8
movs r1, 0xA0
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
index 4bbc323c3..0886dd6c3 100644
--- a/asm/berry_tag_screen.s
+++ b/asm/berry_tag_screen.s
@@ -46,7 +46,7 @@ sub_8177C54: @ 8177C54
sub_8177C70: @ 8177C70
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/cable_car.s b/asm/cable_car.s
index 741c595fb..244b660f5 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -1340,7 +1340,7 @@ sub_8150800: @ 8150800
movs r0, 0x12
bl SetGpuReg
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r4}
pop {r0}
diff --git a/asm/contest.s b/asm/contest.s
index 3e79bfe81..25512089c 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -1366,7 +1366,7 @@ vblank_cb_battle: @ 80D827C
bl SetGpuReg
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl sub_80BA0A8
pop {r0}
bx r0
@@ -2578,7 +2578,7 @@ _080D8E7C:
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _080D8EA0
bl _080DA100
@@ -4760,7 +4760,7 @@ _080DA148:
cmp r0, 0x1F
bne _080DA15C
strh r2, [r1, 0x2E]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r1, 0x1C]
_080DA15C:
pop {r0}
@@ -4784,7 +4784,7 @@ sub_80DA164: @ 80DA164
negs r1, r1
cmp r0, r1
bge _080DA18E
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
adds r2, 0x3E
ldrb r0, [r2]
@@ -6677,7 +6677,7 @@ sub_80DB0C4: @ 80DB0C4
strb r1, [r5, 0x5]
adds r4, 0x1C
adds r2, r4
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r2]
pop {r4,r5}
pop {r1}
@@ -6811,7 +6811,7 @@ _080DB1CC:
mov r0, r8
adds r0, 0x1C
adds r0, r6, r0
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r0, [r4, 0x5]
lsrs r0, 4
@@ -9126,7 +9126,7 @@ sub_80DC408: @ 80DC408
negs r0, r0
ands r0, r2
strb r0, [r1, 0x2]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
b _080DC446
.pool
@@ -10118,7 +10118,7 @@ sub_80DCBE8: @ 80DCBE8
ldr r0, =sub_80DCC84
str r0, [r6]
add r4, r8
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4]
mov r3, r9
cmp r3, 0
@@ -11481,7 +11481,7 @@ sub_80DD6DC: @ 80DD6DC
movs r1, 0x4
orrs r0, r1
strb r0, [r3]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
ldr r0, =gUnknown_02039F34
ldr r0, [r0]
@@ -13794,7 +13794,7 @@ sub_80DE9DC: @ 80DE9DC
thumb_func_start sub_80DEA20
sub_80DEA20: @ 80DEA20
push {lr}
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
ldr r1, =gBankSpriteIds
strb r0, [r1, 0x3]
diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s
index ca5e752ed..7d9d2bf23 100644
--- a/asm/contest_link_80F57C4.s
+++ b/asm/contest_link_80F57C4.s
@@ -490,7 +490,7 @@ sub_80F5C24: @ 80F5C24
movs r0, 0x46
bl SetGpuReg
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80BA0A8
pop {r0}
@@ -2642,7 +2642,7 @@ sub_80F6F40: @ 80F6F40
strh r1, [r0, 0x22]
strh r2, [r0, 0x26]
strh r2, [r0, 0x24]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0, 0x1C]
ldr r0, =gUnknown_0203A034
ldr r0, [r0]
@@ -3478,7 +3478,7 @@ _080F75F6:
ldrsh r0, [r4, r2]
cmp r0, 0x78
bne _080F7610
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x30]
@@ -3517,7 +3517,7 @@ sub_80F7620: @ 80F7620
negs r1, r1
cmp r0, r1
bge _080F7664
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
adds r2, r3, 0
adds r2, 0x3E
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
index d0fe69d18..41f1cb44d 100644
--- a/asm/contest_painting.s
+++ b/asm/contest_painting.s
@@ -553,7 +553,7 @@ sub_81302D0: @ 81302D0
push {lr}
bl sub_8130280
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/credits.s b/asm/credits.s
index b98092f36..6197ce790 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -9,7 +9,7 @@
sub_81754C8: @ 81754C8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/decoration.s b/asm/decoration.s
index b6504f112..365fe4135 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -2903,13 +2903,13 @@ _081281EA:
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _0812820C
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r0, [sp]
movs r0, 0xC1
b _08128214
.pool
_0812820C:
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
movs r0, 0xC2
@@ -5111,7 +5111,7 @@ gpu_pal_decompress_alloc_tag_and_upload: @ 8129334
_081293B4:
ldr r0, [r4, 0x1C]
ldrh r0, [r0]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r2, 0x1
str r2, [sp]
movs r2, 0
@@ -5331,7 +5331,7 @@ AddDecorationIconObjectFromFieldObject: @ 81294C0
_081295A4:
ldr r0, [r4, 0x1C]
ldrh r0, [r0]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r2, 0x1
str r2, [sp]
movs r2, 0
@@ -5890,13 +5890,13 @@ SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC
ldrb r0, [r0, 0x8]
cmp r0, 0
bne _08129A3C
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r0, [sp]
movs r0, 0xC1
b _08129A44
.pool
_08129A3C:
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
movs r0, 0xC2
@@ -6134,7 +6134,7 @@ sub_8129BF8: @ 8129BF8
lsls r0, 2
adds r3, 0x1C
adds r0, r3
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldr r5, =gStringVar4
ldr r1, =gUnknown_085EAA62
@@ -6213,7 +6213,7 @@ _08129CDE:
lsls r0, 2
adds r3, 0x1C
adds r0, r3
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldr r4, =gStringVar4
ldr r1, =gUnknown_085EAA62
@@ -6369,7 +6369,7 @@ sub_8129E0C: @ 8129E0C
adds r3, r5, 0
adds r3, 0x1C
adds r2, r3
- ldr r3, =DummyObjectCallback
+ ldr r3, =SpriteCallbackDummy
str r3, [r2]
ldr r4, =gUnknown_0203AA39
ldrb r3, [r4]
diff --git a/asm/diploma.s b/asm/diploma.s
index c247ab72d..933b5cf9d 100644
--- a/asm/diploma.s
+++ b/asm/diploma.s
@@ -9,7 +9,7 @@
sub_8177874: @ 8177874
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 20558dab0..bcf72cb60 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -68,7 +68,7 @@ sub_811A290: @ 811A290
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_811A290
@@ -8982,7 +8982,7 @@ _0811E852:
cmp r0, 0x4
bne _0811E8D0
adds r0, r4, 0
- ldr r5, =DummyObjectCallback
+ ldr r5, =SpriteCallbackDummy
movs r4, 0
str r4, [sp]
adds r1, r5, 0
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index 0ebcd4a4b..f7291f895 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -442,7 +442,7 @@ _080716D8:
strb r0, [r2]
adds r4, 0x1C
adds r1, r4
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r1]
_08071712:
adds r0, r7, 0
@@ -459,7 +459,7 @@ _08071712:
sub_807172C: @ 807172C
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -914,7 +914,7 @@ _08071BA0:
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _08071BBC
b _08071E06
@@ -951,7 +951,7 @@ _08071BF8:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _08071C12
b _08071E06
@@ -1506,7 +1506,7 @@ _080720BC:
ldrsh r0, [r5, r2]
cmp r0, 0x28
ble _080720CA
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
_080720CA:
adds r0, r1, 0x1
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 6cdb5782e..a1bff8203 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -3663,7 +3663,7 @@ sub_813FCDC: @ 813FCDC
movs r0, 0x1E
bl SetGpuReg
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80BA0A8
pop {r0}
@@ -3707,7 +3707,7 @@ sub_813FD64: @ 813FD64
movs r0, 0x1E
bl SetGpuReg
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80BA0A8
pop {r0}
@@ -4200,7 +4200,7 @@ sub_8140208: @ 8140208
adds r2, 0x1C
adds r1, r2
ldr r1, [r1]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _08140230
movs r0, 0
diff --git a/asm/field_effect.s b/asm/field_effect.s
index dbd37b3f8..335d0a495 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -545,7 +545,7 @@ sub_80B5E6C: @ 80B5E6C
str r2, [sp, 0xC]
ldr r0, =gDummyObjectRotScalAnimTable
str r0, [sp, 0x10]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [sp, 0x14]
lsls r5, 16
asrs r5, 16
@@ -6185,7 +6185,7 @@ sub_80B8C60: @ 80B8C60
lsls r2, 2
ldr r1, =gSprites
adds r2, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r2, 0x1C]
ldrb r3, [r2, 0x5]
movs r1, 0xD
diff --git a/asm/field_region_map.s b/asm/field_region_map.s
index 086efa0f8..2da113ebd 100644
--- a/asm/field_region_map.s
+++ b/asm/field_region_map.s
@@ -88,7 +88,7 @@ sub_81701C4: @ 81701C4
sub_8170260: @ 8170260
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/front_pic_anim.s b/asm/front_pic_anim.s
index d42815c79..5439964e3 100644
--- a/asm/front_pic_anim.s
+++ b/asm/front_pic_anim.s
@@ -26,7 +26,7 @@ sub_817F498: @ 817F498
movs r0, 0x8
ldrsh r4, [r2, r0]
mov r8, r1
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
mov r12, r0
cmp r4, 0
bne _0817F508
@@ -11677,7 +11677,7 @@ sub_8184D88: @ 8184D88
ands r0, r1
cmp r0, 0
beq _08184D9C
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_08184D9C:
pop {r0}
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index be687b586..76f9ced0f 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -9,7 +9,7 @@
sub_817354C: @ 817354C
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -775,7 +775,7 @@ sub_8173BC0: @ 8173BC0
ldr r1, =gSprites
adds r3, r0, r1
ldr r1, [r3, 0x1C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08173C1A
ldrb r1, [r3, 0x1]
diff --git a/asm/intro.s b/asm/intro.s
index 6130b920a..893072053 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -9,7 +9,7 @@
sub_816CBE8: @ 816CBE8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80BA0A8
pop {r0}
@@ -5263,7 +5263,7 @@ _0816F8A0:
movs r2, 0x2
movs r3, 0x2
bl CalcCenterToCornerVec
- ldr r2, =gUnknown_0202064C
+ ldr r2, =gSprites + 0x1C
adds r4, r2
ldr r0, =sub_816F3A4
str r0, [r4]
@@ -5305,7 +5305,7 @@ _0816F8A0:
movs r2, 0x2
movs r3, 0x2
bl CalcCenterToCornerVec
- ldr r0, =gUnknown_0202064C
+ ldr r0, =gSprites + 0x1C
adds r4, r0
ldr r1, =sub_816F3A4
str r1, [r4]
diff --git a/asm/intro_credits_graphics.s b/asm/intro_credits_graphics.s
index 418fa9cbd..9d376e1ca 100644
--- a/asm/intro_credits_graphics.s
+++ b/asm/intro_credits_graphics.s
@@ -693,7 +693,7 @@ _0817B6C2:
movs r0, 0xF
ands r3, r0
strb r3, [r4, 0x5]
- ldr r0, =gUnknown_02020638
+ ldr r0, =gSprites + 8
adds r5, r0
ldr r2, [sp, 0x8]
str r2, [r5]
diff --git a/asm/link.s b/asm/link.s
index fcc391ab9..fd3b6c451 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -329,7 +329,7 @@ _0800969E:
sub_80096BC: @ 80096BC
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -16589,7 +16589,7 @@ sub_8011AC8: @ 8011AC8
sub_8011AE8: @ 8011AE8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -28582,7 +28582,7 @@ sub_8018404: @ 8018404
thumb_func_start sub_8018424
sub_8018424: @ 8018424
push {lr}
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl LoadOamFromSprites
bl TransferPlttBuffer
pop {r0}
@@ -32555,7 +32555,7 @@ _0801A414:
sub_801A418: @ 801A418
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -33540,7 +33540,7 @@ _0801AC38:
sub_801AC40: @ 801AC40
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -36531,7 +36531,7 @@ sub_801C4C0: @ 801C4C0
bl sub_80D2E84
lsls r0, 16
lsrs r0, 16
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r7, [sp]
str r7, [sp, 0x4]
movs r2, 0xDC
@@ -36636,7 +36636,7 @@ _0801C572:
mov r2, r9
str r2, [sp]
str r2, [sp, 0x4]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
adds r2, r5, 0
movs r3, 0x88
bl sub_80D2D78
@@ -39836,7 +39836,7 @@ sub_801DF20: @ 801DF20
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl sub_80BA0A8
pop {r0}
bx r0
@@ -45844,7 +45844,7 @@ sub_8020F74: @ 8020F74
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_8020F74
@@ -46665,7 +46665,7 @@ _0802166E:
ands r0, r2
cmp r1, r0
blt _0802169A
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
adds r0, r5, 0
bl obj_free_rotscale_entry
@@ -49025,7 +49025,7 @@ sub_8022A4C: @ 8022A4C
push {r4,r5,lr}
adds r3, r0, 0
movs r1, 0
- ldr r5, =DummyObjectCallback
+ ldr r5, =SpriteCallbackDummy
adds r2, r3, 0
adds r2, 0x2E
movs r4, 0
@@ -55992,7 +55992,7 @@ sub_80261E4: @ 80261E4
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_80261E4
@@ -65139,7 +65139,7 @@ sub_802AC58: @ 802AC58
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_802AC58
@@ -69180,7 +69180,7 @@ _0802CBD6:
movs r1, 0x4
orrs r0, r1
strb r0, [r3]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_0802CBE6:
pop {r0}
@@ -69261,7 +69261,7 @@ _0802CC6C:
ble _0802CC7C
movs r0, 0
strh r0, [r2, 0x26]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_0802CC7C:
pop {r0}
@@ -69303,7 +69303,7 @@ sub_802CCB0: @ 802CCB0
ldr r1, =0x000081a8
adds r3, r4, r1
ldr r7, =sub_802CD08
- ldr r6, =DummyObjectCallback
+ ldr r6, =SpriteCallbackDummy
movs r5, 0xA
adds r4, r0, 0
_0802CCD2:
@@ -69499,7 +69499,7 @@ _0802CE06:
b _0802CE3C
.pool
_0802CE38:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
_0802CE3C:
pop {r4,r5}
@@ -73652,7 +73652,7 @@ _0802EF34:
asrs r0, 16
cmp r0, 0x28
ble _0802EF46
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
_0802EF46:
pop {r4,r5}
diff --git a/asm/mail.s b/asm/mail.s
index b291129d0..72d6ae962 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -513,7 +513,7 @@ _08121910:
_08121940:
adds r0, r4, 0
bl sub_80D2F68
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
@@ -524,7 +524,7 @@ _08121940:
_08121958:
adds r0, r4, 0
bl sub_80D2F68
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
@@ -884,7 +884,7 @@ _08121BCC:
sub_8121C50: @ 8121C50
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/main_menu.s b/asm/main_menu.s
index 1e1ff083b..40d4f967c 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -22,7 +22,7 @@ CB2_MainMenu: @ 802F6B0
VBlankCB_MainMenu: @ 802F6C8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -2277,7 +2277,7 @@ sub_8030B14: @ 8030B14
.pool
_08030B64:
ldr r1, [r3, 0x1C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08030BBA
ldrb r1, [r3, 0x1]
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index c5e9af666..91b5c122b 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -642,7 +642,7 @@ _0811FDEE:
lsrs r5, r0, 16
cmp r5, 0x3
bls _0811FDC8
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x14]
adds r0, r4, 0
movs r1, 0
diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s
index cf0bb75af..dc08e6609 100644
--- a/asm/mystery_event_menu.s
+++ b/asm/mystery_event_menu.s
@@ -9,7 +9,7 @@
sub_8178944: @ 8178944
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index 52cf2b21f..5e5304ff3 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -2615,7 +2615,7 @@ sub_80E4384: @ 80E4384
bl sub_808BD3C
lsls r0, 24
lsrs r0, 24
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r2, 0
str r2, [sp]
movs r2, 0x38
@@ -2679,7 +2679,7 @@ sub_80E4420: @ 80E4420
ldr r1, =0x00001e34
adds r0, r3, r1
ldrh r0, [r0]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r2, 0
str r2, [sp]
ldr r2, =0x00001e38
@@ -2712,7 +2712,7 @@ sub_80E4420: @ 80E4420
sub_80E447C: @ 80E447C
push {lr}
sub sp, 0x4
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
movs r0, 0x13
@@ -4091,7 +4091,7 @@ sub_80E4F84: @ 80E4F84
sub_80E4F94: @ 80E4F94
push {r4,r5,lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r5, =gUnknown_02039F94
ldr r0, [r5]
diff --git a/asm/option_menu.s b/asm/option_menu.s
index 61998b2dd..a7bdf5771 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -20,7 +20,7 @@ sub_80BA4B0: @ 80BA4B0
sub_80BA4C8: @ 80BA4C8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s
index 564886be1..f4d773ced 100644
--- a/asm/pokeblock_feed.s
+++ b/asm/pokeblock_feed.s
@@ -21,7 +21,7 @@ sub_8179B68: @ 8179B68
sub_8179B84: @ 8179B84
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -880,7 +880,7 @@ sub_817A358: @ 817A358
adds r0, r7, 0
adds r0, 0x1C
adds r0, r5, r0
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
mov r2, r9
ldr r0, [r2]
@@ -976,7 +976,7 @@ _0817A48E:
ldrsh r0, [r4, r1]
cmp r0, 0x9
bne _0817A49A
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0817A49A:
pop {r4}
@@ -1014,7 +1014,7 @@ sub_817A4A4: @ 817A4A4
str r2, [r1]
adds r5, 0x1C
adds r3, r5
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r3]
bl InitSpriteAffineAnim
adds r0, r4, 0
diff --git a/asm/pokedex.s b/asm/pokedex.s
index bebfb9ade..79286c11e 100644
--- a/asm/pokedex.s
+++ b/asm/pokedex.s
@@ -80,7 +80,7 @@ sub_80BB358: @ 80BB358
sub_80BB370: @ 80BB370
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index ad6a84923..a24d4762f 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -6058,7 +6058,7 @@ _0806ED66:
adds r0, r4, 0
bl cry_related
_0806ED7C:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
b _0806EDFA
.pool
_0806ED84:
@@ -6215,7 +6215,7 @@ sub_806EEB4: @ 806EEB4
ands r0, r1
cmp r0, 0
bne _0806EEE8
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
b _0806EEFC
.pool
_0806EEE8:
diff --git a/asm/porthole.s b/asm/porthole.s
index f99a0cb47..c844d02b1 100644
--- a/asm/porthole.s
+++ b/asm/porthole.s
@@ -176,7 +176,7 @@ _080FB6E2:
sub_80FB6EC: @ 80FB6EC
push {r4,lr}
sub sp, 0x4
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r0, 0
str r0, [sp]
movs r0, 0x8C
diff --git a/asm/region_map.s b/asm/region_map.s
index c8558dcdd..942afd04f 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -2809,7 +2809,7 @@ sub_8124288: @ 8124288
str r5, [sp, 0xC]
ldr r0, =gDummyObjectRotScalAnimTable
str r0, [sp, 0x10]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [sp, 0x14]
ldr r0, =gUnknown_02037318
ldrb r0, [r0, 0x14]
@@ -2914,7 +2914,7 @@ sub_81243B0: @ 81243B0
strb r0, [r2]
ldr r0, [r3]
ldr r1, [r0, 0x20]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r1, 0x1C]
_081243CE:
pop {r0}
@@ -3517,7 +3517,7 @@ _081248AA:
sub_81248C0: @ 81248C0
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
index 1bc673e58..a27e1f2a9 100644
--- a/asm/reset_rtc_screen.s
+++ b/asm/reset_rtc_screen.s
@@ -949,7 +949,7 @@ sub_809F090: @ 809F090
thumb_func_start sub_809F0AC
sub_809F0AC: @ 809F0AC
push {lr}
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl LoadOamFromSprites
bl TransferPlttBuffer
pop {r0}
diff --git a/asm/rom3.s b/asm/rom3.s
index db36be324..d89e374c6 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -758,7 +758,7 @@ b_setup_bx_link: @ 8032CC0
str r0, [r2]
ldr r1, =gBanksBySide
strb r3, [r1]
- ldr r0, =sub_8064394
+ ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand
str r0, [r2, 0x4]
strb r5, [r1, 0x1]
ldr r1, =gNoOfAllBanks
@@ -771,7 +771,7 @@ _08032D1C:
str r0, [r2, 0x4]
ldr r1, =gBanksBySide
strb r4, [r1, 0x1]
- ldr r0, =sub_8064394
+ ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand
str r0, [r2]
strb r5, [r1]
ldr r1, =gNoOfAllBanks
@@ -797,7 +797,7 @@ _08032D48:
ldr r1, =gBanksBySide
movs r0, 0
strb r0, [r1]
- ldr r3, =sub_8064394
+ ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand
str r3, [r2, 0x4]
strb r5, [r1, 0x1]
str r4, [r2, 0x8]
@@ -814,7 +814,7 @@ _08032D98:
str r0, [r2, 0x4]
ldr r1, =gBanksBySide
strb r3, [r1, 0x1]
- ldr r3, =sub_8064394
+ ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand
str r3, [r2]
strb r5, [r1]
str r0, [r2, 0xC]
@@ -860,7 +860,7 @@ _08032E1C:
str r0, [r2]
ldr r1, =gBanksBySide
strb r3, [r1]
- ldr r3, =sub_8064394
+ ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand
str r3, [r2, 0x4]
strb r5, [r1, 0x1]
ldr r0, =SetBankFuncToPlayerBufferRunCommand
@@ -1057,7 +1057,7 @@ _08032FD4:
lsls r0, 2
ldr r1, =gBattleBankFunc
adds r0, r1
- ldr r1, =sub_8064394
+ ldr r1, =SetBankFuncToLinkOpponentBufferRunCommand
str r1, [r0]
ldrh r0, [r2, 0x18]
cmp r0, 0x2
diff --git a/asm/rom4.s b/asm/rom4.s
index 99d16c8fa..8f1875206 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -3636,7 +3636,7 @@ SetFieldVBlankCallback: @ 8086380
VBlankCB_Field: @ 8086390
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl sub_80BA0A8
bl FieldUpdateBgTilemapScroll
bl TransferPlttBuffer
diff --git a/asm/rom5.s b/asm/rom5.s
index 08676a6dc..01659389c 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -561,7 +561,7 @@ _080A9786:
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
@@ -694,7 +694,7 @@ _080A9914:
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r1, [r3]
lsls r0, r1, 4
@@ -778,7 +778,7 @@ _080A998C:
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
diff --git a/asm/rom6.s b/asm/rom6.s
index 7e8fcc626..289f5901b 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -582,7 +582,7 @@ sub_813591C: @ 813591C
sub_8135938: @ 8135938
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -1921,7 +1921,7 @@ _081364B4:
lsls r0, 26
lsrs r0, 27
bl rotscale_free_entry
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081364E0:
pop {r4,r5}
@@ -3429,7 +3429,7 @@ sub_81371D4: @ 81371D4
sub_81371EC: @ 81371EC
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/rom_8034C54.s b/asm/rom_8034C54.s
index 420be2a3b..64acedc98 100644
--- a/asm/rom_8034C54.s
+++ b/asm/rom_8034C54.s
@@ -7022,7 +7022,7 @@ _08038A3A:
movs r0, 0x46
bl SetGpuReg
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80BA0A8
pop {r0}
diff --git a/asm/rom_8072304.s b/asm/rom_8072304.s
index 16fd5175d..3b6b729ba 100644
--- a/asm/rom_8072304.s
+++ b/asm/rom_8072304.s
@@ -1977,7 +1977,7 @@ _08073336:
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _08073354
b _080735A8
@@ -2420,7 +2420,7 @@ _0807371C:
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
- ldr r2, =gUnknown_0202064C
+ ldr r2, =gSprites + 0x1C
adds r1, r2
ldr r0, =sub_80741C8
str r0, [r1]
@@ -3664,7 +3664,7 @@ _08074140:
movs r0, 0x73
bl sub_80A3808
_0807414A:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0807414E:
pop {r4}
@@ -3725,7 +3725,7 @@ _08074196:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
_080741BC:
pop {r4}
@@ -5900,7 +5900,7 @@ sub_8075370: @ 8075370
b _080753A8
.pool
_080753A4:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080753A8:
pop {r4}
@@ -8490,7 +8490,7 @@ sub_80768F0: @ 80768F0
ands r0, r1
cmp r0, 0
beq _08076904
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_08076904:
pop {r0}
@@ -8609,7 +8609,7 @@ sub_80769CC: @ 80769CC
ldr r0, [r2, 0x24]
cmp r0, 0
bne _080769EA
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_080769EA:
pop {r0}
diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s
index 2120d4414..c7858e764 100644
--- a/asm/rom_80A5C6C.s
+++ b/asm/rom_80A5C6C.s
@@ -5868,7 +5868,7 @@ sub_80A89C8: @ 80A89C8
sub sp, 0x4
lsls r6, r1, 24
lsrs r6, 24
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
mov r10, r0
bl CreateInvisibleSpriteWithCallback
mov r8, r0
diff --git a/asm/rom_80C6FA0.s b/asm/rom_80C6FA0.s
index 988cde997..140d82852 100644
--- a/asm/rom_80C6FA0.s
+++ b/asm/rom_80C6FA0.s
@@ -1269,7 +1269,7 @@ sub_80C7958: @ 80C7958
str r2, [sp, 0x28]
ldr r0, =gDummyObjectRotScalAnimTable
str r0, [sp, 0x2C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [sp, 0x30]
add r0, sp, 0x4
movs r2, 0x18
@@ -1701,7 +1701,7 @@ _080C7D24:
sub_80C7D28: @ 80C7D28
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl sub_80D2AA4
bl TransferPlttBuffer
ldr r0, =gUnknown_02039D08
@@ -5869,7 +5869,7 @@ _080CA2E6:
negs r1, r1
ands r1, r0
strb r1, [r4, 0x1]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080CA30E:
pop {r4}
@@ -7669,7 +7669,7 @@ _080CB250:
strh r0, [r1]
ldrh r0, [r2, 0x34]
strh r0, [r2, 0x20]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_080CB266:
pop {r0}
@@ -7702,7 +7702,7 @@ _080CB28C:
lsrs r0, 16
cmp r0, 0xB6
bls _080CB2A8
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_080CB2A8:
pop {r0}
@@ -8690,7 +8690,7 @@ _080CBA7C:
adds r0, 0x10
_080CBA8E:
strh r0, [r3, 0x22]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
ldr r0, =gUnknown_02039D08
ldr r2, [r0]
@@ -9040,7 +9040,7 @@ _080CBD34:
ldr r0, =0x00000a6c
adds r1, r0
ldr r2, [r1]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
movs r0, 0
str r0, [r1]
@@ -9085,7 +9085,7 @@ _080CBD8E:
ldr r2, =0x00000a6c
adds r0, r1, r2
ldr r2, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
ldr r4, =0x00000c5d
adds r1, r4
@@ -9249,7 +9249,7 @@ _080CBEBE:
adds r1, r7
ldr r0, [r1]
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r1, 0x1C]
_080CBEF2:
movs r0, 0x1
@@ -11186,7 +11186,7 @@ _080CCF44:
ldrsh r1, [r2, r3]
cmp r0, r1
bne _080CCF5C
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_080CCF5C:
pop {r0}
@@ -11698,7 +11698,7 @@ sub_80CD2E8: @ 80CD2E8
strb r0, [r6, 0x5]
adds r5, 0x1C
adds r4, r5
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4]
adds r0, r6, 0
b _080CD362
@@ -19209,7 +19209,7 @@ _080D1226:
cmp r0, 0x8
beq _080D124E
ldr r1, [r2, 0x1C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _080D1268
ldr r0, =sub_80D1AD8
@@ -20197,7 +20197,7 @@ sub_80D1A48: @ 80D1A48
lsrs r0, 24
movs r1, 0
bl sub_80D1740
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080D1A68:
pop {r4}
@@ -20351,7 +20351,7 @@ _080D1B42:
lsls r2, 24
lsrs r2, 24
bl sub_80D140C
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080D1B8A:
pop {r4}
@@ -20508,7 +20508,7 @@ _080D1C5E:
lsls r2, 24
lsrs r2, 24
bl sub_80D140C
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x24]
@@ -20535,7 +20535,7 @@ sub_80D1CCC: @ 80D1CCC
negs r1, r1
cmp r0, r1
bge _080D1CFC
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
adds r0, r2, 0
bl sub_80D13C4
@@ -26812,7 +26812,7 @@ _080D4DA8:
lsrs r1, 24
adds r0, r4, 0
bl StartObjectImageAnim
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080D4DB8:
pop {r4}
@@ -26868,7 +26868,7 @@ ObjectCB_ShakeBagVisual: @ 80D4E0C
adds r0, r4, 0
movs r1, 0
bl StartObjectRotScalAnim
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080D4E28:
pop {r4}
diff --git a/asm/rom_813C5BC.s b/asm/rom_813C5BC.s
index 8abb1bfd8..480a421c9 100644
--- a/asm/rom_813C5BC.s
+++ b/asm/rom_813C5BC.s
@@ -373,7 +373,7 @@ sub_813C890: @ 813C890
sub_813C8D8: @ 813C8D8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/rom_8158B30.s b/asm/rom_8158B30.s
index dc983d86a..af3f67692 100644
--- a/asm/rom_8158B30.s
+++ b/asm/rom_8158B30.s
@@ -1249,7 +1249,7 @@ sub_815955C: @ 815955C
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08159580
bl dp01_tbl6_exec_completed
@@ -1288,7 +1288,7 @@ sub_81595AC: @ 81595AC
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081595D0
bl dp01_tbl6_exec_completed
@@ -4640,7 +4640,7 @@ _0815B0BC:
strb r0, [r3]
adds r5, 0x1C
adds r1, r5
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r1]
_0815B120:
ldrh r1, [r6, 0xA]
@@ -6459,7 +6459,7 @@ sub_815BFF4: @ 815BFF4
adds r6, 0x1C
adds r0, r3, r6
ldr r2, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _0815C040
movs r1, 0x3C
@@ -6527,7 +6527,7 @@ sub_815C050: @ 815C050
orrs r0, r1
mov r1, r12
strb r0, [r1]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
_0815C09C:
pop {r0}
@@ -15100,7 +15100,7 @@ _08160618:
sub_8160624: @ 8160624
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -25929,7 +25929,7 @@ sub_816631C: @ 816631C
sub_8166340: @ 8166340
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r0, =gUnknown_0203BCAC
ldr r0, [r0]
@@ -27736,7 +27736,7 @@ sub_8167338: @ 8167338
ldr r6, =gUnknown_085DFD28
adds r0, r6, 0x2
mov r8, r0
- ldr r7, =gUnknown_0202064C
+ ldr r7, =gSprites + 0x1C
_08167360:
ldr r0, [r5]
adds r0, 0x61
@@ -29557,7 +29557,7 @@ _08168398:
_081683A0:
ldrh r0, [r2, 0x30]
strh r0, [r2, 0x20]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081683A8:
pop {r4}
@@ -29791,7 +29791,7 @@ sub_816856C: @ 816856C
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08168590
bl dp01_tbl5_exec_completed
@@ -29972,7 +29972,7 @@ _081686D2:
adds r4, 0x1C
adds r0, r4
ldr r3, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r3, r0
bne _081687DC
ldr r0, =gBankSpriteIds
@@ -30102,7 +30102,7 @@ sub_8168818: @ 8168818
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08168842
movs r4, 0x1
@@ -30380,7 +30380,7 @@ sub_8168A90: @ 8168A90
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08168AB4
bl dp01_tbl5_exec_completed
@@ -34085,7 +34085,7 @@ sub_816AA80: @ 816AA80
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
diff --git a/asm/rom_8184DA4.s b/asm/rom_8184DA4.s
index 2ac90c585..760753619 100644
--- a/asm/rom_8184DA4.s
+++ b/asm/rom_8184DA4.s
@@ -2814,7 +2814,7 @@ sub_8186558: @ 8186558
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818657C
bl sub_81871AC
@@ -2839,7 +2839,7 @@ sub_8186590: @ 8186590
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081865B4
bl sub_81871AC
@@ -2865,7 +2865,7 @@ sub_81865C8: @ 81865C8
adds r0, 0x1C
adds r0, r2, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818661A
adds r0, r2, r5
@@ -2967,7 +2967,7 @@ _081866A4:
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
mov r8, r2
cmp r1, r0
bne _08186764
@@ -2999,7 +2999,7 @@ _081866F8:
adds r5, 0x1C
adds r0, r5
ldr r4, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
mov r8, r2
cmp r4, r0
bne _08186764
@@ -3412,7 +3412,7 @@ _08186A6A:
adds r2, 0x1C
adds r0, r2
ldr r3, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r3, r0
bne _08186B26
ldr r0, =gBankSpriteIds
@@ -3440,7 +3440,7 @@ _08186AC8:
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _08186B26
ldr r6, =gBankSpriteIds
@@ -3614,7 +3614,7 @@ sub_8186C48: @ 8186C48
adds r0, 0x1C
adds r0, r2, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08186CFA
adds r0, r2, r4
@@ -3885,7 +3885,7 @@ sub_8186EA4: @ 8186EA4
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08186EF0
ldr r0, =gUnknown_020244D0
@@ -3949,7 +3949,7 @@ sub_8186F14: @ 8186F14
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _08186F5E
ldr r0, =nullsub_18
@@ -3997,7 +3997,7 @@ sub_8186F94: @ 8186F94
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08187050
ldrb r1, [r3]
@@ -4104,7 +4104,7 @@ _081870B6:
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08187120
ldr r0, [r6]
@@ -6593,7 +6593,7 @@ sub_81885D8: @ 81885D8
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFE
@@ -7002,7 +7002,7 @@ sub_8188A4C: @ 8188A4C
adds r0, r1
lsls r0, 2
adds r0, r5
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
bl oamt_set_x3A_32
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
@@ -8775,7 +8775,7 @@ sub_81899B8: @ 81899B8
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081899DC
bl sub_818A514
@@ -8801,7 +8801,7 @@ sub_81899F0: @ 81899F0
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08189A40
movs r0, 0
@@ -8907,7 +8907,7 @@ _08189ADA:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08189B42
b _08189B48
@@ -8925,7 +8925,7 @@ _08189B0C:
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _08189B42
movs r0, 0x2
@@ -9093,7 +9093,7 @@ _08189C80:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _08189CE6
b _08189CE4
@@ -9111,7 +9111,7 @@ _08189CB0:
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _08189CE6
movs r0, 0x2
@@ -9435,7 +9435,7 @@ _08189F62:
adds r4, 0x1C
adds r0, r4
ldr r2, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _0818A02A
ldr r0, =gBankSpriteIds
@@ -9809,7 +9809,7 @@ sub_818A2B4: @ 818A2B4
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818A306
adds r0, r3, 0
@@ -9870,7 +9870,7 @@ sub_818A328: @ 818A328
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818A364
bl sub_818A514
@@ -10016,7 +10016,7 @@ _0818A4A2:
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _0818A4E8
ldr r0, [r6]
@@ -12517,7 +12517,7 @@ sub_818BA6C: @ 818BA6C
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
@@ -13034,7 +13034,7 @@ sub_818BFB8: @ 818BFB8
adds r0, r1
lsls r0, 2
adds r0, r5
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
bl oamt_set_x3A_32
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
@@ -21522,7 +21522,7 @@ _081907BC:
asrs r0, 16
cmp r0, 0x28
bne _081907F0
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
b _081907F0
.pool
@@ -21576,7 +21576,7 @@ _08190820:
asrs r0, 16
cmp r0, 0x28
bne _08190858
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
b _08190858
.pool
@@ -21634,7 +21634,7 @@ _0819088C:
asrs r0, 16
cmp r0, 0x40
bne _081908C0
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
b _081908C0
.pool
@@ -21689,7 +21689,7 @@ _081908F6:
asrs r0, 16
cmp r0, 0x40
bne _08190930
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
b _08190930
.pool
@@ -29412,7 +29412,7 @@ sub_8194B70: @ 8194B70
movs r0, 0x1A
bl SetGpuReg
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -29540,7 +29540,7 @@ sub_8194CE4: @ 8194CE4
movs r2, 0x1
bl ChangeBgY
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80BA0A8
pop {r0}
@@ -32915,7 +32915,7 @@ sub_81968BC: @ 81968BC
cmp r4, 0
bne _081968EC
movs r0, 0
- bl DummyObjectCallback
+ bl SpriteCallbackDummy
_081968EC:
movs r1, 0xFF
lsrs r0, r4, 8
@@ -40723,7 +40723,7 @@ sub_819A4C8: @ 819A4C8
sub_819A4E4: @ 819A4E4
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -43948,7 +43948,7 @@ sub_819C040: @ 819C040
adds r1, r2
ldr r1, [r1]
bl _call_via_r1
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0819C0DC:
pop {r4-r6}
@@ -44257,7 +44257,7 @@ _0819C2FC:
adds r0, r1
lsls r0, 2
adds r0, r6
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
mov r10, r1
str r1, [r0]
ldr r5, =0x0000029d
@@ -44453,7 +44453,7 @@ sub_819C4B4: @ 819C4B4
adds r0, r1
lsls r0, 2
adds r0, r3
- ldr r5, =DummyObjectCallback
+ ldr r5, =SpriteCallbackDummy
str r5, [r0]
adds r4, r2, r4
ldrb r1, [r4]
@@ -44796,7 +44796,7 @@ sub_819C7E0: @ 819C7E0
sub_819C7FC: @ 819C7FC
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -50261,7 +50261,7 @@ sub_819F600: @ 819F600
strh r2, [r1, 0x16]
ldr r1, [r1]
bl _call_via_r1
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0819F640:
pop {r4}
@@ -72295,7 +72295,7 @@ c2_bag_3: @ 81AAD5C
vblank_cb_bag_menu: @ 81AAD78
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -82312,7 +82312,7 @@ sub_81B01B0: @ 81B01B0
sub_81B01CC: @ 81B01CC
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/rom_81BAD84.s b/asm/rom_81BAD84.s
index a57a14a6d..094a3fa71 100644
--- a/asm/rom_81BAD84.s
+++ b/asm/rom_81BAD84.s
@@ -121,7 +121,7 @@ sub_81BAE60: @ 81BAE60
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BAE84
bl dp01_tbl3_exec_completed
@@ -147,7 +147,7 @@ sub_81BAE98: @ 81BAE98
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BAEE8
movs r0, 0
@@ -243,7 +243,7 @@ _081BAF6C:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BAFD8
b _081BAFD6
@@ -262,7 +262,7 @@ _081BAFA0:
adds r4, 0x1C
adds r0, r4
ldr r2, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _081BAFD8
movs r0, 0x2
@@ -367,7 +367,7 @@ _081BB07A:
adds r5, 0x1C
adds r0, r5
ldr r3, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r3, r0
bne _081BB196
ldr r0, =gBankSpriteIds
@@ -1354,7 +1354,7 @@ sub_81BB92C: @ 81BB92C
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BB97E
adds r0, r3, 0
@@ -1415,7 +1415,7 @@ dp01t_35_3_free_vram: @ 81BB9A0
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BB9DC
bl dp01_tbl3_exec_completed
@@ -1561,7 +1561,7 @@ _081BBB1A:
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BBB60
ldr r0, [r6]
@@ -4062,7 +4062,7 @@ sub_81BD0E4: @ 81BD0E4
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
@@ -4524,7 +4524,7 @@ sub_81BD5C8: @ 81BD5C8
adds r0, r1
lsls r0, 2
adds r0, r5
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
bl oamt_set_x3A_32
ldr r1, =gBattleBankFunc
ldrb r0, [r4]
@@ -7765,7 +7765,7 @@ _081BF1CC:
adds r0, 0x1C
adds r0, r2, r0
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
bne _081BF238
adds r0, r2, r3
@@ -7819,7 +7819,7 @@ sub_81BF248: @ 81BF248
ldrh r0, [r0, 0x10]
cmp r0, 0xFF
bls _081BF268
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
b _081BF2B0
.pool
@@ -8771,7 +8771,7 @@ sub_81BFAB4: @ 81BFAB4
sub_81BFAD0: @ 81BFAD0
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -17651,7 +17651,7 @@ sub_81C48B4: @ 81C48B4
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _081C48E8
movs r0, 0x1
@@ -17691,7 +17691,7 @@ sub_81C48F0: @ 81C48F0
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
bl sub_806EE98
ldr r0, [r5]
@@ -17828,7 +17828,7 @@ sub_81C4A08: @ 81C4A08
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
ldrb r1, [r2]
lsls r0, r1, 4
@@ -18540,7 +18540,7 @@ sub_81C501C: @ 81C501C
sub_81C5038: @ 81C5038
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -22097,7 +22097,7 @@ sub_81C6F68: @ 81C6F68
adds r0, r4, 0
movs r1, 0
bl StartObjectRotScalAnim
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081C6F84:
pop {r4}
@@ -22664,7 +22664,7 @@ sub_81C7418: @ 81C7418
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_81C7418
@@ -23807,7 +23807,7 @@ sub_81C7CCC: @ 81C7CCC
movs r0, 0
bl sub_81C763C
ldr r0, [r0, 0x18]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0, 0x1C]
pop {r1}
bx r1
@@ -24210,7 +24210,7 @@ sub_81C8010: @ 81C8010
adds r1, r0, 0
ldr r0, [r1, 0x1C]
ldr r2, [r0, 0x1C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r2, r0
bne _081C8034
ldr r0, [r1, 0x24]
@@ -24446,7 +24446,7 @@ _081C81B6:
_081C81C4:
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x20]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081C81CC:
pop {r0}
@@ -26279,7 +26279,7 @@ sub_81C9008: @ 81C9008
cmp r4, 0
beq _081C9028
ldr r2, [r5, 0x3C]
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r2, 0x1C]
ldr r0, [r5, 0x40]
str r1, [r0, 0x1C]
@@ -28738,7 +28738,7 @@ sub_81CA324: @ 81CA324
bl sub_81C763C
adds r3, r0, 0
movs r2, 0
- ldr r4, =DummyObjectCallback
+ ldr r4, =SpriteCallbackDummy
adds r1, r3, 0
adds r1, 0x2C
_081CA336:
@@ -28929,7 +28929,7 @@ sub_81CA474: @ 81CA474
_081CA49A:
ldrh r0, [r2, 0x3C]
strh r0, [r2, 0x20]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081CA4A2:
pop {r0}
@@ -29039,7 +29039,7 @@ _081CA526:
negs r1, r1
ands r0, r1
strb r0, [r4, 0x1]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
b _081CA578
.pool
@@ -29511,7 +29511,7 @@ sub_81CA914: @ 81CA914
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl sub_80BA0A8
pop {r0}
bx r0
@@ -32994,7 +32994,7 @@ sub_81CC420: @ 81CC420
sub_81CC42C: @ 81CC42C
ldr r0, [r0, 0x20]
ldr r1, [r0, 0x1C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
eors r1, r0
negs r0, r1
orrs r0, r1
@@ -33047,7 +33047,7 @@ _081CC484:
blt _081CC498
movs r0, 0
strh r0, [r4, 0x24]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081CC498:
pop {r4}
@@ -33075,7 +33075,7 @@ sub_81CC4A4: @ 81CC4A4
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
_081CC4CA:
pop {r0}
@@ -33329,7 +33329,7 @@ sub_81CC6A4: @ 81CC6A4
push {lr}
bl TransferPlttBuffer
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl sub_81237B4
pop {r0}
bx r0
@@ -37716,7 +37716,7 @@ _081CEAE8:
blt _081CEA8C
movs r0, 0x67
strh r0, [r7]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r7, 0x14]
cmp r4, 0x5
bhi _081CEB5C
@@ -38087,7 +38087,7 @@ sub_81CEE44: @ 81CEE44
bl sub_81CDC70
adds r4, r0, 0
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
adds r0, r4, 0
bl sub_81D2108
@@ -42733,7 +42733,7 @@ sub_81D1234: @ 81D1234
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
eors r1, r0
negs r0, r1
orrs r0, r1
@@ -42806,7 +42806,7 @@ _081D12BA:
_081D12C8:
ldrh r0, [r2, 0x34]
strh r0, [r2, 0x20]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
_081D12D0:
pop {r0}
@@ -43099,7 +43099,7 @@ sub_81D1500: @ 81D1500
sub_81D1524: @ 81D1524
ldr r0, [r0, 0x14]
ldr r1, [r0, 0x1C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
eors r1, r0
negs r0, r1
orrs r0, r1
@@ -43133,7 +43133,7 @@ sub_81D1538: @ 81D1538
orrs r0, r1
mov r1, r12
strb r0, [r1]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
_081D156A:
pop {r0}
@@ -47505,7 +47505,7 @@ _081D35D0:
b _081D35DA
.pool
_081D35D8:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
_081D35DA:
str r0, [r4, 0x1C]
_081D35DC:
@@ -50202,7 +50202,7 @@ _081D4B3A:
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x5]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r1, 0x1C]
_081D4BC4:
add sp, 0x4
@@ -53578,7 +53578,7 @@ sub_81D67D0: @ 81D67D0
sub_81D67EC: @ 81D67EC
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -57223,7 +57223,7 @@ sub_81D86CC: @ 81D86CC
lsls r5, r6, 4
adds r5, r6
lsls r5, 2
- ldr r4, =gUnknown_0202065E
+ ldr r4, =gSprites + 0x2E
adds r0, r5, r4
mov r8, r0
ldr r0, =gUnknown_0862AB2C
@@ -58345,7 +58345,7 @@ sub_81D90A8: @ 81D90A8
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
- ldr r1, =gUnknown_0202065E
+ ldr r1, =gSprites + 0x2E
mov r10, r1
adds r7, r0, r1
ldr r0, =gUnknown_0862AC90
@@ -58693,7 +58693,7 @@ _081D939E:
strh r2, [r4, 0x36]
strh r2, [r4, 0x38]
strh r2, [r4, 0x3A]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
b _081D93D2
.pool
@@ -58848,7 +58848,7 @@ sub_81D94D4: @ 81D94D4
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
- ldr r2, =gUnknown_0202065E
+ ldr r2, =gSprites + 0x2E
adds r4, r0, r2
subs r2, 0x12
adds r0, r2
@@ -61266,7 +61266,7 @@ sub_81DA848: @ 81DA848
ldrsh r0, [r2, r4]
cmp r1, r0
bne _081DA874
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r3, 0x1C]
b _081DA8B4
.pool
@@ -61482,7 +61482,7 @@ sub_81DA9BC: @ 81DA9BC
strh r0, [r4, 0x36]
b _081DAA16
_081DAA12:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_081DAA16:
pop {r4}
@@ -61542,7 +61542,7 @@ sub_81DAA74: @ 81DAA74
adds r5, 0x1C
adds r0, r5
ldr r4, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r4, r0
bne _081DAAC4
movs r0, 0x12
diff --git a/asm/roulette.s b/asm/roulette.s
index c7938de2f..4c246b9cd 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -31,7 +31,7 @@ sub_8140264: @ 8140264
push {r4,lr}
sub sp, 0x4
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_8142814
ldr r4, =gUnknown_0203AB88
@@ -1726,7 +1726,7 @@ _08141128:
lsls r0, 2
adds r2, 0x1C
adds r0, r2
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
b _08141180
.pool
@@ -6024,7 +6024,7 @@ _0814356E:
adds r3, r0, r4
adds r4, r3, 0
adds r4, 0x40
- ldr r1, =gUnknown_02020638
+ ldr r1, =gSprites + 8
adds r0, r1
ldr r0, [r0]
ldr r1, [r0]
@@ -6612,7 +6612,7 @@ _08143A64:
strb r1, [r3]
mov r1, r10
adds r2, r4, r1
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r2]
movs r1, 0
bl StartObjectImageAnim
@@ -9165,7 +9165,7 @@ _08144F42:
negs r1, r1
ands r1, r2
strb r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x3C]
@@ -9208,7 +9208,7 @@ sub_8144FB0: @ 8144FB0
strh r0, [r4, 0x22]
b _0814501C
_08144FC8:
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
adds r2, r4, 0
adds r2, 0x3E
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
index 617108424..e250a938c 100644
--- a/asm/save_failed_screen.s
+++ b/asm/save_failed_screen.s
@@ -72,7 +72,7 @@ fullscreen_save_activate: @ 8178F90
sub_8178FC8: @ 8178FC8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 48ca1afc2..55f9364c7 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1398,7 +1398,7 @@ sub_80E2900: @ 80E2900
adds r0, r4, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, =DummyObjectCallback
+ ldr r2, =SpriteCallbackDummy
str r2, [r0]
adds r1, r4
ldrb r2, [r1, 0x5]
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index 76a272c44..5f5765064 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -806,7 +806,7 @@ _080F8E6C:
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, =DummyObjectCallback
+ ldr r2, =SpriteCallbackDummy
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
diff --git a/asm/shop.s b/asm/shop.s
index 004f1c4ac..b7e24d7b7 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -379,7 +379,7 @@ CB2_BuyMenu: @ 80DFD64
VBlankCB_BuyMenu: @ 80DFD80
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -1791,7 +1791,7 @@ _080E090A:
movs r0, 0x2
str r0, [sp]
adds r0, r4, 0
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
bl AddPseudoFieldObject
lsls r0, 24
lsrs r4, r0, 24
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 4cdbeb43f..9d1c355b8 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -202,7 +202,7 @@ sub_812A670: @ 812A670
sub_812A688: @ 812A688
push {r4,lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r4, =gUnknown_0203AB34
ldr r0, [r4]
@@ -10444,7 +10444,7 @@ _0812F6E0:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812F76C
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
movs r4, 0
str r4, [sp]
movs r0, 0x5
diff --git a/asm/sprite.s b/asm/sprite.s
index 3073edc2a..2a16bdc9d 100644
--- a/asm/sprite.s
+++ b/asm/sprite.s
@@ -936,7 +936,7 @@ _08007074:
adds r5, r0, 0
cmp r5, 0x40
beq _080070D6
- ldr r1, =gUnknown_0202064C
+ ldr r1, =gSprites + 0x1C
adds r0, r6, r1
ldr r1, [r0]
adds r0, r4, 0
@@ -1089,10 +1089,10 @@ ClearSpriteCopyRequests: @ 80071B8
ldr r0, =gShouldProcessSpriteCopyRequests
movs r1, 0
strb r1, [r0]
- ldr r0, =gUnknown_02021835
+ ldr r0, =gSpriteCopyRequestCount
strb r1, [r0]
movs r2, 0
- ldr r4, =gUnknown_02021838
+ ldr r4, =gSpriteCopyRequests
movs r3, 0
adds r5, r4, 0x4
_080071CC:
@@ -1422,26 +1422,26 @@ _0800741C:
.pool
thumb_func_end Unused_ObjectTileAllocationBitArrayOp
- thumb_func_start DummyObjectCallback
-@ void DummyObjectCallback(struct obj *object)
-DummyObjectCallback: @ 8007428
+ thumb_func_start SpriteCallbackDummy
+@ void SpriteCallbackDummy(struct obj *object)
+SpriteCallbackDummy: @ 8007428
bx lr
- thumb_func_end DummyObjectCallback
+ thumb_func_end SpriteCallbackDummy
- thumb_func_start ProcessObjectCopyRequests
-@ void ProcessObjectCopyRequests()
-ProcessObjectCopyRequests: @ 800742C
+ thumb_func_start ProcessSpriteCopyRequests
+@ void ProcessSpriteCopyRequests()
+ProcessSpriteCopyRequests: @ 800742C
push {r4-r7,lr}
ldr r0, =gShouldProcessSpriteCopyRequests
ldrb r0, [r0]
cmp r0, 0
beq _08007474
movs r4, 0
- ldr r1, =gUnknown_02021835
+ ldr r1, =gSpriteCopyRequestCount
ldrb r0, [r1]
cmp r0, 0
beq _0800746E
- ldr r6, =gUnknown_02021838
+ ldr r6, =gSpriteCopyRequests
adds r7, r6, 0x4
adds r5, r1, 0
_08007446:
@@ -1473,7 +1473,7 @@ _08007474:
pop {r0}
bx r0
.pool
- thumb_func_end ProcessObjectCopyRequests
+ thumb_func_end ProcessSpriteCopyRequests
thumb_func_start AddPicToObjectCopyRequests
@ void AddPicToObjectCopyRequests(u16 picIndex, u16 targetTileNum, struct obj_tiles *pics)
@@ -1484,11 +1484,11 @@ AddPicToObjectCopyRequests: @ 8007488
lsrs r2, r0, 16
lsls r1, 16
lsrs r6, r1, 16
- ldr r4, =gUnknown_02021835
+ ldr r4, =gSpriteCopyRequestCount
ldrb r0, [r4]
cmp r0, 0x3F
bhi _080074D8
- ldr r3, =gUnknown_02021838
+ ldr r3, =gSpriteCopyRequests
adds r1, r0, 0
lsls r0, r1, 1
adds r0, r1
@@ -1533,11 +1533,11 @@ AddTilesToObjectCopyRequests: @ 80074EC
adds r5, r1, 0
lsls r2, 16
lsrs r6, r2, 16
- ldr r3, =gUnknown_02021835
+ ldr r3, =gSpriteCopyRequestCount
ldrb r0, [r3]
cmp r0, 0x3F
bhi _0800752C
- ldr r2, =gUnknown_02021838
+ ldr r2, =gSpriteCopyRequests
adds r1, r0, 0
lsls r0, r1, 1
adds r0, r1
diff --git a/asm/starter_choose.s b/asm/starter_choose.s
index f3ca3df8d..20430db5c 100644
--- a/asm/starter_choose.s
+++ b/asm/starter_choose.s
@@ -27,7 +27,7 @@ _08133EE8:
sub_8133EF8: @ 8133EF8
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/asm/title_screen.s b/asm/title_screen.s
index 6fbbb401d..38e5848b8 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -466,7 +466,7 @@ title_screen_vblank_callback: @ 80AA780
push {lr}
bl sub_80BA0A8
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
ldr r0, =gUnknown_02022E1A
ldrh r1, [r0]
diff --git a/asm/trade.s b/asm/trade.s
index 2297d7b73..b084ff084 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -1721,7 +1721,7 @@ _080780F6:
sub_807811C: @ 807811C
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -6961,7 +6961,7 @@ sub_807AC24: @ 807AC24
push {lr}
bl sub_807ABCC
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
@@ -7207,7 +7207,7 @@ _0807ADE0:
lsls r0, 2
adds r3, 0x1C
adds r0, r3
- ldr r1, =DummyObjectCallback
+ ldr r1, =SpriteCallbackDummy
str r1, [r0]
_0807AE36:
pop {r3}
@@ -9091,7 +9091,7 @@ _0807C1DC:
adds r4, 0x1C
adds r0, r4
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _0807C1FC
bl _0807CFB4
@@ -10358,7 +10358,7 @@ _0807CCD0:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _0807CCEE
b _0807CFB4
@@ -11153,7 +11153,7 @@ _0807D5B8:
adds r4, 0x1C
adds r0, r4
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _0807D5D8
bl _0807E400
@@ -12463,7 +12463,7 @@ _0807E11C:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
cmp r1, r0
beq _0807E13A
b _0807E400
@@ -12988,7 +12988,7 @@ _0807E5B6:
bne _0807E5CE
movs r0, 0x1
strh r0, [r5, 0x3C]
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r5, 0x1C]
_0807E5CE:
pop {r4,r5}
@@ -13165,7 +13165,7 @@ _0807E706:
asrs r0, 16
cmp r0, 0x6C
bne _0807E72C
- ldr r0, =DummyObjectCallback
+ ldr r0, =SpriteCallbackDummy
str r0, [r4, 0x1C]
_0807E72C:
pop {r4}
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 27104eba3..6a1ed00f1 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -9,7 +9,7 @@
sub_80C2690: @ 80C2690
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_80C48C8
ldr r0, =gUnknown_02039CE8
@@ -5227,7 +5227,7 @@ pokemon_details: @ 80C53AC
bl SetBgAffine
_080C5416:
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
add sp, 0x10
pop {r4-r7}
diff --git a/asm/wallclock.s b/asm/wallclock.s
index cfe048a54..c2ffaeed7 100644
--- a/asm/wallclock.s
+++ b/asm/wallclock.s
@@ -9,7 +9,7 @@
sub_81347B4: @ 81347B4
push {lr}
bl LoadOamFromSprites
- bl ProcessObjectCopyRequests
+ bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
diff --git a/data/data3.s b/data/data3.s
index b06d2566e..ddacfebf2 100644
--- a/data/data3.s
+++ b/data/data3.s
@@ -1777,7 +1777,7 @@ gNewGameBirchObjectTemplate:: @ 855C244
.4byte gNewGameBirchImageAnimTable
.4byte gNewGameBirchPicTable
.4byte gDummyObjectRotScalAnimTable
- .4byte DummyObjectCallback
+ .4byte SpriteCallbackDummy
.align 2
gFieldEffectObjectPaletteInfo4:: @ 855C25C
diff --git a/data/graphics/field_objects/field_effect_objects.inc b/data/graphics/field_objects/field_effect_objects.inc
index bd0945c41..b0f2dba85 100644
--- a/data/graphics/field_objects/field_effect_objects.inc
+++ b/data/graphics/field_objects/field_effect_objects.inc
@@ -261,7 +261,7 @@ gFieldEffectObjectTemplate_Arrow:: @ 850CC5C
.4byte gFieldEffectObjectImageAnimTable_Arrow
.4byte gFieldEffectObjectPicTable_Arrow
.4byte gDummyObjectRotScalAnimTable
- .4byte DummyObjectCallback
+ .4byte SpriteCallbackDummy
.align 2
gFieldEffectObjectPicTable_GroundImpactDust:: @ 850CC74
@@ -829,7 +829,7 @@ gFieldEffectObjectTemplate_Unknown21:: @ 850D28C
.4byte gDummyObjectImageAnimTable
.4byte NULL
.4byte gFieldEffectObjectRotScalAnimTable_Unknown21
- .4byte DummyObjectCallback
+ .4byte SpriteCallbackDummy
.align 2
gFieldEffectObjectPicTable_BerryTreeGrowthSparkle:: @ 850D2A4
@@ -1001,7 +1001,7 @@ gFieldEffectObjectTemplate_Bird:: @ 850D4A8
.4byte gFieldEffectObjectImageAnimTable_Bird
.4byte gFieldEffectObjectPicTable_Bird
.4byte gDummyObjectRotScalAnimTable
- .4byte DummyObjectCallback
+ .4byte SpriteCallbackDummy
.align 2
gFieldEffectObjectPicTable_ShortGrass:: @ 850D4C0
diff --git a/include/global.h b/include/global.h
index 08ccc670b..93f5f0a7c 100644
--- a/include/global.h
+++ b/include/global.h
@@ -75,6 +75,18 @@ enum
BAG_KEYITEMS
};
+struct Coords16
+{
+ s16 x;
+ s16 y;
+};
+
+struct UCoords16
+{
+ u16 x;
+ u16 y;
+};
+
struct SaveBlock2
{
/*0x00*/ u8 playerName[8];
diff --git a/ld_script.txt b/ld_script.txt
index ebcf65711..1e4bc11e5 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -58,7 +58,13 @@ SECTIONS {
asm/decompress.o(.text);
asm/rom_8034C54.o(.text);
asm/battle_3.o(.text);
- asm/rom_8045FFC.o(.text);
+ asm/battle_4.o(.text);
+ asm/battle_5.o(.text);
+ asm/battle_controller_player.o(.text);
+ asm/battle_7.o(.text);
+ asm/battle_controller_opponent.o(.text);
+ asm/battle_9.o(.text);
+ asm/battle_controller_linkopponent.o(.text);
asm/pokemon_1.o(.text);
asm/calculate_base_damage.o(.text);
asm/pokemon_2.o(.text);
diff --git a/src/sprite.c b/src/sprite.c
index 5c17035fa..41c5ed638 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -1,3 +1,3 @@
#include "global.h"
-
+#include "sprite.h"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index b20e7dcbe..04b440761 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -11,16 +11,7 @@ gTextPrinters: @ 20201B0
.space 0x480
gSprites: @ 2020630
- .space 0x8
-
-gUnknown_02020638: @ 2020638
- .space 0x14
-
-gUnknown_0202064C: @ 202064C
- .space 0x12
-
-gUnknown_0202065E: @ 202065E
- .space 0x1116
+ .space 0x1144
gSpritePriorities: @ 2021774
.space 0x80
@@ -31,10 +22,10 @@ gSpriteOrder: @ 20217F4
gShouldProcessSpriteCopyRequests: @ 2021834
.space 0x1
-gUnknown_02021835: @ 2021835
+gSpriteCopyRequestCount: @ 2021835
.space 0x3
-gUnknown_02021838: @ 2021838
+gSpriteCopyRequests: @ 2021838
.space 0x300
gOamLimit: @ 2021B38