pokeemerald/asm/battle_7.s
2017-11-02 18:19:49 +01:00

2989 lines
46 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start DoStatusAnimation
DoStatusAnimation: @ 805D808
push {r4-r6,lr}
adds r4, r1, 0
lsls r0, 24
ldr r6, =gBattleSpritesDataPtr
ldr r1, [r6]
ldr r5, =gActiveBank
ldrb r2, [r5]
ldr r3, [r1, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r3
ldrb r2, [r1]
movs r3, 0x10
orrs r2, r3
strb r2, [r1]
cmp r0, 0
bne _0805D888
cmp r4, 0x20
bne _0805D844
ldrb r0, [r5]
movs r1, 0x6
bl move_anim_start_t2
b _0805D902
.pool
_0805D844:
cmp r4, 0x8
beq _0805D850
movs r0, 0x80
ands r0, r4
cmp r0, 0
beq _0805D85A
_0805D850:
ldrb r0, [r5]
movs r1, 0
bl move_anim_start_t2
b _0805D902
_0805D85A:
cmp r4, 0x10
bne _0805D868
ldrb r0, [r5]
movs r1, 0x2
bl move_anim_start_t2
b _0805D902
_0805D868:
movs r0, 0x7
ands r0, r4
cmp r0, 0
beq _0805D87A
ldrb r0, [r5]
movs r1, 0x4
bl move_anim_start_t2
b _0805D902
_0805D87A:
cmp r4, 0x40
bne _0805D8EA
ldrb r0, [r5]
movs r1, 0x5
bl move_anim_start_t2
b _0805D902
_0805D888:
movs r0, 0xF0
lsls r0, 12
ands r0, r4
cmp r0, 0
beq _0805D89C
ldrb r0, [r5]
movs r1, 0x3
bl move_anim_start_t2
b _0805D902
_0805D89C:
movs r0, 0x7
ands r0, r4
cmp r0, 0
beq _0805D8AE
ldrb r0, [r5]
movs r1, 0x1
bl move_anim_start_t2
b _0805D902
_0805D8AE:
movs r0, 0x80
lsls r0, 21
ands r0, r4
cmp r0, 0
beq _0805D8C2
ldrb r0, [r5]
movs r1, 0x7
bl move_anim_start_t2
b _0805D902
_0805D8C2:
movs r0, 0x80
lsls r0, 20
ands r0, r4
cmp r0, 0
beq _0805D8D6
ldrb r0, [r5]
movs r1, 0x8
bl move_anim_start_t2
b _0805D902
_0805D8D6:
movs r0, 0xE0
lsls r0, 8
ands r0, r4
cmp r0, 0
beq _0805D8EA
ldrb r0, [r5]
movs r1, 0x9
bl move_anim_start_t2
b _0805D902
_0805D8EA:
ldr r0, [r6]
ldrb r2, [r5]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
_0805D902:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end DoStatusAnimation
thumb_func_start DoBattleAnimationFromTable
DoBattleAnimationFromTable: @ 805D908
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
ldr r4, [sp, 0x24]
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r2, 24
lsrs r2, 24
str r2, [sp]
lsls r3, 24
lsrs r5, r3, 24
lsls r4, 16
lsrs r7, r4, 16
cmp r5, 0
bne _0805D950
movs r0, 0x80
ands r0, r7
cmp r0, 0
beq _0805D950
ldr r0, =gBattleMonForms
adds r0, r6, r0
movs r2, 0x7F
adds r1, r7, 0
ands r1, r2
strb r1, [r0]
movs r0, 0x1
b _0805DA1E
.pool
_0805D950:
ldr r0, =gBattleSpritesDataPtr
mov r9, r0
ldr r0, [r0]
ldr r0, [r0]
lsls r4, r6, 2
adds r0, r4, r0
ldrb r1, [r0]
movs r2, 0x4
mov r8, r2
mov r0, r8
ands r0, r1
cmp r0, 0
beq _0805D9CC
adds r0, r5, 0
bl sub_805DAA0
lsls r0, 24
cmp r0, 0
bne _0805D980
movs r0, 0x1
b _0805DA1E
.pool
_0805D980:
mov r1, r9
ldr r0, [r1]
ldr r0, [r0]
adds r0, r4, r0
ldrb r1, [r0]
mov r0, r8
ands r0, r1
cmp r0, 0
beq _0805D9CC
cmp r5, 0x2
bne _0805D9CC
ldr r1, =gSprites
ldr r0, =gBankSpriteIds
adds r0, r6, r0
ldrb r2, [r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _0805D9CC
adds r0, r6, 0
movs r1, 0x1
bl refresh_graphics_maybe
adds r0, r6, 0
bl sub_805E974
movs r0, 0x1
b _0805DA1E
.pool
_0805D9CC:
ldr r0, =gAnimBankAttacker
mov r2, r10
strb r2, [r0]
ldr r0, =gAnimBankTarget
mov r1, sp
ldrb r1, [r1]
strb r1, [r0]
ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0, 0x8]
strh r7, [r0]
ldr r0, =gUnknown_082C9320
adds r1, r5, 0
movs r2, 0
bl LaunchBattleAnimation
ldr r0, =task0A_0803415C
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r6, [r1, 0x8]
ldr r0, [r4]
movs r2, 0x8
ldrsh r1, [r1, r2]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x20
orrs r1, r2
strb r1, [r0]
movs r0, 0
_0805DA1E:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end DoBattleAnimationFromTable
thumb_func_start task0A_0803415C
task0A_0803415C: @ 805DA48
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _0805DA8A
ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
ldr r2, [r2, 0x4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r2, [r1]
movs r0, 0x21
negs r0, r0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
bl DestroyTask
_0805DA8A:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end task0A_0803415C
thumb_func_start sub_805DAA0
sub_805DAA0: @ 805DAA0
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0xD
bgt _0805DAB4
cmp r0, 0xA
bge _0805DAB8
cmp r0, 0x2
beq _0805DAB8
b _0805DABC
_0805DAB4:
cmp r0, 0x11
bne _0805DABC
_0805DAB8:
movs r0, 0x1
b _0805DABE
_0805DABC:
movs r0, 0
_0805DABE:
pop {r1}
bx r1
thumb_func_end sub_805DAA0
thumb_func_start DoSpecialBattleAnimation
DoSpecialBattleAnimation: @ 805DAC4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
ldr r0, =gAnimBankAttacker
strb r1, [r0]
ldr r0, =gAnimBankTarget
strb r2, [r0]
ldr r0, =gUnknown_082C937C
adds r1, r3, 0
movs r2, 0
bl LaunchBattleAnimation
ldr r0, =task0A_08034248
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
movs r2, 0x8
ldrsh r1, [r1, r2]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end DoSpecialBattleAnimation
thumb_func_start task0A_08034248
task0A_08034248: @ 805DB34
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _0805DB76
ldr r0, =gBattleSpritesDataPtr
ldr r2, [r0]
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
ldr r2, [r2, 0x4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r2, [r1]
movs r0, 0x41
negs r0, r0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
bl DestroyTask
_0805DB76:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end task0A_08034248
thumb_func_start IsMoveWithoutAnimation
IsMoveWithoutAnimation: @ 805DB8C
movs r0, 0
bx lr
thumb_func_end IsMoveWithoutAnimation
thumb_func_start mplay_80342A4
mplay_80342A4: @ 805DB90
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r5, 0
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _0805DBD8
ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r1, [r0, 0x4]
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x8]
adds r1, 0x1
strb r1, [r0, 0x8]
ldr r2, [r2]
ldr r0, =gActiveBank
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x8]
cmp r0, 0x1D
bls _0805DBDC
ldr r0, =gMPlay_SE1
bl m4aMPlayStop
ldr r0, =gMPlay_SE2
bl m4aMPlayStop
_0805DBD8:
cmp r5, 0
beq _0805DBF0
_0805DBDC:
movs r0, 0x1
b _0805DC02
.pool
_0805DBF0:
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r1
strb r5, [r0, 0x8]
movs r0, 0
_0805DC02:
pop {r4,r5}
pop {r1}
bx r1
.pool
thumb_func_end mplay_80342A4
thumb_func_start BattleLoadOpponentMonSpriteGfx
BattleLoadOpponentMonSpriteGfx: @ 805DC0C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
mov r8, r1
movs r1, 0
bl GetMonData
str r0, [sp]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
mov r2, r8
lsls r1, r2, 2
adds r2, r1, r0
ldrh r0, [r2, 0x2]
cmp r0, 0
bne _0805DC50
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
ldr r6, [sp]
b _0805DC58
.pool
_0805DC50:
ldrh r5, [r2, 0x2]
ldr r0, =gTransformedPersonalities
adds r0, r1, r0
ldr r6, [r0]
_0805DC58:
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
mov r10, r0
mov r0, r8
bl GetBankIdentity
lsls r0, 24
lsls r2, r5, 3
ldr r1, =gMonFrontPicTable
adds r2, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsrs r0, 22
adds r1, 0x4
adds r1, r0
ldr r1, [r1]
adds r0, r2, 0
adds r2, r5, 0
adds r3, r6, 0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
mov r3, r8
lsls r2, r3, 4
movs r0, 0x80
lsls r0, 1
adds r7, r2, r0
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r1, r3, 2
adds r0, r1, r0
ldrh r0, [r0, 0x2]
str r1, [sp, 0x4]
mov r9, r2
cmp r0, 0
bne _0805DCBC
adds r0, r4, 0
bl pokemon_get_pal
b _0805DCC6
.pool
_0805DCBC:
adds r0, r5, 0
mov r1, r10
ldr r2, [sp]
bl species_and_otid_get_pal
_0805DCC6:
adds r6, r0, 0
ldr r4, =0x0201c000
adds r0, r6, 0
adds r1, r4, 0
bl LZDecompressWram
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
mov r1, r9
adds r1, 0x80
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
ldr r0, =0x00000181
cmp r5, r0
bne _0805DD1A
movs r7, 0x80
lsls r7, 1
add r7, r9
ldr r5, =gBattleStruct
ldr r1, [r5]
movs r4, 0x80
lsls r4, 1
adds r1, r4
adds r0, r6, 0
bl LZDecompressWram
ldr r0, =gBattleMonForms
add r0, r8
ldrb r1, [r0]
lsls r1, 5
adds r1, r4
ldr r0, [r5]
adds r0, r1
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
_0805DD1A:
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
ldr r1, [sp, 0x4]
adds r0, r1, r0
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _0805DD46
ldr r3, =0x00007fff
adds r0, r7, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r7, 1
ldr r0, =gPlttBufferFaded
adds r0, r1, r0
ldr r2, =gPlttBufferUnfaded
adds r1, r2
ldr r2, =0x04000008
bl CpuSet
_0805DD46:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end BattleLoadOpponentMonSpriteGfx
thumb_func_start BattleLoadPlayerMonSpriteGfx
BattleLoadPlayerMonSpriteGfx: @ 805DD7C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
mov r8, r1
movs r1, 0
bl GetMonData
str r0, [sp]
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
mov r2, r8
lsls r1, r2, 2
adds r2, r1, r0
ldrh r0, [r2, 0x2]
cmp r0, 0
bne _0805DDC0
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r5, r0, 16
ldr r4, [sp]
b _0805DDC8
.pool
_0805DDC0:
ldrh r5, [r2, 0x2]
ldr r0, =gTransformedPersonalities
adds r0, r1, r0
ldr r4, [r0]
_0805DDC8:
adds r0, r6, 0
movs r1, 0x1
bl GetMonData
str r0, [sp, 0x4]
mov r0, r8
bl GetBankIdentity
lsls r0, 24
lsrs r7, r0, 24
movs r0, 0x1
mov r1, r8
bl sub_80688F8
lsls r0, 24
lsrs r0, 24
mov r1, r8
lsls r1, 2
mov r10, r1
cmp r0, 0x1
beq _0805DE00
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
add r0, r10
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _0805DE2C
_0805DE00:
lsls r0, r5, 3
ldr r1, =gMonBackPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r2, r7, 2
adds r1, 0x4
adds r1, r2
ldr r1, [r1]
adds r2, r5, 0
adds r3, r4, 0
bl HandleLoadSpecialPokePic_DontHandleDeoxys
b _0805DE46
.pool
_0805DE2C:
lsls r0, r5, 3
ldr r1, =gMonBackPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r2, r7, 2
adds r1, 0x4
adds r1, r2
ldr r1, [r1]
adds r2, r5, 0
adds r3, r4, 0
bl HandleLoadSpecialPokePic
_0805DE46:
mov r2, r8
lsls r1, r2, 4
movs r0, 0x80
lsls r0, 1
adds r7, r1, r0
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
add r0, r10
ldrh r0, [r0, 0x2]
mov r9, r1
cmp r0, 0
bne _0805DE74
adds r0, r6, 0
bl pokemon_get_pal
b _0805DE7E
.pool
_0805DE74:
adds r0, r5, 0
ldr r1, [sp, 0x4]
ldr r2, [sp]
bl species_and_otid_get_pal
_0805DE7E:
adds r6, r0, 0
ldr r4, =0x0201c000
adds r0, r6, 0
adds r1, r4, 0
bl LZDecompressWram
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
mov r1, r9
adds r1, 0x80
adds r0, r4, 0
movs r2, 0x20
bl LoadPalette
ldr r0, =0x00000181
cmp r5, r0
bne _0805DED2
movs r7, 0x80
lsls r7, 1
add r7, r9
ldr r5, =gBattleStruct
ldr r1, [r5]
movs r4, 0x80
lsls r4, 1
adds r1, r4
adds r0, r6, 0
bl LZDecompressWram
ldr r0, =gBattleMonForms
add r0, r8
ldrb r1, [r0]
lsls r1, 5
adds r1, r4
ldr r0, [r5]
adds r0, r1
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
_0805DED2:
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
add r0, r10
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _0805DEFC
ldr r3, =0x00007fff
adds r0, r7, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r7, 1
ldr r0, =gPlttBufferFaded
adds r0, r1, r0
ldr r2, =gPlttBufferUnfaded
adds r1, r2
ldr r2, =0x04000008
bl CpuSet
_0805DEFC:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end BattleLoadPlayerMonSpriteGfx
thumb_func_start nullsub_23
nullsub_23: @ 805DF30
bx lr
thumb_func_end nullsub_23
thumb_func_start nullsub_24
nullsub_24: @ 805DF34
bx lr
thumb_func_end nullsub_24
thumb_func_start DecompressTrainerFrontPic
DecompressTrainerFrontPic: @ 805DF38
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r0, 24
lsrs r0, 24
bl GetBankIdentity
lsls r0, 24
lsls r4, 3
ldr r2, =gTrainerFrontPicTable
adds r2, r4, r2
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsrs r0, 22
adds r1, 0x4
adds r1, r0
ldr r1, [r1]
adds r0, r2, 0
movs r2, 0
bl DecompressPicFromTable_2
ldr r0, =gTrainerFrontPicPaletteTable
adds r4, r0
adds r0, r4, 0
bl LoadCompressedObjectPalette
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end DecompressTrainerFrontPic
thumb_func_start DecompressTrainerBackPic
DecompressTrainerBackPic: @ 805DF84
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
lsls r5, 16
lsrs r5, 16
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl GetBankIdentity
lsls r0, 24
lsls r5, 3
ldr r2, =gTrainerBackPicTable
adds r2, r5, r2
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsrs r0, 22
adds r1, 0x4
adds r1, r0
ldr r1, [r1]
adds r0, r2, 0
movs r2, 0
bl DecompressPicFromTable_2
ldr r0, =gTrainerBackPicPaletteTable
adds r5, r0
ldr r0, [r5]
lsls r4, 20
movs r1, 0x80
lsls r1, 17
adds r4, r1
lsrs r4, 16
adds r1, r4, 0
movs r2, 0x20
bl LoadCompressedPalette
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end DecompressTrainerBackPic
thumb_func_start nullsub_25
nullsub_25: @ 805DFE0
bx lr
thumb_func_end nullsub_25
thumb_func_start FreeTrainerFrontPicPalette
FreeTrainerFrontPicPalette: @ 805DFE4
push {lr}
lsls r0, 16
ldr r1, =gTrainerFrontPicPaletteTable
lsrs r0, 13
adds r0, r1
ldrh r0, [r0, 0x4]
bl FreeSpritePaletteByTag
pop {r0}
bx r0
.pool
thumb_func_end FreeTrainerFrontPicPalette
thumb_func_start sub_805DFFC
sub_805DFFC: @ 805DFFC
push {r4-r7,lr}
ldr r4, =gUnknown_0832C128
adds r0, r4, 0
bl LoadSpritePalette
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0805E034
ldr r0, =gUnknown_0832C0D0
bl LoadCompressedObjectPic
ldr r0, =gUnknown_0832C0D8
bl LoadCompressedObjectPic
movs r5, 0x2
b _0805E056
.pool
_0805E034:
ldr r4, =gUnknown_0832C0E0
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r0, r4, 0
bl LoadCompressedObjectPic
ldr r4, =gUnknown_0832C0F0
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r0, r4, 0
bl LoadCompressedObjectPic
movs r5, 0x4
_0805E056:
movs r4, 0
cmp r4, r5
bcs _0805E076
ldr r7, =gBanksByIdentity
ldr r6, =gUnknown_0832C108
_0805E060:
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, 3
adds r0, r6
bl LoadCompressedObjectPic
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _0805E060
_0805E076:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805DFFC
thumb_func_start BattleLoadAllHealthBoxesGfx
BattleLoadAllHealthBoxesGfx: @ 805E08C
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
movs r6, 0
cmp r4, 0
bne _0805E09C
b _0805E1AE
_0805E09C:
cmp r4, 0x1
bne _0805E0B8
ldr r4, =gUnknown_0832C128
adds r0, r4, 0
bl LoadSpritePalette
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
b _0805E1AE
.pool
_0805E0B8:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0805E120
cmp r4, 0x2
bne _0805E0F0
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
ands r0, r1
cmp r0, 0
beq _0805E0E4
ldr r0, =gUnknown_0832C100
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E0E4:
ldr r0, =gUnknown_0832C0D0
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E0F0:
cmp r4, 0x3
bne _0805E100
ldr r0, =gUnknown_0832C0D8
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E100:
cmp r4, 0x4
bne _0805E110
ldr r0, =gBanksByIdentity
ldrb r0, [r0]
b _0805E198
.pool
_0805E110:
cmp r4, 0x5
bne _0805E1AC
ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x1]
b _0805E198
.pool
_0805E120:
cmp r4, 0x2
bne _0805E130
ldr r0, =gUnknown_0832C0E0
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E130:
cmp r4, 0x3
bne _0805E140
ldr r0, =gUnknown_0832C0E8
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E140:
cmp r4, 0x4
bne _0805E150
ldr r0, =gUnknown_0832C0F0
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E150:
cmp r4, 0x5
bne _0805E160
ldr r0, =gUnknown_0832C0F8
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E160:
cmp r4, 0x6
bne _0805E170
ldr r0, =gBanksByIdentity
ldrb r0, [r0]
b _0805E198
.pool
_0805E170:
cmp r4, 0x7
bne _0805E180
ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x1]
b _0805E198
.pool
_0805E180:
cmp r4, 0x8
bne _0805E190
ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x2]
b _0805E198
.pool
_0805E190:
cmp r5, 0x9
bne _0805E1AC
ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x3]
_0805E198:
lsls r0, 3
ldr r1, =gUnknown_0832C108
adds r0, r1
bl LoadCompressedObjectPic
b _0805E1AE
.pool
_0805E1AC:
movs r6, 0x1
_0805E1AE:
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end BattleLoadAllHealthBoxesGfx
thumb_func_start LoadBattleBarGfx
LoadBattleBarGfx: @ 805E1B8
push {lr}
ldr r0, =gUnknown_08C093F0
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBA
lsls r2, 1
adds r1, r2
ldr r1, [r1]
bl LZDecompressWram
pop {r0}
bx r0
.pool
thumb_func_end LoadBattleBarGfx
thumb_func_start BattleInitAllSprites
BattleInitAllSprites: @ 805E1D8
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r6, 0
ldrb r0, [r5]
cmp r0, 0x6
bls _0805E1E8
b _0805E346
_0805E1E8:
lsls r0, 2
ldr r1, =_0805E1F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0805E1F8:
.4byte _0805E214
.4byte _0805E21A
.4byte _0805E324
.4byte _0805E230
.4byte _0805E260
.4byte _0805E29C
.4byte _0805E33C
_0805E214:
bl sub_805E378
b _0805E324
_0805E21A:
ldrb r0, [r4]
bl BattleLoadAllHealthBoxesGfx
lsls r0, 24
cmp r0, 0
beq _0805E228
b _0805E320
_0805E228:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _0805E346
_0805E230:
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
ands r0, r1
cmp r0, 0
beq _0805E24C
ldrb r0, [r4]
cmp r0, 0
bne _0805E24C
bl CreateSafariPlayerHealthboxSprites
b _0805E252
.pool
_0805E24C:
ldrb r0, [r4]
bl CreateBankHealthboxSprites
_0805E252:
ldr r2, =gHealthBoxesIds
ldrb r1, [r4]
adds r1, r2
strb r0, [r1]
b _0805E30E
.pool
_0805E260:
ldrb r0, [r4]
bl SetBankHealthboxSpritePos
ldr r0, =gBanksByIdentity
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x1
bhi _0805E288
ldr r0, =gHealthBoxesIds
adds r0, r1, r0
ldrb r0, [r0]
movs r1, 0
bl DummyBattleInterfaceFunc
b _0805E30E
.pool
_0805E288:
ldr r0, =gHealthBoxesIds
adds r0, r1, r0
ldrb r0, [r0]
movs r1, 0x1
bl DummyBattleInterfaceFunc
b _0805E30E
.pool
_0805E29C:
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0805E2E4
ldr r0, =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
ands r0, r1
cmp r0, 0
bne _0805E302
ldr r0, =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, =gPlayerParty
adds r1, r2
movs r2, 0
bl UpdateHealthboxAttribute
b _0805E302
.pool
_0805E2E4:
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, 0
bl UpdateHealthboxAttribute
_0805E302:
ldr r1, =gHealthBoxesIds
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
_0805E30E:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
ldr r1, =gNoOfAllBanks
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
cmp r0, r1
bne _0805E346
_0805E320:
movs r0, 0
strb r0, [r4]
_0805E324:
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
b _0805E346
.pool
_0805E33C:
bl LoadAndCreateEnemyShadowSprites
bl sub_81B8C68
movs r6, 0x1
_0805E346:
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end BattleInitAllSprites
thumb_func_start sub_805E350
sub_805E350: @ 805E350
push {r4,lr}
ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0, 0x4]
movs r1, 0
movs r2, 0x30
bl memset
ldr r0, [r4]
ldr r0, [r0, 0x8]
movs r1, 0
movs r2, 0x10
bl memset
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_805E350
thumb_func_start sub_805E378
sub_805E378: @ 805E378
push {lr}
bl sub_805E350
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
movs r1, 0
movs r2, 0x10
bl memset
pop {r0}
bx r0
.pool
thumb_func_end sub_805E378
thumb_func_start sub_805E394
sub_805E394: @ 805E394
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r4, 0
ldr r5, =gNoOfAllBanks
ldrb r0, [r5]
cmp r4, r0
bge _0805E3EA
ldr r0, =gSprites
mov r9, r0
movs r0, 0x1
mov r12, r0
movs r0, 0x2
negs r0, r0
mov r8, r0
ldr r7, =gBattleSpritesDataPtr
ldr r6, =gBankSpriteIds
_0805E3B8:
ldr r0, [r7]
ldr r0, [r0]
lsls r3, r4, 2
adds r3, r0
adds r0, r4, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r9
adds r0, 0x3E
ldrb r1, [r0]
lsls r1, 29
lsrs r1, 31
mov r0, r12
ands r1, r0
ldrb r2, [r3]
mov r0, r8
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r4, 0x1
ldrb r0, [r5]
cmp r4, r0
blt _0805E3B8
_0805E3EA:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805E394
thumb_func_start CopyBattleSpriteInvisibility
CopyBattleSpriteInvisibility: @ 805E408
lsls r0, 24
lsrs r0, 24
ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r1, [r1]
lsls r3, r0, 2
adds r3, r1
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
lsls r1, 29
lsrs r1, 31
ldrb r2, [r3]
movs r0, 0x2
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bx lr
.pool
thumb_func_end CopyBattleSpriteInvisibility
thumb_func_start sub_805E448
sub_805E448: @ 805E448
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r1, 24
str r1, [sp]
lsls r2, 24
cmp r2, 0
beq _0805E51C
ldr r0, =gBankSpriteIds
adds r5, r7, r0
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
mov r8, r1
add r0, r8
ldr r4, =gBattleSpritesDataPtr
ldr r1, [r4]
ldr r1, [r1, 0x8]
ldrb r1, [r1]
bl StartSpriteAnim
lsls r0, r7, 20
movs r2, 0x80
lsls r2, 17
adds r0, r2
lsrs r6, r0, 16
ldr r2, =gBattleStruct
ldr r0, [r4]
ldr r0, [r0, 0x8]
ldrh r1, [r0]
lsls r1, 5
movs r3, 0x80
lsls r3, 1
adds r1, r3
ldr r0, [r2]
adds r0, r1
adds r1, r6, 0
movs r2, 0x20
bl LoadPalette
ldr r1, =gBattleMonForms
adds r1, r7, r1
ldr r0, [r4]
ldr r0, [r0, 0x8]
ldrh r0, [r0]
strb r0, [r1]
ldr r0, [r4]
ldr r1, [r0]
lsls r0, r7, 2
adds r0, r1
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _0805E4DE
ldr r3, =0x00007fff
adds r0, r6, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r6, 1
ldr r0, =gPlttBufferFaded
adds r0, r1, r0
ldr r2, =gPlttBufferUnfaded
adds r1, r2
ldr r2, =0x04000008
bl CpuSet
_0805E4DE:
adds r0, r7, 0
bl sub_80A6138
ldrb r2, [r5]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r1, r8
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x22]
b _0805E77A
.pool
_0805E51C:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0805E558
movs r0, 0
mov r10, r0
ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrh r1, [r2, 0x2]
mov r8, r1
ldr r3, [r2, 0x8]
mov r9, r3
ldr r4, [r2, 0xC]
lsls r0, r1, 3
ldr r1, =gMonBackPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
ldr r1, [r1, 0x4]
ldr r3, [r2, 0x10]
b _0805E5FA
.pool
_0805E558:
adds r0, r7, 0
bl GetBankIdentity
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, [sp]
bl GetBankSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0805E58C
ldr r1, =gBattlePartyID
ldr r2, [sp]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
b _0805E59C
.pool
_0805E58C:
ldr r1, =gBattlePartyID
ldr r3, [sp]
lsls r0, r3, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
_0805E59C:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
mov r8, r0
adds r0, r7, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
bne _0805E618
ldr r0, =gBattlePartyID
lsls r4, r7, 1
adds r4, r0
ldrh r0, [r4]
movs r6, 0x64
muls r0, r6
ldr r5, =gPlayerParty
adds r0, r5
movs r1, 0
bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
bl GetMonData
adds r4, r0, 0
mov r1, r8
lsls r0, r1, 3
ldr r1, =gMonBackPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
mov r3, r10
lsls r2, r3, 2
adds r1, 0x4
adds r1, r2
ldr r1, [r1]
ldr r3, =gTransformedPersonalities
lsls r2, r7, 2
adds r2, r3
ldr r3, [r2]
_0805E5FA:
mov r2, r8
bl HandleLoadSpecialPokePic_DontHandleDeoxys
b _0805E662
.pool
_0805E618:
ldr r0, =gBattlePartyID
lsls r4, r7, 1
adds r4, r0
ldrh r0, [r4]
movs r6, 0x64
muls r0, r6
ldr r5, =gEnemyParty
adds r0, r5
movs r1, 0
bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
bl GetMonData
adds r4, r0, 0
mov r1, r8
lsls r0, r1, 3
ldr r1, =gMonFrontPicTable
adds r0, r1
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
mov r3, r10
lsls r2, r3, 2
adds r1, 0x4
adds r1, r2
ldr r1, [r1]
ldr r3, =gTransformedPersonalities
lsls r2, r7, 2
adds r2, r3
ldr r3, [r2]
mov r2, r8
bl HandleLoadSpecialPokePic_DontHandleDeoxys
_0805E662:
ldr r0, =gMonSpritesGfxPtr
ldr r0, [r0]
mov r2, r10
lsls r1, r2, 2
adds r0, 0x4
adds r0, r1
ldr r2, [r0]
ldr r0, =gBankSpriteIds
adds r0, r7
mov r10, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r3, =gSprites
adds r0, r3
ldrh r0, [r0, 0x4]
lsls r0, 22
lsrs r0, 17
ldr r1, =0x06010000
adds r0, r1
ldr r1, =0x040000d4
str r2, [r1]
str r0, [r1, 0x4]
ldr r0, =0x84000200
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
lsls r0, r7, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r6, r0, 16
mov r0, r8
adds r1, r4, 0
mov r2, r9
bl species_and_otid_get_pal
mov r9, r0
ldr r4, =0x0201c000
adds r1, r4, 0
bl LZDecompressWram
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x20
bl LoadPalette
ldr r0, =0x00000181
cmp r8, r0
bne _0805E70A
mov r2, r10
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r1, 0x8
adds r0, r1
ldr r1, =gMonAnimationsSpriteAnimsPtrTable
mov r3, r8
lsls r2, r3, 2
adds r1, r2
ldr r1, [r1]
str r1, [r0]
ldr r5, =gBattleStruct
ldr r1, [r5]
movs r4, 0x80
lsls r4, 1
adds r1, r4
mov r0, r9
bl LZDecompressWram
ldr r0, =gBattleMonForms
ldr r1, [sp]
adds r0, r1, r0
ldrb r1, [r0]
lsls r1, 5
adds r1, r4
ldr r0, [r5]
adds r0, r1
adds r1, r6, 0
movs r2, 0x20
bl LoadPalette
_0805E70A:
ldr r3, =0x00007fff
adds r0, r6, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r6, 1
ldr r0, =gPlttBufferFaded
adds r0, r1, r0
ldr r2, =gPlttBufferUnfaded
adds r1, r2
ldr r2, =0x04000008
bl CpuSet
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0805E74A
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r7, 2
adds r0, r1
mov r2, r8
strh r2, [r0, 0x2]
ldr r0, =gBattleMonForms
adds r1, r7, r0
ldr r3, [sp]
adds r0, r3, r0
ldrb r0, [r0]
strb r0, [r1]
_0805E74A:
adds r0, r7, 0
bl sub_80A6138
mov r1, r10
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
ldr r2, =gSprites
adds r1, r2
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x22]
mov r3, r10
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, =gBattleMonForms
adds r1, r7, r1
ldrb r1, [r1]
bl StartSpriteAnim
_0805E77A:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805E448
thumb_func_start BattleLoadSubstituteSpriteGfx
BattleLoadSubstituteSpriteGfx: @ 805E7DC
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
lsls r1, 24
cmp r1, 0
bne _0805E898
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0805E7F8
movs r4, 0
b _0805E802
_0805E7F8:
adds r0, r4, 0
bl GetBankIdentity
lsls r0, 24
lsrs r4, r0, 24
_0805E802:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0805E814
ldr r0, =gUnknown_08C2D120
b _0805E822
.pool
_0805E814:
adds r0, r5, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _0805E83C
ldr r0, =gUnknown_08C2CEE0
_0805E822:
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r4, 2
adds r1, 0x4
adds r1, r4
ldr r1, [r1]
bl LZDecompressVram
b _0805E84E
.pool
_0805E83C:
ldr r0, =gUnknown_08C2D120
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
lsls r4, 2
adds r1, 0x4
adds r1, r4
ldr r1, [r1]
bl LZDecompressVram
_0805E84E:
movs r3, 0x1
lsls r6, r5, 4
ldr r7, =gUnknown_08C2CEBC
ldr r0, =gMonSpritesGfxPtr
ldr r0, [r0]
adds r0, 0x4
adds r4, r0, r4
ldr r2, =0x040000d4
ldr r5, =0x84000200
_0805E860:
ldr r0, [r4]
lsls r1, r3, 11
adds r1, r0, r1
str r0, [r2]
str r1, [r2, 0x4]
str r5, [r2, 0x8]
ldr r0, [r2, 0x8]
adds r3, 0x1
cmp r3, 0x3
ble _0805E860
movs r0, 0x80
lsls r0, 1
adds r1, r6, r0
adds r0, r7, 0
movs r2, 0x20
bl LoadCompressedPalette
b _0805E8E6
.pool
_0805E898:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0805E8E6
adds r0, r4, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _0805E8D0
ldr r1, =gBattlePartyID
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gEnemyParty
adds r0, r1
adds r1, r4, 0
bl BattleLoadOpponentMonSpriteGfx
b _0805E8E6
.pool
_0805E8D0:
ldr r1, =gBattlePartyID
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, =gPlayerParty
adds r0, r1
adds r1, r5, 0
bl BattleLoadPlayerMonSpriteGfx
_0805E8E6:
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end BattleLoadSubstituteSpriteGfx
thumb_func_start refresh_graphics_maybe
refresh_graphics_maybe: @ 805E8F4
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
lsls r0, 24
lsrs r6, r0, 24
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
adds r1, r5, 0
bl BattleLoadSubstituteSpriteGfx
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, =gSprites
adds r4, r0, r1
ldr r0, =gBattleMonForms
adds r0, r6, r0
ldrb r1, [r0]
adds r0, r4, 0
bl StartSpriteAnim
cmp r5, 0
bne _0805E938
adds r0, r6, 0
bl sub_80A614C
b _0805E93E
.pool
_0805E938:
adds r0, r6, 0
bl sub_80A6138
_0805E93E:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end refresh_graphics_maybe
thumb_func_start TrySetBehindSubstituteSpriteBit
TrySetBehindSubstituteSpriteBit: @ 805E94C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 16
lsrs r1, 16
cmp r1, 0xA4
bne _0805E96C
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0]
lsls r1, r2, 2
adds r1, r0
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
_0805E96C:
pop {r0}
bx r0
.pool
thumb_func_end TrySetBehindSubstituteSpriteBit
thumb_func_start sub_805E974
sub_805E974: @ 805E974
lsls r0, 24
ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r1, [r1]
lsrs r0, 22
adds r0, r1
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
bx lr
.pool
thumb_func_end sub_805E974
thumb_func_start sub_805E990
sub_805E990: @ 805E990
push {r4-r7,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r6, r1, 24
adds r7, r6, 0
movs r1, 0x39
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0805EA08
ldr r7, =gBattleSpritesDataPtr
ldr r0, [r7]
ldr r2, [r0]
lsls r4, r6, 2
adds r0, r4, r2
ldrb r1, [r0]
movs r5, 0x2
movs r3, 0x2
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0805EA5A
adds r0, r6, 0
eors r0, r5
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0805E9F6
movs r0, 0x5A
bl PlaySE
_0805E9F6:
ldr r0, [r7]
ldr r1, [r0]
adds r1, r4, r1
ldrb r0, [r1]
orrs r0, r5
strb r0, [r1]
b _0805EA5A
.pool
_0805EA08:
ldr r4, =gBattleSpritesDataPtr
ldr r0, [r4]
ldr r0, [r0]
lsls r1, r6, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x3
negs r0, r0
ands r0, r2
strb r0, [r1]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _0805EA34
movs r0, 0x5A
bl m4aSongNumStop
b _0805EA5A
.pool
_0805EA34:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805EA5A
ldr r1, [r4]
movs r0, 0x2
eors r7, r0
ldr r1, [r1]
lsls r0, r7, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _0805EA5A
movs r0, 0x5A
bl m4aSongNumStop
_0805EA5A:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_805E990
thumb_func_start BattleMusicStop
BattleMusicStop: @ 805EA60
push {r4-r6,lr}
movs r0, 0
bl GetBankByIdentity
lsls r0, 24
lsrs r4, r0, 24
ldr r5, =gBattleSpritesDataPtr
ldr r0, [r5]
ldr r0, [r0]
lsls r1, r4, 2
adds r1, r0
ldrb r2, [r1]
movs r6, 0x3
negs r6, r6
adds r0, r6, 0
ands r0, r2
strb r0, [r1]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805EAA2
ldr r2, [r5]
movs r0, 0x2
adds r1, r4, 0
eors r1, r0
ldr r0, [r2]
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
adds r0, r6, 0
ands r0, r2
strb r0, [r1]
_0805EAA2:
movs r0, 0x5A
bl m4aSongNumStop
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end BattleMusicStop
thumb_func_start sub_805EAB4
sub_805EAB4: @ 805EAB4
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x39
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_805EAB4
thumb_func_start sub_805EAE8
sub_805EAE8: @ 805EAE8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, =gMain
ldr r1, =0x00000439
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0805EB7E
movs r0, 0
bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r0, 0x2
bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r5, =gBattlePartyID
mov r1, r8
lsls r0, r1, 1
adds r0, r5
ldrb r0, [r0]
bl pokemon_order_func
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r1, r9
lsls r0, r1, 1
adds r0, r5
ldrb r0, [r0]
bl pokemon_order_func
lsls r0, 24
lsrs r5, r0, 24
movs r7, 0x64
adds r0, r4, 0
muls r0, r7
ldr r6, =gPlayerParty
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
beq _0805EB5A
adds r0, r4, 0
mov r1, r8
bl sub_805E990
_0805EB5A:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805EB7E
adds r0, r5, 0
muls r0, r7
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
beq _0805EB7E
adds r0, r4, 0
mov r1, r9
bl sub_805E990
_0805EB7E:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805EAE8
thumb_func_start sub_805EB9C
sub_805EB9C: @ 805EB9C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r5, 0
ldr r0, =gNoOfAllBanks
ldrb r0, [r0]
cmp r5, r0
bge _0805EC6C
movs r0, 0x3
mov r10, r8
mov r1, r10
ands r1, r0
mov r10, r1
movs r6, 0
movs r2, 0x3F
negs r2, r2
mov r9, r2
_0805EBC8:
lsls r0, r5, 24
lsrs r0, 24
bl IsBankSpritePresent
lsls r0, 24
cmp r0, 0
beq _0805EC60
ldr r4, =gSprites
ldr r0, =gBankSpriteIds
adds r3, r5, r0
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x1]
movs r7, 0x4
negs r7, r7
adds r2, r7, 0
ands r1, r2
mov r2, r10
orrs r1, r2
strb r1, [r0, 0x1]
mov r7, r8
cmp r7, 0
bne _0805EC3C
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0, 0x4]
adds r2, r6, r2
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x3]
lsls r0, 26
lsrs r0, 27
strb r0, [r2, 0x6]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x3]
mov r2, r9
ands r1, r2
strb r1, [r0, 0x3]
b _0805EC60
.pool
_0805EC3C:
ldrb r0, [r3]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r0, [r0, 0x4]
adds r0, r6, r0
ldrb r1, [r0, 0x6]
movs r0, 0x1F
ands r1, r0
lsls r1, 1
ldrb r0, [r2, 0x3]
mov r3, r9
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x3]
_0805EC60:
adds r6, 0xC
adds r5, 0x1
ldr r0, =gNoOfAllBanks
ldrb r0, [r0]
cmp r5, r0
blt _0805EBC8
_0805EC6C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805EB9C
thumb_func_start LoadAndCreateEnemyShadowSprites
LoadAndCreateEnemyShadowSprites: @ 805EC84
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gUnknown_0831C6A0
bl LoadCompressedObjectPic
movs r0, 0x1
bl GetBankByIdentity
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, =gUnknown_0831C6B0
mov r8, r0
adds r0, r5, 0
movs r1, 0
bl sub_80A5C6C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_80A5C6C
adds r2, r0, 0
lsls r2, 24
lsrs r2, 8
movs r0, 0xE8
lsls r0, 13
adds r2, r0
asrs r2, 16
mov r0, r8
adds r1, r4, 0
movs r3, 0xC8
bl CreateSprite
ldr r6, =gBattleSpritesDataPtr
ldr r1, [r6]
ldr r2, [r1, 0x4]
lsls r1, r5, 1
adds r1, r5
lsls r1, 2
adds r2, r1, r2
strb r0, [r2, 0x7]
ldr r7, =gSprites
ldr r0, [r6]
ldr r0, [r0, 0x4]
adds r1, r0
ldrb r1, [r1, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0805ED56
movs r0, 0x3
bl GetBankByIdentity
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r5, 0
movs r1, 0
bl sub_80A5C6C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_80A5C6C
adds r2, r0, 0
lsls r2, 24
lsrs r2, 8
movs r0, 0xE8
lsls r0, 13
adds r2, r0
asrs r2, 16
mov r0, r8
adds r1, r4, 0
movs r3, 0xC8
bl CreateSprite
ldr r1, [r6]
ldr r2, [r1, 0x4]
lsls r1, r5, 1
adds r1, r5
lsls r1, 2
adds r2, r1, r2
strb r0, [r2, 0x7]
ldr r0, [r6]
ldr r0, [r0, 0x4]
adds r1, r0
ldrb r1, [r1, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
_0805ED56:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end LoadAndCreateEnemyShadowSprites
thumb_func_start sub_805ED70
@ int sub_805ED70(obj *a1)
sub_805ED70: @ 805ED70
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
movs r0, 0
mov r8, r0
ldrh r0, [r5, 0x2E]
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gBankSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, =gSprites
adds r7, r0, r1
adds r6, r7, 0
adds r6, 0x3E
ldrb r1, [r6]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0805EDAC
adds r0, r4, 0
bl IsBankSpritePresent
lsls r0, 24
cmp r0, 0
bne _0805EDC0
_0805EDAC:
ldr r0, =sub_805EE48
str r0, [r5, 0x1C]
b _0805EE36
.pool
_0805EDC0:
ldr r0, =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _0805EDD2
ldrb r1, [r6]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0805EDE4
_0805EDD2:
movs r0, 0x1
mov r8, r0
ldr r2, =gBattleSpritesDataPtr
lsls r4, 2
b _0805EE06
.pool
_0805EDE4:
ldr r2, =gBattleSpritesDataPtr
ldr r0, [r2]
ldr r0, [r0]
lsls r1, r4, 2
adds r3, r1, r0
ldrh r0, [r3, 0x2]
adds r4, r1, 0
cmp r0, 0
beq _0805EE06
ldr r0, =gEnemyMonElevation
ldrh r1, [r3, 0x2]
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
bne _0805EE06
movs r0, 0x1
mov r8, r0
_0805EE06:
ldr r0, [r2]
ldr r0, [r0]
adds r0, r4, r0
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0805EE1A
movs r0, 0x1
mov r8, r0
_0805EE1A:
ldrh r0, [r7, 0x20]
strh r0, [r5, 0x20]
ldrh r0, [r7, 0x24]
strh r0, [r5, 0x24]
adds r2, r5, 0
adds r2, 0x3E
mov r0, r8
lsls r3, r0, 2
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
orrs r0, r3
strb r0, [r2]
_0805EE36:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_805ED70
thumb_func_start sub_805EE48
sub_805EE48: @ 805EE48
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
bx lr
thumb_func_end sub_805EE48
thumb_func_start SetBankEnemyShadowSpriteCallback
SetBankEnemyShadowSpriteCallback: @ 805EE54
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
lsls r1, 16
lsrs r5, r1, 16
adds r0, r4, 0
bl GetBankSide
lsls r0, 24
cmp r0, 0
beq _0805EED0
ldr r0, =gBattleSpritesDataPtr
ldr r3, [r0]
ldr r1, [r3]
lsls r0, r4, 2
adds r1, r0, r1
ldrh r0, [r1, 0x2]
cmp r0, 0
beq _0805EE7E
adds r5, r0, 0
_0805EE7E:
ldr r0, =gEnemyMonElevation
adds r0, r5, r0
ldrb r0, [r0]
cmp r0, 0
beq _0805EEB4
ldr r2, =gSprites
ldr r1, [r3, 0x4]
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_805ED70
b _0805EECE
.pool
_0805EEB4:
ldr r2, =gSprites
ldr r1, [r3, 0x4]
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_805EE48
_0805EECE:
str r1, [r0]
_0805EED0:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end SetBankEnemyShadowSpriteCallback
thumb_func_start sub_805EEE0
sub_805EEE0: @ 805EEE0
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
ldr r1, =gBattleSpritesDataPtr
ldr r1, [r1]
ldr r3, [r1, 0x4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r3
ldrb r1, [r1, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, =sub_805EE48
str r1, [r0]
bx lr
.pool
thumb_func_end sub_805EEE0
thumb_func_start sub_805EF14
sub_805EF14: @ 805EF14
push {r4-r6,lr}
ldr r3, =0x06000240
movs r0, 0
movs r6, 0xF0
lsls r6, 8
_0805EF1E:
adds r5, r0, 0x1
movs r4, 0xF
_0805EF22:
ldrh r1, [r3]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _0805EF32
adds r0, r6, 0
orrs r0, r1
strh r0, [r3]
_0805EF32:
ldrh r1, [r3]
movs r2, 0xF0
lsls r2, 4
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0805EF46
adds r0, r2, 0
orrs r0, r1
strh r0, [r3]
_0805EF46:
ldrh r1, [r3]
movs r2, 0xF0
movs r0, 0xF0
ands r0, r1
cmp r0, 0
bne _0805EF58
adds r0, r1, 0
orrs r0, r2
strh r0, [r3]
_0805EF58:
ldrh r1, [r3]
movs r2, 0xF
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _0805EF6A
adds r0, r1, 0
orrs r0, r2
strh r0, [r3]
_0805EF6A:
adds r3, 0x2
subs r4, 0x1
cmp r4, 0
bge _0805EF22
adds r0, r5, 0
cmp r0, 0x8
ble _0805EF1E
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_805EF14
thumb_func_start ClearTemporarySpeciesSpriteData
ClearTemporarySpeciesSpriteData: @ 805EF84
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r2, [r0]
lsls r0, r4, 2
adds r0, r2
movs r3, 0
movs r2, 0
strh r2, [r0, 0x2]
ldr r0, =gBattleMonForms
adds r0, r4, r0
strb r3, [r0]
cmp r1, 0
bne _0805EFAC
adds r0, r4, 0
bl sub_805E974
_0805EFAC:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end ClearTemporarySpeciesSpriteData
thumb_func_start AllocateMonSpritesGfx
AllocateMonSpritesGfx: @ 805EFBC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r6, 0
ldr r4, =gMonSpritesGfxPtr
str r6, [r4]
movs r0, 0xC0
lsls r0, 1
bl AllocZeroed
str r0, [r4]
movs r0, 0x80
lsls r0, 8
bl AllocZeroed
ldr r1, [r4]
str r0, [r1]
_0805EFE2:
ldr r0, =gMonSpritesGfxPtr
ldr r1, [r0]
lsls r4, r6, 2
adds r2, r1, 0x4
adds r2, r4
lsls r3, r6, 13
ldr r0, [r1]
adds r0, r3
str r0, [r2]
lsls r3, r6, 1
adds r0, r3, r6
lsls r0, 3
adds r1, r0, r1
ldr r2, =gUnknown_08329D98
adds r1, 0x14
adds r0, r2
ldm r0!, {r2,r5,r7}
stm r1!, {r2,r5,r7}
ldm r0!, {r2,r5,r7}
stm r1!, {r2,r5,r7}
movs r5, 0
mov r9, r3
lsls r0, r6, 5
mov r8, r0
adds r1, r6, 0x1
mov r10, r1
mov r12, r8
adds r7, r4, 0
_0805F01A:
ldr r2, =gMonSpritesGfxPtr
ldr r1, [r2]
lsls r4, r5, 3
add r4, r12
adds r3, r1, 0
adds r3, 0x74
adds r3, r4
adds r0, r1, 0x4
adds r0, r7
lsls r2, r5, 11
ldr r0, [r0]
adds r0, r2
str r0, [r3]
adds r1, r4
adds r1, 0x78
movs r0, 0x80
lsls r0, 4
strh r0, [r1]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _0805F01A
ldr r1, =gMonSpritesGfxPtr
ldr r2, [r1]
mov r5, r9
adds r0, r5, r6
lsls r0, 3
adds r1, r2, 0
adds r1, 0x20
adds r1, r0
mov r0, r8
adds r0, 0x74
adds r2, r0
str r2, [r1]
mov r7, r10
lsls r0, r7, 24
lsrs r6, r0, 24
cmp r6, 0x3
bls _0805EFE2
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
ldr r1, =gMonSpritesGfxPtr
ldr r1, [r1]
movs r2, 0xBA
lsls r2, 1
adds r1, r2
str r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end AllocateMonSpritesGfx
thumb_func_start FreeMonSpritesGfx
FreeMonSpritesGfx: @ 805F094
push {r4-r6,lr}
ldr r6, =gMonSpritesGfxPtr
ldr r0, [r6]
cmp r0, 0
beq _0805F106
movs r1, 0xBE
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _0805F0BA
bl Free
ldr r0, [r6]
movs r1, 0xBE
lsls r1, 1
adds r0, r1
movs r1, 0
str r1, [r0]
_0805F0BA:
ldr r0, [r6]
movs r1, 0xBC
lsls r1, 1
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _0805F0D8
bl Free
ldr r0, [r6]
movs r1, 0xBC
lsls r1, 1
adds r0, r1
movs r1, 0
str r1, [r0]
_0805F0D8:
ldr r0, [r6]
movs r5, 0xBA
lsls r5, 1
adds r0, r5
ldr r0, [r0]
bl Free
ldr r0, [r6]
adds r5, r0, r5
movs r4, 0
str r4, [r5]
ldr r0, [r0]
bl Free
ldr r0, [r6]
str r4, [r0]
str r4, [r0, 0x4]
str r4, [r0, 0x8]
str r4, [r0, 0xC]
str r4, [r0, 0x10]
bl Free
str r4, [r6]
_0805F106:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end FreeMonSpritesGfx
thumb_func_start sub_805F110
sub_805F110: @ 805F110
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x37
bl GetMonData
ldr r1, =0x00000fff
ands r1, r0
cmp r1, 0
bne _0805F158
adds r0, r5, 0
movs r1, 0x39
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
ble _0805F158
movs r0, 0x1
b _0805F15A
.pool
_0805F158:
movs r0, 0
_0805F15A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_805F110
.align 2, 0 @ Don't pad with nop.