pokeemerald/asm/battle_controller_opponent.s
2017-10-10 21:45:07 +02:00

6677 lines
100 KiB
ArmAsm

.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 SetBankFuncToOpponentBufferRunCommand
SetBankFuncToOpponentBufferRunCommand: @ 805F164
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, =OpponentBufferRunCommand
str r1, [r0]
bx lr
.pool
thumb_func_end SetBankFuncToOpponentBufferRunCommand
thumb_func_start OpponentBufferRunCommand
OpponentBufferRunCommand: @ 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, =gOpponentBufferCommands
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _0805F1CC
.pool
_0805F1C8:
bl OpponentBufferExecCompleted
_0805F1CC:
pop {r0}
bx r0
thumb_func_end OpponentBufferRunCommand
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 OpponentBufferExecCompleted
_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 OpponentBufferExecCompleted
_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 FreeSpriteOamMatrix
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 OpponentBufferExecCompleted
_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, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
_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, =gHealthBoxesIds
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, =gHealthBoxesIds
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, =gBattleSpritesDataPtr
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 FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
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 FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
_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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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, =gHealthBoxesIds
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, =gHealthBoxesIds
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, =gBattleSpritesDataPtr
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 IsCryPlayingOrClearCrySongs
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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 FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
bl OpponentBufferExecCompleted
_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, =gHealthBoxesIds
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 OpponentBufferExecCompleted
_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, =gHealthBoxesIds
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8072984
bl OpponentBufferExecCompleted
_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, =gBattleSpritesDataPtr
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 FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldrb r0, [r6]
bl sub_805EEE0
ldr r1, =gHealthBoxesIds
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl OpponentBufferExecCompleted
_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 OpponentBufferExecCompleted
_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 OpponentBufferExecCompleted
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, =gHealthBoxesIds
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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 IsCryPlayingOrClearCrySongs
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, =SpriteCallbackDummy_2
cmp r1, r0
bne _0805FCDA
_0805FCCA:
ldr r0, =gMPlay_BGM
ldr r1, =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
bl OpponentBufferExecCompleted
_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, =gBattleSpritesDataPtr
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 FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
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 StartSpriteAnim
ldr r4, =gHealthBoxesIds
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
_0805FEDA:
pop {r0}
bx r0
.pool
thumb_func_end sub_805FEB8
thumb_func_start bx_803B0F4
bx_803B0F4: @ 805FEE8
push {lr}
ldr r0, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
_0805FF0A:
pop {r0}
bx r0
.pool
thumb_func_end bx_803B0F4
thumb_func_start OpponentBufferExecCompleted
OpponentBufferExecCompleted: @ 805FF18
push {r4,lr}
sub sp, 0x4
ldr r1, =gBattleBankFunc
ldr r4, =gActiveBank
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, =OpponentBufferRunCommand
str r1, [r0]
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _0805FF6C
bl GetMultiplayerId
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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, =gBattleBufferA + 3
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 OpponentBufferExecCompleted
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, =gBattleMonForms
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
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, =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, =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, =gBattleSpritesDataPtr
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 FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldrb r0, [r6]
bl sub_805EEE0
ldr r1, =gHealthBoxesIds
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8072984
bl OpponentBufferExecCompleted
_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, =gBattleSpritesDataPtr
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 GetSecretBaseTrainerPicIndex
b _0806175A
.pool
_080616B0:
ldr r3, =gTrainerBattleOpponent_A
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, =gTrainerBattleOpponent_B
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, =gTrainerBattleOpponent_B
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, =gTrainerBattleOpponent_B
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 sub_806A12C
ldr r6, =gUnknown_0202499C
mov r9, r7
ldr r1, =gTrainerFrontPicCoords
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 GetSecretBaseTrainerPicIndex
b _080619A2
.pool
_080618F8:
ldr r3, =gTrainerBattleOpponent_A
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, =gTrainerBattleOpponent_B
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, =gTrainerBattleOpponent_B
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, =gTrainerBattleOpponent_B
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 sub_806A12C
ldr r0, =gUnknown_0202499C
ldr r2, =gTrainerFrontPicCoords
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 StoreSpriteCallbackInData6
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, =gBattleSpritesDataPtr
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 PlaySE12WithPanning
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 OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8061C48
thumb_func_start sub_8061C54
sub_8061C54: @ 8061C54
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8061C54
thumb_func_start sub_8061C60
sub_8061C60: @ 8061C60
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8061C60
thumb_func_start sub_8061C6C
sub_8061C6C: @ 8061C6C
push {lr}
bl OpponentBufferExecCompleted
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, =gMovePowerMoveAnim
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x4
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x5
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r4, =gMoveDmgMoveAnim
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x6
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x7
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r3, r1
mov r1, r12
adds r1, 0x8
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 16
orrs r3, r1
mov r1, r12
adds r1, 0x9
adds r2, r1
ldrb r1, [r2]
lsls r1, 24
orrs r3, r1
str r3, [r4]
ldr r3, =gHappinessMoveAnim
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
adds r2, 0xA
adds r1, r2
ldrb r1, [r1]
strb r1, [r3]
ldr r4, =gWeatherMoveAnim
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0xC
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0xD
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r3, =gDisableStructMoveAnim
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 OpponentBufferExecCompleted
b _08061D9E
.pool
_08061D80:
ldr r0, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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, =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gAnimScriptActive
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, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
_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, =gBattle_BG0_X
movs r1, 0
strh r1, [r0]
ldr r0, =gBattle_BG0_Y
strh r1, [r0]
ldr r5, =gActiveBank
ldrb r4, [r5]
lsls r4, 9
ldr r0, =gBattleBufferA + 2
adds r4, r0
ldrh r0, [r4]
bl BufferStringBattle
ldr r0, =gDisplayedStringBattle
movs r1, 0
bl sub_814F9EC
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 OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8061F90
thumb_func_start sub_8061F9C
sub_8061F9C: @ 8061F9C
push {lr}
bl AI_TrySwitchOrUseItem
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8061F9C
thumb_func_start sub_8061FAC
sub_8061FAC: @ 8061FAC
push {lr}
bl OpponentBufferExecCompleted
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 EmitCmd_x21
_08061FDA:
bl OpponentBufferExecCompleted
b _08062156
.pool
_08061FE4:
ldr r0, =gActiveBank
ldrb r0, [r0]
lsls r0, 9
ldr r1, =gBattleBufferA + 4
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 BattleAI_ChooseMoveOrAction
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 GetBankByIdentity
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 GetBankByIdentity
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 EmitCmd_x21
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 EmitCmd_x21
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 GetBankByIdentity
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
bl EmitCmd_x21
b _08062152
.pool
_0806213C:
movs r0, 0
bl GetBankByIdentity
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
bl EmitCmd_x21
_08062152:
bl OpponentBufferExecCompleted
_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 OpponentBufferExecCompleted
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 GetMostSuitableMonToSwitchInto
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 GetBankByIdentity
lsls r0, 24
lsrs r5, r0, 24
adds r7, r5, 0
b _080621E8
.pool
_080621D4:
movs r0, 0x1
bl GetBankByIdentity
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x3
bl GetBankByIdentity
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 OpponentBufferExecCompleted
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8062188
thumb_func_start sub_8062288
sub_8062288: @ 8062288
push {lr}
bl OpponentBufferExecCompleted
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, =gHealthBoxesIds
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, =gHealthBoxesIds
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 OpponentBufferExecCompleted
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, =gHealthBoxesIds
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, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8062470
thumb_func_start sub_806247C
sub_806247C: @ 806247C
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_806247C
thumb_func_start sub_8062488
sub_8062488: @ 8062488
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8062488
thumb_func_start sub_8062494
sub_8062494: @ 8062494
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8062494
thumb_func_start sub_80624A0
sub_80624A0: @ 80624A0
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80624A0
thumb_func_start sub_80624AC
sub_80624AC: @ 80624AC
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80624AC
thumb_func_start sub_80624B8
sub_80624B8: @ 80624B8
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80624B8
thumb_func_start sub_80624C4
sub_80624C4: @ 80624C4
push {lr}
bl OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80624C4
thumb_func_start sub_80624D0
sub_80624D0: @ 80624D0
push {lr}
bl OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 PlaySE12WithPanning
bl OpponentBufferExecCompleted
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 BattleMusicStop
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 PlayBGM
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 PlayFanfare
_08062680:
bl OpponentBufferExecCompleted
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 PlayCry3
bl OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 StoreSpriteCallbackInData6
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, =gBattleSpritesDataPtr
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 FreeSpriteOamMatrix
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 OpponentBufferExecCompleted
b _08062A12
.pool
_08062948:
ldr r4, =gBattleSpritesDataPtr
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, =gBattleBufferA + 4
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, =gBattleSpritesDataPtr
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, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
_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, =gBattleSpritesDataPtr
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 OpponentBufferExecCompleted
pop {r0}
bx r0
.pool
thumb_func_end sub_8062A74
thumb_func_start sub_8062AC4
sub_8062AC4: @ 8062AC4
push {lr}
bl OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
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 OpponentBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_8062B98
thumb_func_start sub_8062BA4
sub_8062BA4: @ 8062BA4
push {lr}
bl OpponentBufferExecCompleted
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, =gPreBattleCallback1
ldr r0, [r0]
str r0, [r2]
ldr r0, [r2, 0x8]
bl SetMainCallback2
_08062BDA:
bl OpponentBufferExecCompleted
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.