pokeruby/asm/battle_7.s
2017-05-21 20:21:00 +02:00

4291 lines
76 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80312F0
sub_80312F0: @ 80312F0
push {r4-r7,lr}
adds r6, r0, 0
ldrh r0, [r6, 0x30]
lsls r0, 24
lsrs r0, 24
ldr r7, _08031334 @ =gSprites
lsls r1, r0, 4
adds r1, r0
lsls r5, r1, 2
adds r3, r5, r7
adds r0, r3, 0
adds r0, 0x3F
ldrb r4, [r0]
lsls r0, r4, 26
cmp r0, 0
bge _08031354
adds r0, r3, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _08031354
adds r1, r3, 0
adds r1, 0x2C
ldrb r2, [r1]
lsls r0, r2, 25
cmp r0, 0
bge _08031338
movs r0, 0x41
negs r0, r0
ands r0, r2
strb r0, [r1]
b _08031354
.align 2, 0
_08031334: .4byte gSprites
_08031338:
lsls r0, r4, 27
cmp r0, 0
bge _08031354
adds r0, r7, 0
adds r0, 0x1C
adds r0, r5, r0
ldr r1, _0803135C @ =sub_80105DC
str r1, [r0]
adds r0, r3, 0
movs r1, 0
bl StartSpriteAffineAnim
ldr r0, _08031360 @ =SpriteCallbackDummy
str r0, [r6, 0x1C]
_08031354:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803135C: .4byte sub_80105DC
_08031360: .4byte SpriteCallbackDummy
thumb_func_end sub_80312F0
thumb_func_start unref_sub_8031364
unref_sub_8031364: @ 8031364
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
adds r3, r4, 0
adds r3, 0x2C
ldrb r0, [r3]
movs r2, 0x40
orrs r0, r2
strb r0, [r3]
ldr r0, _08031388 @ =SpriteCallbackDummy
str r0, [r4, 0x1C]
cmp r1, 0
bne _0803138C
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
b _08031394
.align 2, 0
_08031388: .4byte SpriteCallbackDummy
_0803138C:
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
_08031394:
adds r0, r4, 0
bl AnimateSprite
pop {r4}
pop {r0}
bx r0
thumb_func_end unref_sub_8031364
thumb_func_start sub_80313A0
sub_80313A0: @ 80313A0
push {lr}
adds r2, r0, 0
ldr r0, _080313C8 @ =gUnknown_02024DE8
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _080313C2
ldrh r0, [r2, 0x2E]
ldrh r1, [r2, 0x24]
adds r0, r1
strh r0, [r2, 0x24]
lsls r0, 16
cmp r0, 0
bne _080313C2
ldr r0, _080313CC @ =SpriteCallbackDummy
str r0, [r2, 0x1C]
_080313C2:
pop {r0}
bx r0
.align 2, 0
_080313C8: .4byte gUnknown_02024DE8
_080313CC: .4byte SpriteCallbackDummy
thumb_func_end sub_80313A0
thumb_func_start move_anim_start_t2_for_situation
move_anim_start_t2_for_situation: @ 80313D0
push {r4-r6,lr}
adds r4, r1, 0
lsls r0, 24
ldr r5, _08031400 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
ldr r6, _08031404 @ =0x02017810
adds r1, r6
ldrb r2, [r1]
movs r3, 0x10
orrs r2, r3
strb r2, [r1]
cmp r0, 0
bne _0803144C
cmp r4, 0x20
bne _08031408
ldrb r0, [r5]
movs r1, 0x6
bl move_anim_start_t2
b _080314C2
.align 2, 0
_08031400: .4byte gUnknown_02024A60
_08031404: .4byte 0x02017810
_08031408:
cmp r4, 0x8
beq _08031414
movs r0, 0x80
ands r0, r4
cmp r0, 0
beq _0803141E
_08031414:
ldrb r0, [r5]
movs r1, 0
bl move_anim_start_t2
b _080314C2
_0803141E:
cmp r4, 0x10
bne _0803142C
ldrb r0, [r5]
movs r1, 0x2
bl move_anim_start_t2
b _080314C2
_0803142C:
movs r0, 0x7
ands r0, r4
cmp r0, 0
beq _0803143E
ldrb r0, [r5]
movs r1, 0x4
bl move_anim_start_t2
b _080314C2
_0803143E:
cmp r4, 0x40
bne _080314AE
ldrb r0, [r5]
movs r1, 0x5
bl move_anim_start_t2
b _080314C2
_0803144C:
movs r0, 0xF0
lsls r0, 12
ands r0, r4
cmp r0, 0
beq _08031460
ldrb r0, [r5]
movs r1, 0x3
bl move_anim_start_t2
b _080314C2
_08031460:
movs r0, 0x7
ands r0, r4
cmp r0, 0
beq _08031472
ldrb r0, [r5]
movs r1, 0x1
bl move_anim_start_t2
b _080314C2
_08031472:
movs r0, 0x80
lsls r0, 21
ands r0, r4
cmp r0, 0
beq _08031486
ldrb r0, [r5]
movs r1, 0x7
bl move_anim_start_t2
b _080314C2
_08031486:
movs r0, 0x80
lsls r0, 20
ands r0, r4
cmp r0, 0
beq _0803149A
ldrb r0, [r5]
movs r1, 0x8
bl move_anim_start_t2
b _080314C2
_0803149A:
movs r0, 0xE0
lsls r0, 8
ands r0, r4
cmp r0, 0
beq _080314AE
ldrb r0, [r5]
movs r1, 0x9
bl move_anim_start_t2
b _080314C2
_080314AE:
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r6
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
_080314C2:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end move_anim_start_t2_for_situation
thumb_func_start move_anim_start_t3
move_anim_start_t3: @ 80314C8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, [sp, 0x20]
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r1, 24
mov r9, r1
lsls r2, 24
lsrs r2, 24
mov r10, r2
lsls r3, 24
lsrs r5, r3, 24
lsls r4, 16
lsrs r7, r4, 16
cmp r5, 0
bne _0803150C
movs r0, 0x80
ands r0, r7
cmp r0, 0
beq _0803150C
ldr r0, _08031508 @ =gBattleMonForms
adds r0, r6, r0
movs r2, 0x7F
adds r1, r7, 0
ands r1, r2
strb r1, [r0]
movs r0, 0x1
b _080315C2
.align 2, 0
_08031508: .4byte gBattleMonForms
_0803150C:
lsls r1, r6, 2
ldr r0, _08031530 @ =0x02017800
adds r4, r1, r0
ldrb r1, [r4]
movs r0, 0x4
mov r8, r0
ands r0, r1
cmp r0, 0
beq _08031578
adds r0, r5, 0
bl sub_803163C
lsls r0, 24
cmp r0, 0
bne _08031534
movs r0, 0x1
b _080315C2
.align 2, 0
_08031530: .4byte 0x02017800
_08031534:
ldrb r1, [r4]
mov r0, r8
ands r0, r1
cmp r0, 0
beq _08031578
cmp r5, 0x2
bne _08031578
ldr r1, _08031570 @ =gSprites
ldr r0, _08031574 @ =gUnknown_02024BE0
adds r0, r6, r0
ldrb r2, [r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _08031578
adds r0, r6, 0
movs r1, 0x1
bl refresh_graphics_maybe
adds r0, r6, 0
bl sub_80324E0
movs r0, 0x1
b _080315C2
.align 2, 0
_08031570: .4byte gSprites
_08031574: .4byte gUnknown_02024BE0
_08031578:
ldr r0, _080315D0 @ =gBattleAnimPlayerMonIndex
mov r1, r9
strb r1, [r0]
ldr r0, _080315D4 @ =gBattleAnimEnemyMonIndex
mov r1, r10
strb r1, [r0]
ldr r4, _080315D8 @ =0x02017840
strh r7, [r4]
ldr r0, _080315DC @ =gBattleAnims_Unknown1
adds r1, r5, 0
movs r2, 0
bl DoMoveAnim
ldr r0, _080315E0 @ =sub_80315E8
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080315E4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r6, [r1, 0x8]
movs r0, 0x8
ldrsh r1, [r1, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
subs r4, 0x30
adds r0, r4
ldrb r1, [r0]
movs r2, 0x20
orrs r1, r2
strb r1, [r0]
movs r0, 0
_080315C2:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080315D0: .4byte gBattleAnimPlayerMonIndex
_080315D4: .4byte gBattleAnimEnemyMonIndex
_080315D8: .4byte 0x02017840
_080315DC: .4byte gBattleAnims_Unknown1
_080315E0: .4byte sub_80315E8
_080315E4: .4byte gTasks
thumb_func_end move_anim_start_t3
thumb_func_start sub_80315E8
sub_80315E8: @ 80315E8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _0803162C @ =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, _08031630 @ =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _08031626
ldr r1, _08031634 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r0, _08031638 @ =0x02017810
adds r1, r0
ldrb r2, [r1]
movs r0, 0x21
negs r0, r0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
bl DestroyTask
_08031626:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803162C: .4byte gAnimScriptCallback
_08031630: .4byte gAnimScriptActive
_08031634: .4byte gTasks
_08031638: .4byte 0x02017810
thumb_func_end sub_80315E8
thumb_func_start sub_803163C
sub_803163C: @ 803163C
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0xD
bgt _08031650
cmp r0, 0xA
bge _08031654
cmp r0, 0x2
beq _08031654
b _08031658
_08031650:
cmp r0, 0x11
bne _08031658
_08031654:
movs r0, 0x1
b _0803165A
_08031658:
movs r0, 0
_0803165A:
pop {r1}
bx r1
thumb_func_end sub_803163C
thumb_func_start move_anim_start_t4
move_anim_start_t4: @ 8031660
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
ldr r0, _080316B4 @ =gBattleAnimPlayerMonIndex
strb r1, [r0]
ldr r0, _080316B8 @ =gBattleAnimEnemyMonIndex
strb r2, [r0]
ldr r0, _080316BC @ =gBattleAnims_Unknown2
adds r1, r3, 0
movs r2, 0
bl DoMoveAnim
ldr r0, _080316C0 @ =sub_80316CC
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080316C4 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r4, [r1, 0x8]
movs r0, 0x8
ldrsh r1, [r1, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080316C8 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r2, 0x40
orrs r1, r2
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080316B4: .4byte gBattleAnimPlayerMonIndex
_080316B8: .4byte gBattleAnimEnemyMonIndex
_080316BC: .4byte gBattleAnims_Unknown2
_080316C0: .4byte sub_80316CC
_080316C4: .4byte gTasks
_080316C8: .4byte 0x02017810
thumb_func_end move_anim_start_t4
thumb_func_start sub_80316CC
sub_80316CC: @ 80316CC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08031710 @ =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, _08031714 @ =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _0803170A
ldr r1, _08031718 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r0, _0803171C @ =0x02017810
adds r1, r0
ldrb r2, [r1]
movs r0, 0x41
negs r0, r0
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
bl DestroyTask
_0803170A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08031710: .4byte gAnimScriptCallback
_08031714: .4byte gAnimScriptActive
_08031718: .4byte gTasks
_0803171C: .4byte 0x02017810
thumb_func_end sub_80316CC
thumb_func_start sub_8031720
sub_8031720: @ 8031720
movs r0, 0
bx lr
thumb_func_end sub_8031720
thumb_func_start mplay_80342A4
mplay_80342A4: @ 8031724
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r5, 0
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08031764
lsls r1, r4, 1
adds r1, r4
lsls r1, 2
ldr r2, _0803176C @ =0x02017810
adds r1, r2
ldrb r0, [r1, 0x8]
adds r0, 0x1
strb r0, [r1, 0x8]
ldr r0, _08031770 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x8]
cmp r0, 0x1D
bls _08031768
ldr r0, _08031774 @ =gMPlay_SE1
bl m4aMPlayStop
ldr r0, _08031778 @ =gMPlay_SE2
bl m4aMPlayStop
_08031764:
cmp r5, 0
beq _0803177C
_08031768:
movs r0, 0x1
b _0803178A
.align 2, 0
_0803176C: .4byte 0x02017810
_08031770: .4byte gUnknown_02024A60
_08031774: .4byte gMPlay_SE1
_08031778: .4byte gMPlay_SE2
_0803177C:
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
ldr r1, _08031790 @ =0x02017810
adds r0, r1
strb r5, [r0, 0x8]
movs r0, 0
_0803178A:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08031790: .4byte 0x02017810
thumb_func_end mplay_80342A4
thumb_func_start sub_8031794
sub_8031794: @ 8031794
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
mov r8, r0
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r1, 0
bl GetMonData
str r0, [sp, 0xC]
mov r0, r9
lsls r1, r0, 2
ldr r0, _080317D0 @ =0x02017800
adds r2, r1, r0
ldrh r0, [r2, 0x2]
cmp r0, 0
bne _080317D4
mov r0, r8
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
ldr r7, [sp, 0xC]
b _080317DC
.align 2, 0
_080317D0: .4byte 0x02017800
_080317D4:
ldrh r6, [r2, 0x2]
ldr r0, _08031838 @ =gUnknown_02024E70
adds r0, r1, r0
ldr r7, [r0]
_080317DC:
mov r0, r8
movs r1, 0x1
bl GetMonData
mov r10, r0
mov r0, r9
bl battle_get_per_side_status
lsls r0, 24
lsls r5, r6, 3
ldr r1, _0803183C @ =gMonFrontPicTable
adds r5, r1
ldr r1, _08031840 @ =gMonFrontPicCoords
lsls r2, r6, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _08031844 @ =gUnknown_081FAF4C
lsrs r0, 22
adds r0, r4
ldr r0, [r0]
str r0, [sp]
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r5, 0
bl HandleLoadSpecialPokePic
mov r1, r9
lsls r2, r1, 4
movs r0, 0x80
lsls r0, 1
adds r7, r2, r0
lsls r1, 2
ldr r0, _08031848 @ =0x02017800
adds r0, r1, r0
ldrh r0, [r0, 0x2]
str r1, [sp, 0x10]
adds r4, r2, 0
cmp r0, 0
bne _0803184C
mov r0, r8
bl pokemon_get_pal
b _08031856
.align 2, 0
_08031838: .4byte gUnknown_02024E70
_0803183C: .4byte gMonFrontPicTable
_08031840: .4byte gMonFrontPicCoords
_08031844: .4byte gUnknown_081FAF4C
_08031848: .4byte 0x02017800
_0803184C:
adds r0, r6, 0
mov r1, r10
ldr r2, [sp, 0xC]
bl species_and_otid_get_pal
_08031856:
adds r5, r0, 0
ldr r1, _080318E0 @ =0x02000000
mov r8, r1
adds r0, r5, 0
bl sub_800D238
mov r0, r8
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
adds r1, r4, 0
adds r1, 0x80
mov r0, r8
movs r2, 0x20
bl LoadPalette
ldr r0, _080318E4 @ =SPECIES_CASTFORM
cmp r6, r0
bne _080318A2
subs r0, 0x81
adds r7, r4, r0
movs r4, 0xB2
lsls r4, 9
add r4, r8
adds r0, r5, 0
adds r1, r4, 0
bl sub_800D238
ldr r0, _080318E8 @ =gBattleMonForms
add r0, r9
ldrb r0, [r0]
lsls r0, 5
adds r0, r4
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
_080318A2:
movs r0, 0xBC
lsls r0, 9
add r0, r8
ldr r1, [sp, 0x10]
adds r0, r1, r0
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _080318CE
ldr r3, _080318EC @ =0x00007fff
adds r0, r7, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r7, 1
ldr r0, _080318F0 @ =gPlttBufferFaded
adds r0, r1, r0
ldr r2, _080318F4 @ =gPlttBufferUnfaded
adds r1, r2
ldr r2, _080318F8 @ =REG_BG0CNT
bl CpuSet
_080318CE:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080318E0: .4byte 0x02000000
_080318E4: .4byte SPECIES_CASTFORM
_080318E8: .4byte gBattleMonForms
_080318EC: .4byte 0x00007fff
_080318F0: .4byte gPlttBufferFaded
_080318F4: .4byte gPlttBufferUnfaded
_080318F8: .4byte REG_BG0CNT
thumb_func_end sub_8031794
thumb_func_start sub_80318FC
sub_80318FC: @ 80318FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
mov r8, r0
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r1, 0
bl GetMonData
str r0, [sp, 0xC]
mov r0, r9
lsls r1, r0, 2
ldr r0, _08031938 @ =0x02017800
adds r2, r1, r0
ldrh r0, [r2, 0x2]
cmp r0, 0
bne _0803193C
mov r0, r8
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r6, r0, 16
ldr r7, [sp, 0xC]
b _08031944
.align 2, 0
_08031938: .4byte 0x02017800
_0803193C:
ldrh r6, [r2, 0x2]
ldr r0, _080319A0 @ =gUnknown_02024E70
adds r0, r1, r0
ldr r7, [r0]
_08031944:
mov r0, r8
movs r1, 0x1
bl GetMonData
mov r10, r0
mov r0, r9
bl battle_get_per_side_status
lsls r0, 24
lsls r5, r6, 3
ldr r1, _080319A4 @ =gMonBackPicTable
adds r5, r1
ldr r1, _080319A8 @ =gMonBackPicCoords
lsls r2, r6, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _080319AC @ =gUnknown_081FAF4C
lsrs r0, 22
adds r0, r4
ldr r0, [r0]
str r0, [sp]
str r6, [sp, 0x4]
str r7, [sp, 0x8]
adds r0, r5, 0
bl HandleLoadSpecialPokePic
mov r1, r9
lsls r2, r1, 4
movs r0, 0x80
lsls r0, 1
adds r7, r2, r0
lsls r1, 2
ldr r0, _080319B0 @ =0x02017800
adds r0, r1, r0
ldrh r0, [r0, 0x2]
str r1, [sp, 0x10]
adds r4, r2, 0
cmp r0, 0
bne _080319B4
mov r0, r8
bl pokemon_get_pal
b _080319BE
.align 2, 0
_080319A0: .4byte gUnknown_02024E70
_080319A4: .4byte gMonBackPicTable
_080319A8: .4byte gMonBackPicCoords
_080319AC: .4byte gUnknown_081FAF4C
_080319B0: .4byte 0x02017800
_080319B4:
adds r0, r6, 0
mov r1, r10
ldr r2, [sp, 0xC]
bl species_and_otid_get_pal
_080319BE:
adds r5, r0, 0
ldr r1, _08031A48 @ =0x02000000
mov r8, r1
adds r0, r5, 0
bl sub_800D238
mov r0, r8
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
adds r1, r4, 0
adds r1, 0x80
mov r0, r8
movs r2, 0x20
bl LoadPalette
ldr r0, _08031A4C @ =SPECIES_CASTFORM
cmp r6, r0
bne _08031A0A
subs r0, 0x81
adds r7, r4, r0
movs r4, 0xB2
lsls r4, 9
add r4, r8
adds r0, r5, 0
adds r1, r4, 0
bl sub_800D238
ldr r0, _08031A50 @ =gBattleMonForms
add r0, r9
ldrb r0, [r0]
lsls r0, 5
adds r0, r4
adds r1, r7, 0
movs r2, 0x20
bl LoadPalette
_08031A0A:
movs r0, 0xBC
lsls r0, 9
add r0, r8
ldr r1, [sp, 0x10]
adds r0, r1, r0
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _08031A36
ldr r3, _08031A54 @ =0x00007fff
adds r0, r7, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r7, 1
ldr r0, _08031A58 @ =gPlttBufferFaded
adds r0, r1, r0
ldr r2, _08031A5C @ =gPlttBufferUnfaded
adds r1, r2
ldr r2, _08031A60 @ =REG_BG0CNT
bl CpuSet
_08031A36:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08031A48: .4byte 0x02000000
_08031A4C: .4byte SPECIES_CASTFORM
_08031A50: .4byte gBattleMonForms
_08031A54: .4byte 0x00007fff
_08031A58: .4byte gPlttBufferFaded
_08031A5C: .4byte gPlttBufferUnfaded
_08031A60: .4byte REG_BG0CNT
thumb_func_end sub_80318FC
thumb_func_start unref_sub_8031A64
unref_sub_8031A64: @ 8031A64
bx lr
thumb_func_end unref_sub_8031A64
thumb_func_start nullsub_9
nullsub_9: @ 8031A68
bx lr
thumb_func_end nullsub_9
thumb_func_start sub_8031A6C
sub_8031A6C: @ 8031A6C
push {r4-r6,lr}
sub sp, 0x10
adds r4, r0, 0
adds r0, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r0, 24
lsrs r0, 24
bl battle_get_per_side_status
lsls r0, 24
lsls r6, r4, 3
ldr r5, _08031ADC @ =gTrainerFrontPicTable
adds r5, r6, r5
ldr r1, _08031AE0 @ =gTrainerFrontPicCoords
lsls r4, 2
adds r4, r1
ldrb r1, [r4]
ldrb r2, [r4, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _08031AE4 @ =gUnknown_081FAF4C
lsrs r0, 22
adds r0, r4
ldr r4, [r0]
str r4, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r5, 0
bl DecompressPicFromTable_2
str r4, [sp, 0x8]
ldrh r2, [r5, 0x4]
ldr r0, _08031AE8 @ =0xffff0000
ldr r1, [sp, 0xC]
ands r1, r0
orrs r1, r2
str r1, [sp, 0xC]
ldrh r2, [r5, 0x6]
lsls r2, 16
ldr r0, _08031AEC @ =0x0000ffff
ands r0, r1
orrs r0, r2
str r0, [sp, 0xC]
add r0, sp, 0x8
bl LoadCompressedObjectPic
ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable
adds r6, r0
adds r0, r6, 0
bl LoadCompressedObjectPalette
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08031ADC: .4byte gTrainerFrontPicTable
_08031AE0: .4byte gTrainerFrontPicCoords
_08031AE4: .4byte gUnknown_081FAF4C
_08031AE8: .4byte 0xffff0000
_08031AEC: .4byte 0x0000ffff
_08031AF0: .4byte gTrainerFrontPicPaletteTable
thumb_func_end sub_8031A6C
thumb_func_start sub_8031AF4
sub_8031AF4: @ 8031AF4
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x8
adds r4, r0, 0
adds r5, r1, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 24
lsrs r5, 24
adds r0, r5, 0
bl battle_get_per_side_status
lsls r0, 24
lsls r1, r4, 3
mov r8, r1
ldr r6, _08031B60 @ =gTrainerBackPicTable
add r6, r8
ldr r1, _08031B64 @ =gTrainerBackPicCoords
lsls r4, 2
adds r4, r1
ldrb r1, [r4]
ldrb r2, [r4, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _08031B68 @ =gUnknown_081FAF4C
lsrs r0, 22
adds r0, r4
ldr r0, [r0]
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r6, 0
bl DecompressPicFromTable_2
ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable
add r8, r0
mov r1, r8
ldr r0, [r1]
lsls r5, 20
movs r1, 0x80
lsls r1, 17
adds r5, r1
lsrs r5, 16
adds r1, r5, 0
movs r2, 0x20
bl LoadCompressedPalette
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08031B60: .4byte gTrainerBackPicTable
_08031B64: .4byte gTrainerBackPicCoords
_08031B68: .4byte gUnknown_081FAF4C
_08031B6C: .4byte gTrainerBackPicPaletteTable
thumb_func_end sub_8031AF4
thumb_func_start nullsub_10
nullsub_10: @ 8031B70
bx lr
thumb_func_end nullsub_10
thumb_func_start sub_8031B74
sub_8031B74: @ 8031B74
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable
lsrs r4, 13
adds r0, r4, r0
ldrh r0, [r0, 0x4]
bl FreeSpritePaletteByTag
ldr r0, _08031B9C @ =gTrainerFrontPicTable
adds r4, r0
ldrh r0, [r4, 0x6]
bl FreeSpriteTilesByTag
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08031B98: .4byte gTrainerFrontPicPaletteTable
_08031B9C: .4byte gTrainerFrontPicTable
thumb_func_end sub_8031B74
thumb_func_start unref_sub_8031BA0
unref_sub_8031BA0: @ 8031BA0
push {r4-r7,lr}
ldr r4, _08031BCC @ =gUnknown_0820A4D4
adds r0, r4, 0
bl LoadSpritePalette
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08031BD8
ldr r0, _08031BD0 @ =gUnknown_0820A47C
bl LoadCompressedObjectPic
ldr r0, _08031BD4 @ =gUnknown_0820A484
bl LoadCompressedObjectPic
movs r5, 0x2
b _08031BFA
.align 2, 0
_08031BCC: .4byte gUnknown_0820A4D4
_08031BD0: .4byte gUnknown_0820A47C
_08031BD4: .4byte gUnknown_0820A484
_08031BD8:
ldr r4, _08031C20 @ =gUnknown_0820A48C
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r0, r4, 0
bl LoadCompressedObjectPic
ldr r4, _08031C24 @ =gUnknown_0820A49C
adds r0, r4, 0
bl LoadCompressedObjectPic
adds r4, 0x8
adds r0, r4, 0
bl LoadCompressedObjectPic
movs r5, 0x4
_08031BFA:
movs r4, 0
cmp r4, r5
bcs _08031C1A
ldr r7, _08031C28 @ =gUnknown_02024A72
ldr r6, _08031C2C @ =gUnknown_0820A4B4
_08031C04:
adds r0, r4, r7
ldrb r0, [r0]
lsls r0, 3
adds r0, r6
bl LoadCompressedObjectPic
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, r5
bcc _08031C04
_08031C1A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08031C20: .4byte gUnknown_0820A48C
_08031C24: .4byte gUnknown_0820A49C
_08031C28: .4byte gUnknown_02024A72
_08031C2C: .4byte gUnknown_0820A4B4
thumb_func_end unref_sub_8031BA0
thumb_func_start sub_8031C30
sub_8031C30: @ 8031C30
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
movs r6, 0
cmp r4, 0
bne _08031C40
b _08031D52
_08031C40:
cmp r4, 0x1
bne _08031C5C
ldr r4, _08031C58 @ =gUnknown_0820A4D4
adds r0, r4, 0
bl LoadSpritePalette
adds r4, 0x8
adds r0, r4, 0
bl LoadSpritePalette
b _08031D52
.align 2, 0
_08031C58: .4byte gUnknown_0820A4D4
_08031C5C:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08031CC4
cmp r4, 0x2
bne _08031C94
ldr r0, _08031C80 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08031C88
ldr r0, _08031C84 @ =gUnknown_0820A4AC
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031C80: .4byte gBattleTypeFlags
_08031C84: .4byte gUnknown_0820A4AC
_08031C88:
ldr r0, _08031C90 @ =gUnknown_0820A47C
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031C90: .4byte gUnknown_0820A47C
_08031C94:
cmp r4, 0x3
bne _08031CA4
ldr r0, _08031CA0 @ =gUnknown_0820A484
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031CA0: .4byte gUnknown_0820A484
_08031CA4:
cmp r4, 0x4
bne _08031CB4
ldr r0, _08031CB0 @ =gUnknown_02024A72
ldrb r0, [r0]
b _08031D3C
.align 2, 0
_08031CB0: .4byte gUnknown_02024A72
_08031CB4:
cmp r4, 0x5
bne _08031D50
ldr r0, _08031CC0 @ =gUnknown_02024A72
ldrb r0, [r0, 0x1]
b _08031D3C
.align 2, 0
_08031CC0: .4byte gUnknown_02024A72
_08031CC4:
cmp r4, 0x2
bne _08031CD4
ldr r0, _08031CD0 @ =gUnknown_0820A48C
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031CD0: .4byte gUnknown_0820A48C
_08031CD4:
cmp r4, 0x3
bne _08031CE4
ldr r0, _08031CE0 @ =gUnknown_0820A494
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031CE0: .4byte gUnknown_0820A494
_08031CE4:
cmp r4, 0x4
bne _08031CF4
ldr r0, _08031CF0 @ =gUnknown_0820A49C
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031CF0: .4byte gUnknown_0820A49C
_08031CF4:
cmp r4, 0x5
bne _08031D04
ldr r0, _08031D00 @ =gUnknown_0820A4A4
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031D00: .4byte gUnknown_0820A4A4
_08031D04:
cmp r4, 0x6
bne _08031D14
ldr r0, _08031D10 @ =gUnknown_02024A72
ldrb r0, [r0]
b _08031D3C
.align 2, 0
_08031D10: .4byte gUnknown_02024A72
_08031D14:
cmp r4, 0x7
bne _08031D24
ldr r0, _08031D20 @ =gUnknown_02024A72
ldrb r0, [r0, 0x1]
b _08031D3C
.align 2, 0
_08031D20: .4byte gUnknown_02024A72
_08031D24:
cmp r4, 0x8
bne _08031D34
ldr r0, _08031D30 @ =gUnknown_02024A72
ldrb r0, [r0, 0x2]
b _08031D3C
.align 2, 0
_08031D30: .4byte gUnknown_02024A72
_08031D34:
cmp r5, 0x9
bne _08031D50
ldr r0, _08031D48 @ =gUnknown_02024A72
ldrb r0, [r0, 0x3]
_08031D3C:
lsls r0, 3
ldr r1, _08031D4C @ =gUnknown_0820A4B4
adds r0, r1
bl LoadCompressedObjectPic
b _08031D52
.align 2, 0
_08031D48: .4byte gUnknown_02024A72
_08031D4C: .4byte gUnknown_0820A4B4
_08031D50:
movs r6, 0x1
_08031D52:
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8031C30
thumb_func_start load_gfxc_health_bar
load_gfxc_health_bar: @ 8031D5C
push {lr}
ldr r0, _08031D6C @ =gUnknown_08D09C48
movs r1, 0x80
lsls r1, 18
bl sub_800D238
pop {r0}
bx r0
.align 2, 0
_08031D6C: .4byte gUnknown_08D09C48
thumb_func_end load_gfxc_health_bar
thumb_func_start battle_load_something
battle_load_something: @ 8031D70
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r6, 0
ldrb r0, [r5]
cmp r0, 0x6
bls _08031D80
b _08031EDE
_08031D80:
lsls r0, 2
ldr r1, _08031D8C @ =_08031D90
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08031D8C: .4byte _08031D90
.align 2, 0
_08031D90:
.4byte _08031DAC
.4byte _08031DB2
.4byte _08031EBC
.4byte _08031DC8
.4byte _08031DF8
.4byte _08031E34
.4byte _08031ED4
_08031DAC:
bl sub_8031F0C
b _08031EBC
_08031DB2:
ldrb r0, [r4]
bl sub_8031C30
lsls r0, 24
cmp r0, 0
beq _08031DC0
b _08031EB8
_08031DC0:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
b _08031EDE
_08031DC8:
ldr r0, _08031DE0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08031DE4
ldrb r0, [r4]
cmp r0, 0
bne _08031DE4
bl battle_make_oam_safari_battle
b _08031DEA
.align 2, 0
_08031DE0: .4byte gBattleTypeFlags
_08031DE4:
ldrb r0, [r4]
bl battle_make_oam_normal_battle
_08031DEA:
ldr r2, _08031DF4 @ =gUnknown_03004340
ldrb r1, [r4]
adds r1, r2
strb r0, [r1]
b _08031EA6
.align 2, 0
_08031DF4: .4byte gUnknown_03004340
_08031DF8:
ldrb r0, [r4]
bl sub_8043F44
ldr r0, _08031E18 @ =gUnknown_02024A72
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x1
bhi _08031E20
ldr r0, _08031E1C @ =gUnknown_03004340
adds r0, r1, r0
ldrb r0, [r0]
movs r1, 0
bl nullsub_11
b _08031EA6
.align 2, 0
_08031E18: .4byte gUnknown_02024A72
_08031E1C: .4byte gUnknown_03004340
_08031E20:
ldr r0, _08031E30 @ =gUnknown_03004340
adds r0, r1, r0
ldrb r0, [r0]
movs r1, 0x1
bl nullsub_11
b _08031EA6
.align 2, 0
_08031E30: .4byte gUnknown_03004340
_08031E34:
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08031E7C
ldr r0, _08031E6C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08031E9A
ldr r0, _08031E70 @ =gUnknown_03004340
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, _08031E74 @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _08031E78 @ =gPlayerParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
b _08031E9A
.align 2, 0
_08031E6C: .4byte gBattleTypeFlags
_08031E70: .4byte gUnknown_03004340
_08031E74: .4byte gUnknown_02024A6A
_08031E78: .4byte gPlayerParty
_08031E7C:
ldr r0, _08031EC4 @ =gUnknown_03004340
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, _08031EC8 @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _08031ECC @ =gEnemyParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
_08031E9A:
ldr r1, _08031EC4 @ =gUnknown_03004340
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8043DB0
_08031EA6:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
ldr r1, _08031ED0 @ =gUnknown_02024A68
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
cmp r0, r1
bne _08031EDE
_08031EB8:
movs r0, 0
strb r0, [r4]
_08031EBC:
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
b _08031EDE
.align 2, 0
_08031EC4: .4byte gUnknown_03004340
_08031EC8: .4byte gUnknown_02024A6A
_08031ECC: .4byte gEnemyParty
_08031ED0: .4byte gUnknown_02024A68
_08031ED4:
bl sub_80327CC
bl sub_8094958
movs r6, 0x1
_08031EDE:
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end battle_load_something
thumb_func_start sub_8031EE8
sub_8031EE8: @ 8031EE8
push {r4,lr}
ldr r4, _08031F08 @ =0x02017810
adds r0, r4, 0
movs r1, 0
movs r2, 0x30
bl memset
adds r4, 0x30
adds r0, r4, 0
movs r1, 0
movs r2, 0x10
bl memset
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08031F08: .4byte 0x02017810
thumb_func_end sub_8031EE8
thumb_func_start sub_8031F0C
sub_8031F0C: @ 8031F0C
push {lr}
bl sub_8031EE8
ldr r0, _08031F20 @ =0x02017800
movs r1, 0
movs r2, 0x10
bl memset
pop {r0}
bx r0
.align 2, 0
_08031F20: .4byte 0x02017800
thumb_func_end sub_8031F0C
thumb_func_start sub_8031F24
sub_8031F24: @ 8031F24
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r4, 0
ldr r5, _08031F78 @ =gUnknown_02024A68
ldrb r0, [r5]
cmp r4, r0
bge _08031F6E
ldr r0, _08031F7C @ =gSprites
mov r8, r0
movs r7, 0x1
movs r0, 0x2
negs r0, r0
mov r12, r0
ldr r6, _08031F80 @ =gUnknown_02024BE0
ldr r3, _08031F84 @ =0x02017800
_08031F44:
adds r0, r4, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r8
adds r0, 0x3E
ldrb r1, [r0]
lsls r1, 29
lsrs r1, 31
ands r1, r7
ldrb r2, [r3]
mov r0, r12
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r3, 0x4
adds r4, 0x1
ldrb r0, [r5]
cmp r4, r0
blt _08031F44
_08031F6E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08031F78: .4byte gUnknown_02024A68
_08031F7C: .4byte gSprites
_08031F80: .4byte gUnknown_02024BE0
_08031F84: .4byte 0x02017800
thumb_func_end sub_8031F24
thumb_func_start sub_8031F88
sub_8031F88: @ 8031F88
lsls r0, 24
lsrs r0, 24
lsls r3, r0, 2
ldr r1, _08031FB8 @ =0x02017800
adds r3, r1
ldr r2, _08031FBC @ =gSprites
ldr r1, _08031FC0 @ =gUnknown_02024BE0
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r1, [r0]
lsls r1, 29
lsrs r1, 31
ldrb r2, [r3]
movs r0, 0x2
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bx lr
.align 2, 0
_08031FB8: .4byte 0x02017800
_08031FBC: .4byte gSprites
_08031FC0: .4byte gUnknown_02024BE0
thumb_func_end sub_8031F88
thumb_func_start sub_8031FC4
sub_8031FC4: @ 8031FC4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0xC]
lsls r2, 24
cmp r2, 0
beq _08032088
ldr r0, _08032064 @ =gUnknown_02024BE0
mov r1, r8
adds r6, r1, r0
ldrb r1, [r6]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r7, _08032068 @ =gSprites
adds r0, r7
ldr r4, _0803206C @ =0x02017840
ldrb r1, [r4]
bl StartSpriteAnim
mov r2, r8
lsls r0, r2, 20
movs r5, 0x80
lsls r5, 17
adds r0, r5
lsrs r5, r0, 16
ldrh r0, [r4]
lsls r0, 5
ldr r2, _08032070 @ =0xffffebc0
adds r1, r4, r2
adds r0, r1
adds r1, r5, 0
movs r2, 0x20
bl LoadPalette
ldr r0, _08032074 @ =gBattleMonForms
add r0, r8
ldrh r1, [r4]
strb r1, [r0]
mov r1, r8
lsls r0, r1, 2
subs r4, 0x40
adds r0, r4
ldrh r0, [r0, 0x2]
cmp r0, 0
beq _0803204C
ldr r3, _08032078 @ =0x00007fff
adds r0, r5, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r5, 1
ldr r0, _0803207C @ =gPlttBufferFaded
adds r0, r1, r0
ldr r2, _08032080 @ =gPlttBufferUnfaded
adds r1, r2
ldr r2, _08032084 @ =REG_BG0CNT
bl CpuSet
_0803204C:
mov r0, r8
bl sub_8077F68
ldrb r2, [r6]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r7
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x22]
b _080322F6
.align 2, 0
_08032064: .4byte gUnknown_02024BE0
_08032068: .4byte gSprites
_0803206C: .4byte 0x02017840
_08032070: .4byte 0xffffebc0
_08032074: .4byte gBattleMonForms
_08032078: .4byte 0x00007fff
_0803207C: .4byte gPlttBufferFaded
_08032080: .4byte gPlttBufferUnfaded
_08032084: .4byte REG_BG0CNT
_08032088:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _080320D0
movs r2, 0
mov r10, r2
ldr r5, _080320C0 @ =0x02019348
ldrh r7, [r5, 0x2]
ldr r4, [r5, 0x8]
mov r9, r4
ldr r6, [r5, 0xC]
lsls r0, r7, 3
ldr r1, _080320C4 @ =gMonBackPicTable
adds r0, r1
ldr r1, _080320C8 @ =gMonBackPicCoords
lsls r2, r7, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _080320CC @ =gUnknown_081FAF4C
ldr r4, [r4]
str r4, [sp]
str r7, [sp, 0x4]
ldr r4, [r5, 0x10]
b _08032184
.align 2, 0
_080320C0: .4byte 0x02019348
_080320C4: .4byte gMonBackPicTable
_080320C8: .4byte gMonBackPicCoords
_080320CC: .4byte gUnknown_081FAF4C
_080320D0:
mov r0, r8
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, [sp, 0xC]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08032104
ldr r1, _080320FC @ =gUnknown_02024A6A
ldr r5, [sp, 0xC]
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08032100 @ =gEnemyParty
b _08032114
.align 2, 0
_080320FC: .4byte gUnknown_02024A6A
_08032100: .4byte gEnemyParty
_08032104:
ldr r1, _0803218C @ =gUnknown_02024A6A
ldr r2, [sp, 0xC]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08032190 @ =gPlayerParty
_08032114:
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r7, r0, 16
mov r0, r8
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _080321A4
ldr r0, _0803218C @ =gUnknown_02024A6A
mov r5, r8
lsls r4, r5, 1
adds r4, r0
ldrh r0, [r4]
movs r6, 0x64
muls r0, r6
ldr r5, _08032190 @ =gPlayerParty
adds r0, r5
movs r1, 0
bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
bl GetMonData
adds r6, r0, 0
lsls r0, r7, 3
ldr r1, _08032194 @ =gMonBackPicTable
adds r0, r1
ldr r1, _08032198 @ =gMonBackPicCoords
lsls r2, r7, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _0803219C @ =gUnknown_081FAF4C
mov r12, r4
mov r5, r10
lsls r4, r5, 2
add r4, r12
ldr r4, [r4]
str r4, [sp]
str r7, [sp, 0x4]
ldr r4, _080321A0 @ =gUnknown_02024E70
mov r12, r4
mov r5, r8
lsls r4, r5, 2
add r4, r12
ldr r4, [r4]
_08032184:
str r4, [sp, 0x8]
bl HandleLoadSpecialPokePic
b _08032202
.align 2, 0
_0803218C: .4byte gUnknown_02024A6A
_08032190: .4byte gPlayerParty
_08032194: .4byte gMonBackPicTable
_08032198: .4byte gMonBackPicCoords
_0803219C: .4byte gUnknown_081FAF4C
_080321A0: .4byte gUnknown_02024E70
_080321A4:
ldr r0, _08032308 @ =gUnknown_02024A6A
mov r1, r8
lsls r4, r1, 1
adds r4, r0
ldrh r0, [r4]
movs r6, 0x64
muls r0, r6
ldr r5, _0803230C @ =gEnemyParty
adds r0, r5
movs r1, 0
bl GetMonData
mov r9, r0
ldrh r0, [r4]
muls r0, r6
adds r0, r5
movs r1, 0x1
bl GetMonData
adds r6, r0, 0
lsls r0, r7, 3
ldr r1, _08032310 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _08032314 @ =gMonFrontPicCoords
lsls r2, r7, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _08032318 @ =gUnknown_081FAF4C
mov r12, r4
mov r5, r10
lsls r4, r5, 2
add r4, r12
ldr r4, [r4]
str r4, [sp]
str r7, [sp, 0x4]
ldr r4, _0803231C @ =gUnknown_02024E70
mov r12, r4
mov r5, r8
lsls r4, r5, 2
add r4, r12
ldr r4, [r4]
str r4, [sp, 0x8]
bl HandleLoadSpecialPokePic
_08032202:
ldr r1, _08032318 @ =gUnknown_081FAF4C
mov r2, r10
lsls r0, r2, 2
adds r0, r1
ldr r2, [r0]
ldr r0, _08032320 @ =gUnknown_02024BE0
add r0, r8
mov r10, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _08032324 @ =gSprites
adds r0, r4
ldrh r0, [r0, 0x4]
lsls r0, 22
lsrs r0, 17
ldr r1, _08032328 @ =0x06010000
adds r0, r1
ldr r1, _0803232C @ =0x040000d4
str r2, [r1]
str r0, [r1, 0x4]
ldr r0, _08032330 @ =0x84000200
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
mov r5, r8
lsls r0, r5, 20
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r5, r0, 16
adds r0, r7, 0
adds r1, r6, 0
mov r2, r9
bl species_and_otid_get_pal
adds r6, r0, 0
ldr r2, _08032334 @ =0x02000000
mov r9, r2
mov r1, r9
bl sub_800D238
mov r0, r9
adds r1, r5, 0
movs r2, 0x20
bl LoadPalette
ldr r0, _08032338 @ =SPECIES_CASTFORM
cmp r7, r0
bne _08032288
movs r4, 0xB2
lsls r4, 9
add r4, r9
adds r0, r6, 0
adds r1, r4, 0
bl sub_800D238
ldr r0, _0803233C @ =gBattleMonForms
ldr r1, [sp, 0xC]
adds r0, r1, r0
ldrb r0, [r0]
lsls r0, 5
adds r0, r4
adds r1, r5, 0
movs r2, 0x20
bl LoadPalette
_08032288:
ldr r3, _08032340 @ =0x00007fff
adds r0, r5, 0
movs r1, 0x10
movs r2, 0x6
bl BlendPalette
lsls r1, r5, 1
ldr r0, _08032344 @ =gPlttBufferFaded
adds r0, r1, r0
ldr r2, _08032348 @ =gPlttBufferUnfaded
adds r1, r2
ldr r2, _0803234C @ =REG_BG0CNT
bl CpuSet
bl IsContest
lsls r0, 24
cmp r0, 0
bne _080322C8
mov r2, r8
lsls r0, r2, 2
movs r1, 0xBC
lsls r1, 9
add r1, r9
adds r0, r1
strh r7, [r0, 0x2]
ldr r0, _0803233C @ =gBattleMonForms
adds r1, r2, r0
ldr r4, [sp, 0xC]
adds r0, r4, r0
ldrb r0, [r0]
strb r0, [r1]
_080322C8:
mov r0, r8
bl sub_8077F68
mov r5, r10
ldrb r2, [r5]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
ldr r2, _08032324 @ =gSprites
adds r1, r2
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x22]
ldrb r1, [r5]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, _0803233C @ =gBattleMonForms
add r1, r8
ldrb r1, [r1]
bl StartSpriteAnim
_080322F6:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08032308: .4byte gUnknown_02024A6A
_0803230C: .4byte gEnemyParty
_08032310: .4byte gMonFrontPicTable
_08032314: .4byte gMonFrontPicCoords
_08032318: .4byte gUnknown_081FAF4C
_0803231C: .4byte gUnknown_02024E70
_08032320: .4byte gUnknown_02024BE0
_08032324: .4byte gSprites
_08032328: .4byte 0x06010000
_0803232C: .4byte 0x040000d4
_08032330: .4byte 0x84000200
_08032334: .4byte 0x02000000
_08032338: .4byte SPECIES_CASTFORM
_0803233C: .4byte gBattleMonForms
_08032340: .4byte 0x00007fff
_08032344: .4byte gPlttBufferFaded
_08032348: .4byte gPlttBufferUnfaded
_0803234C: .4byte REG_BG0CNT
thumb_func_end sub_8031FC4
thumb_func_start sub_8032350
sub_8032350: @ 8032350
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
lsls r1, 24
cmp r1, 0
bne _08032408
bl IsContest
lsls r0, 24
cmp r0, 0
beq _0803236C
movs r4, 0
b _08032376
_0803236C:
adds r0, r4, 0
bl battle_get_per_side_status
lsls r0, 24
lsrs r4, r0, 24
_08032376:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08032388
ldr r0, _08032384 @ =gSubstituteDollTilemap
b _08032396
.align 2, 0
_08032384: .4byte gSubstituteDollTilemap
_08032388:
adds r0, r5, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _080323AC
ldr r0, _080323A4 @ =gSubstituteDollGfx
_08032396:
ldr r1, _080323A8 @ =gUnknown_081FAF4C
lsls r4, 2
adds r1, r4, r1
ldr r1, [r1]
bl LZDecompressVram
b _080323BA
.align 2, 0
_080323A4: .4byte gSubstituteDollGfx
_080323A8: .4byte gUnknown_081FAF4C
_080323AC:
ldr r0, _080323F4 @ =gSubstituteDollTilemap
ldr r1, _080323F8 @ =gUnknown_081FAF4C
lsls r4, 2
adds r1, r4, r1
ldr r1, [r1]
bl LZDecompressVram
_080323BA:
lsls r7, r5, 4
ldr r0, _080323FC @ =gSubstituteDollPal
mov r12, r0
ldr r0, _080323F8 @ =gUnknown_081FAF4C
adds r0, r4, r0
ldr r4, [r0]
ldr r3, _08032400 @ =0x040000d4
ldr r6, _08032404 @ =0x84000200
movs r0, 0x80
lsls r0, 4
adds r2, r4, r0
adds r5, r0, 0
movs r1, 0x2
_080323D4:
str r4, [r3]
str r2, [r3, 0x4]
str r6, [r3, 0x8]
ldr r0, [r3, 0x8]
adds r2, r5
subs r1, 0x1
cmp r1, 0
bge _080323D4
movs r0, 0x80
lsls r0, 1
adds r1, r7, r0
mov r0, r12
movs r2, 0x20
bl LoadCompressedPalette
b _08032456
.align 2, 0
_080323F4: .4byte gSubstituteDollTilemap
_080323F8: .4byte gUnknown_081FAF4C
_080323FC: .4byte gSubstituteDollPal
_08032400: .4byte 0x040000d4
_08032404: .4byte 0x84000200
_08032408:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _08032456
adds r0, r4, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08032440
ldr r1, _08032438 @ =gUnknown_02024A6A
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0803243C @ =gEnemyParty
adds r0, r1
adds r1, r4, 0
bl sub_8031794
b _08032456
.align 2, 0
_08032438: .4byte gUnknown_02024A6A
_0803243C: .4byte gEnemyParty
_08032440:
ldr r1, _0803245C @ =gUnknown_02024A6A
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08032460 @ =gPlayerParty
adds r0, r1
adds r1, r5, 0
bl sub_80318FC
_08032456:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803245C: .4byte gUnknown_02024A6A
_08032460: .4byte gPlayerParty
thumb_func_end sub_8032350
thumb_func_start refresh_graphics_maybe
refresh_graphics_maybe: @ 8032464
push {r4-r6,lr}
adds r5, r1, 0
adds r4, r2, 0
lsls r0, 24
lsrs r6, r0, 24
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
adds r1, r5, 0
bl sub_8032350
lsls r0, r4, 4
adds r0, r4
lsls r0, 2
ldr r1, _080324A0 @ =gSprites
adds r4, r0, r1
ldr r0, _080324A4 @ =gBattleMonForms
adds r0, r6, r0
ldrb r1, [r0]
adds r0, r4, 0
bl StartSpriteAnim
cmp r5, 0
bne _080324A8
adds r0, r6, 0
bl sub_8077F7C
b _080324AE
.align 2, 0
_080324A0: .4byte gSprites
_080324A4: .4byte gBattleMonForms
_080324A8:
adds r0, r6, 0
bl sub_8077F68
_080324AE:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end refresh_graphics_maybe
thumb_func_start sub_80324BC
sub_80324BC: @ 80324BC
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r1, 16
cmp r1, 0xA4
bne _080324D8
lsls r2, r0, 2
ldr r0, _080324DC @ =0x02017800
adds r2, r0
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
_080324D8:
pop {r0}
bx r0
.align 2, 0
_080324DC: .4byte 0x02017800
thumb_func_end sub_80324BC
thumb_func_start sub_80324E0
sub_80324E0: @ 80324E0
lsls r0, 24
lsrs r0, 22
ldr r1, _080324F4 @ =0x02017800
adds r0, r1
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
bx lr
.align 2, 0
_080324F4: .4byte 0x02017800
thumb_func_end sub_80324E0
thumb_func_start sub_80324F8
sub_80324F8: @ 80324F8
push {r4-r7,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r6, r1, 24
adds r7, r6, 0
movs r1, 0x39
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08032568
lsls r0, r6, 2
ldr r3, _08032564 @ =0x02017800
adds r4, r0, r3
ldrb r1, [r4]
movs r5, 0x2
movs r2, 0x2
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _080325B2
adds r0, r6, 0
eors r0, r5
lsls r0, 2
adds r0, r3
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0803255A
movs r0, 0x5A
bl PlaySE
_0803255A:
ldrb r0, [r4]
orrs r0, r5
strb r0, [r4]
b _080325B2
.align 2, 0
_08032564: .4byte 0x02017800
_08032568:
lsls r1, r6, 2
ldr r4, _0803258C @ =0x02017800
adds r1, r4
ldrb r2, [r1]
movs r0, 0x3
negs r0, r0
ands r0, r2
strb r0, [r1]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
bne _08032590
movs r0, 0x5A
bl m4aSongNumStop
b _080325B2
.align 2, 0
_0803258C: .4byte 0x02017800
_08032590:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080325B2
movs r0, 0x2
eors r7, r0
lsls r0, r7, 2
adds r0, r4
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080325B2
movs r0, 0x5A
bl m4aSongNumStop
_080325B2:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80324F8
thumb_func_start sub_80325B8
sub_80325B8: @ 80325B8
push {r4-r6,lr}
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r4, r0, 24
lsls r1, r4, 2
ldr r6, _08032600 @ =0x02017800
adds r1, r6
ldrb r2, [r1]
movs r5, 0x3
negs r5, r5
adds r0, r5, 0
ands r0, r2
strb r0, [r1]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080325F2
movs r0, 0x2
adds r1, r4, 0
eors r1, r0
lsls r1, 2
adds r1, r6
ldrb r2, [r1]
adds r0, r5, 0
ands r0, r2
strb r0, [r1]
_080325F2:
movs r0, 0x5A
bl m4aSongNumStop
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08032600: .4byte 0x02017800
thumb_func_end sub_80325B8
thumb_func_start unref_sub_8032604
unref_sub_8032604: @ 8032604
push {r4,r5,lr}
adds r5, r0, 0
movs r1, 0x39
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r5, 0
movs r1, 0x3A
bl GetMonData
adds r1, r0, 0
lsls r4, 16
asrs r4, 16
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end unref_sub_8032604
thumb_func_start sub_8032638
sub_8032638: @ 8032638
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, _080326DC @ =gMain
ldr r1, _080326E0 @ =0x0000043d
adds r0, r1
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080326CE
movs r0, 0
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r0, 0x2
bl battle_get_side_with_given_state
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r5, _080326E4 @ =gUnknown_02024A6A
mov r1, r8
lsls r0, r1, 1
adds r0, r5
ldrb r0, [r0]
bl pokemon_order_func
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r1, r9
lsls r0, r1, 1
adds r0, r5
ldrb r0, [r0]
bl pokemon_order_func
lsls r0, 24
lsrs r5, r0, 24
movs r7, 0x64
adds r0, r4, 0
muls r0, r7
ldr r6, _080326E8 @ =gPlayerParty
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
beq _080326AA
adds r0, r4, 0
mov r1, r8
bl sub_80324F8
_080326AA:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _080326CE
adds r0, r5, 0
muls r0, r7
adds r4, r0, r6
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
beq _080326CE
adds r0, r4, 0
mov r1, r9
bl sub_80324F8
_080326CE:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080326DC: .4byte gMain
_080326E0: .4byte 0x0000043d
_080326E4: .4byte gUnknown_02024A6A
_080326E8: .4byte gPlayerParty
thumb_func_end sub_8032638
thumb_func_start sub_80326EC
sub_80326EC: @ 80326EC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r5, 0
ldr r0, _08032778 @ =gUnknown_02024A68
ldrb r0, [r0]
cmp r5, r0
bge _080327B4
movs r0, 0x3
mov r10, r8
mov r1, r10
ands r1, r0
mov r10, r1
movs r6, 0
movs r2, 0x3F
negs r2, r2
mov r9, r2
_08032718:
lsls r0, r5, 24
lsrs r0, 24
bl sub_8078874
lsls r0, 24
cmp r0, 0
beq _080327A8
ldr r4, _0803277C @ =gSprites
ldr r0, _08032780 @ =gUnknown_02024BE0
adds r3, r5, r0
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x1]
movs r7, 0x4
negs r7, r7
adds r2, r7, 0
ands r1, r2
mov r2, r10
orrs r1, r2
strb r1, [r0, 0x1]
mov r7, r8
cmp r7, 0
bne _08032788
ldr r2, _08032784 @ =0x02017810
adds r2, r6, r2
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x3]
lsls r0, 26
lsrs r0, 27
strb r0, [r2, 0x6]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x3]
mov r2, r9
ands r1, r2
strb r1, [r0, 0x3]
b _080327A8
.align 2, 0
_08032778: .4byte gUnknown_02024A68
_0803277C: .4byte gSprites
_08032780: .4byte gUnknown_02024BE0
_08032784: .4byte 0x02017810
_08032788:
ldrb r0, [r3]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r4
ldr r0, _080327C4 @ =0x02017810
adds r0, r6, r0
ldrb r1, [r0, 0x6]
movs r0, 0x1F
ands r1, r0
lsls r1, 1
ldrb r0, [r2, 0x3]
mov r3, r9
ands r0, r3
orrs r0, r1
strb r0, [r2, 0x3]
_080327A8:
adds r6, 0xC
adds r5, 0x1
ldr r0, _080327C8 @ =gUnknown_02024A68
ldrb r0, [r0]
cmp r5, r0
blt _08032718
_080327B4:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080327C4: .4byte 0x02017810
_080327C8: .4byte gUnknown_02024A68
thumb_func_end sub_80326EC
thumb_func_start sub_80327CC
sub_80327CC: @ 80327CC
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, _08032894 @ =gUnknown_081FAF24
bl LoadCompressedObjectPic
movs r0, 0x1
bl battle_get_side_with_given_state
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _08032898 @ =gSpriteTemplate_81FAF34
mov r8, r0
adds r0, r5, 0
movs r1, 0
bl sub_8077ABC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_8077ABC
adds r2, r0, 0
lsls r2, 24
lsrs r2, 8
movs r0, 0x80
lsls r0, 14
adds r2, r0
asrs r2, 16
mov r0, r8
adds r1, r4, 0
movs r3, 0xC8
bl CreateSprite
lsls r1, r5, 1
adds r1, r5
lsls r1, 2
ldr r6, _0803289C @ =0x02017810
adds r1, r6
strb r0, [r1, 0x7]
ldr r7, _080328A0 @ =gSprites
ldrb r1, [r1, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0803288A
movs r0, 0x3
bl battle_get_side_with_given_state
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r5, 0
movs r1, 0
bl sub_8077ABC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x1
bl sub_8077ABC
adds r2, r0, 0
lsls r2, 24
lsrs r2, 8
movs r0, 0x80
lsls r0, 14
adds r2, r0
asrs r2, 16
mov r0, r8
adds r1, r4, 0
movs r3, 0xC8
bl CreateSprite
lsls r1, r5, 1
adds r1, r5
lsls r1, 2
adds r1, r6
strb r0, [r1, 0x7]
ldrb r1, [r1, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r7
strh r5, [r0, 0x2E]
_0803288A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08032894: .4byte gUnknown_081FAF24
_08032898: .4byte gSpriteTemplate_81FAF34
_0803289C: .4byte 0x02017810
_080328A0: .4byte gSprites
thumb_func_end sub_80327CC
thumb_func_start sub_80328A4
sub_80328A4: @ 80328A4
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
movs r0, 0
mov r8, r0
ldrh r0, [r5, 0x2E]
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080328E8 @ =gUnknown_02024BE0
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080328EC @ =gSprites
adds r7, r0, r1
adds r6, r7, 0
adds r6, 0x3E
ldrb r1, [r6]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080328E0
adds r0, r4, 0
bl sub_8078874
lsls r0, 24
cmp r0, 0
bne _080328F4
_080328E0:
ldr r0, _080328F0 @ =sub_8032978
str r0, [r5, 0x1C]
b _08032964
.align 2, 0
_080328E8: .4byte gUnknown_02024BE0
_080328EC: .4byte gSprites
_080328F0: .4byte sub_8032978
_080328F4:
ldr r0, _08032910 @ =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _08032906
ldrb r1, [r6]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08032918
_08032906:
movs r0, 0x1
mov r8, r0
lsls r4, 2
ldr r6, _08032914 @ =0x02017800
b _08032938
.align 2, 0
_08032910: .4byte gAnimScriptActive
_08032914: .4byte 0x02017800
_08032918:
lsls r0, r4, 2
ldr r1, _08032970 @ =0x02017800
adds r3, r0, r1
ldrh r2, [r3, 0x2]
adds r4, r0, 0
adds r6, r1, 0
cmp r2, 0
beq _08032938
ldr r0, _08032974 @ =gEnemyMonElevation
adds r1, r2, 0
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
bne _08032938
movs r0, 0x1
mov r8, r0
_08032938:
adds r0, r4, r6
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08032948
movs r0, 0x1
mov r8, r0
_08032948:
ldrh r0, [r7, 0x20]
strh r0, [r5, 0x20]
ldrh r0, [r7, 0x24]
strh r0, [r5, 0x24]
adds r2, r5, 0
adds r2, 0x3E
mov r0, r8
lsls r3, r0, 2
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
orrs r0, r3
strb r0, [r2]
_08032964:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08032970: .4byte 0x02017800
_08032974: .4byte gEnemyMonElevation
thumb_func_end sub_80328A4
thumb_func_start sub_8032978
sub_8032978: @ 8032978
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
bx lr
thumb_func_end sub_8032978
thumb_func_start sub_8032984
sub_8032984: @ 8032984
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
lsls r1, 16
lsrs r5, r1, 16
adds r0, r4, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _080329FA
lsls r0, r4, 2
ldr r3, _080329D0 @ =0x02017800
adds r1, r0, r3
ldrh r0, [r1, 0x2]
cmp r0, 0
beq _080329AA
adds r5, r0, 0
_080329AA:
ldr r0, _080329D4 @ =gEnemyMonElevation
adds r0, r5, r0
ldrb r0, [r0]
cmp r0, 0
beq _080329E0
ldr r2, _080329D8 @ =gSprites
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
adds r0, r3, r0
ldrb r1, [r0, 0x17]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _080329DC @ =sub_80328A4
b _080329F8
.align 2, 0
_080329D0: .4byte 0x02017800
_080329D4: .4byte gEnemyMonElevation
_080329D8: .4byte gSprites
_080329DC: .4byte sub_80328A4
_080329E0:
ldr r2, _08032A00 @ =gSprites
lsls r0, r6, 1
adds r0, r6
lsls r0, 2
adds r0, r3, r0
ldrb r1, [r0, 0x17]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _08032A04 @ =sub_8032978
_080329F8:
str r1, [r0]
_080329FA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08032A00: .4byte gSprites
_08032A04: .4byte sub_8032978
thumb_func_end sub_8032984
thumb_func_start sub_8032A08
sub_8032A08: @ 8032A08
lsls r0, 24
lsrs r0, 24
ldr r2, _08032A2C @ =gSprites
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r0, _08032A30 @ =0x02017810
adds r1, r0
ldrb r1, [r1, 0x7]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _08032A34 @ =sub_8032978
str r1, [r0]
bx lr
.align 2, 0
_08032A2C: .4byte gSprites
_08032A30: .4byte 0x02017810
_08032A34: .4byte sub_8032978
thumb_func_end sub_8032A08
thumb_func_start sub_8032A38
sub_8032A38: @ 8032A38
push {r4-r6,lr}
ldr r3, _08032AA4 @ =0x06000240
movs r0, 0
movs r6, 0xF0
lsls r6, 8
_08032A42:
adds r5, r0, 0x1
movs r4, 0xF
_08032A46:
ldrh r1, [r3]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _08032A56
adds r0, r6, 0
orrs r0, r1
strh r0, [r3]
_08032A56:
ldrh r1, [r3]
movs r2, 0xF0
lsls r2, 4
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _08032A6A
adds r0, r2, 0
orrs r0, r1
strh r0, [r3]
_08032A6A:
ldrh r1, [r3]
movs r2, 0xF0
movs r0, 0xF0
ands r0, r1
cmp r0, 0
bne _08032A7C
adds r0, r1, 0
orrs r0, r2
strh r0, [r3]
_08032A7C:
ldrh r1, [r3]
movs r2, 0xF
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _08032A8E
adds r0, r1, 0
orrs r0, r2
strh r0, [r3]
_08032A8E:
adds r3, 0x2
subs r4, 0x1
cmp r4, 0
bge _08032A46
adds r0, r5, 0
cmp r0, 0x8
ble _08032A42
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08032AA4: .4byte 0x06000240
thumb_func_end sub_8032A38
thumb_func_start sub_8032AA8
sub_8032AA8: @ 8032AA8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsls r2, r4, 2
ldr r0, _08032AD4 @ =0x02017800
adds r2, r0
movs r3, 0
movs r0, 0
strh r0, [r2, 0x2]
ldr r0, _08032AD8 @ =gBattleMonForms
adds r0, r4, r0
strb r3, [r0]
cmp r1, 0
bne _08032ACC
adds r0, r4, 0
bl sub_80324E0
_08032ACC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08032AD4: .4byte 0x02017800
_08032AD8: .4byte gBattleMonForms
thumb_func_end sub_8032AA8
thumb_func_start nullsub_45
nullsub_45: @ 8032ADC
bx lr
thumb_func_end nullsub_45
thumb_func_start sub_8032AE0
sub_8032AE0: @ 8032AE0
ldr r1, _08032AF0 @ =gUnknown_03004330
ldr r0, _08032AF4 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08032AF8 @ =sub_8032AFC
str r1, [r0]
bx lr
.align 2, 0
_08032AF0: .4byte gUnknown_03004330
_08032AF4: .4byte gUnknown_02024A60
_08032AF8: .4byte sub_8032AFC
thumb_func_end sub_8032AE0
thumb_func_start sub_8032AFC
sub_8032AFC: @ 8032AFC
push {lr}
ldr r2, _08032B30 @ =gUnknown_02024A64
ldr r1, _08032B34 @ =gBitTable
ldr r0, _08032B38 @ =gUnknown_02024A60
ldrb r3, [r0]
lsls r0, r3, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _08032B48
ldr r0, _08032B3C @ =gUnknown_02023A60
lsls r1, r3, 9
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x38
bhi _08032B44
ldr r0, _08032B40 @ =gUnknown_081FAF5C
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _08032B48
.align 2, 0
_08032B30: .4byte gUnknown_02024A64
_08032B34: .4byte gBitTable
_08032B38: .4byte gUnknown_02024A60
_08032B3C: .4byte gUnknown_02023A60
_08032B40: .4byte gUnknown_081FAF5C
_08032B44:
bl sub_80334EC
_08032B48:
pop {r0}
bx r0
thumb_func_end sub_8032AFC
thumb_func_start sub_8032B4C
sub_8032B4C: @ 8032B4C
push {lr}
ldr r2, _08032B74 @ =gSprites
ldr r1, _08032B78 @ =gUnknown_02024BE0
ldr r0, _08032B7C @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _08032B80 @ =SpriteCallbackDummy
cmp r1, r0
bne _08032B70
bl sub_80334EC
_08032B70:
pop {r0}
bx r0
.align 2, 0
_08032B74: .4byte gSprites
_08032B78: .4byte gUnknown_02024BE0
_08032B7C: .4byte gUnknown_02024A60
_08032B80: .4byte SpriteCallbackDummy
thumb_func_end sub_8032B4C
thumb_func_start sub_8032B84
sub_8032B84: @ 8032B84
push {lr}
ldr r2, _08032BAC @ =gSprites
ldr r1, _08032BB0 @ =gUnknown_02024BE0
ldr r0, _08032BB4 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _08032BB8 @ =SpriteCallbackDummy
cmp r1, r0
bne _08032BA8
bl sub_80334EC
_08032BA8:
pop {r0}
bx r0
.align 2, 0
_08032BAC: .4byte gSprites
_08032BB0: .4byte gUnknown_02024BE0
_08032BB4: .4byte gUnknown_02024A60
_08032BB8: .4byte SpriteCallbackDummy
thumb_func_end sub_8032B84
thumb_func_start sub_8032BBC
sub_8032BBC: @ 8032BBC
push {r4-r6,lr}
ldr r4, _08032C34 @ =gSprites
ldr r6, _08032C38 @ =gUnknown_02024BE0
ldr r5, _08032C3C @ =gUnknown_02024A60
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r2, r0, 2
adds r0, r4, 0
adds r0, 0x1C
adds r0, r2, r0
ldr r1, [r0]
ldr r0, _08032C40 @ =SpriteCallbackDummy
cmp r1, r0
bne _08032C2C
adds r0, r2, r4
ldrh r0, [r0, 0x6]
bl sub_8031B74
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r1, 0x38]
ldr r2, _08032C44 @ =0x000003ff
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _08032C48 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
bl sub_80334EC
_08032C2C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08032C34: .4byte gSprites
_08032C38: .4byte gUnknown_02024BE0
_08032C3C: .4byte gUnknown_02024A60
_08032C40: .4byte SpriteCallbackDummy
_08032C44: .4byte 0x000003ff
_08032C48: .4byte 0xfffffc00
thumb_func_end sub_8032BBC
thumb_func_start sub_8032C4C
sub_8032C4C: @ 8032C4C
push {lr}
ldr r3, _08032C80 @ =gUnknown_02024A60
ldrb r0, [r3]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r2, _08032C84 @ =0x02017810
adds r1, r2
ldrb r0, [r1, 0x9]
subs r0, 0x1
strb r0, [r1, 0x9]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _08032C7C
ldrb r0, [r3]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0
strb r0, [r1, 0x9]
bl sub_80334EC
_08032C7C:
pop {r0}
bx r0
.align 2, 0
_08032C80: .4byte gUnknown_02024A60
_08032C84: .4byte 0x02017810
thumb_func_end sub_8032C4C
thumb_func_start sub_8032C88
sub_8032C88: @ 8032C88
push {r4-r7,lr}
movs r6, 0
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032CAC
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032CE0
ldr r0, _08032CCC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08032CE0
_08032CAC:
ldr r2, _08032CD0 @ =gSprites
ldr r1, _08032CD4 @ =gUnknown_03004340
ldr r0, _08032CD8 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _08032CDC @ =SpriteCallbackDummy
cmp r1, r0
bne _08032D16
b _08032D14
.align 2, 0
_08032CCC: .4byte gBattleTypeFlags
_08032CD0: .4byte gSprites
_08032CD4: .4byte gUnknown_03004340
_08032CD8: .4byte gUnknown_02024A60
_08032CDC: .4byte SpriteCallbackDummy
_08032CE0:
ldr r2, _08032DC4 @ =gSprites
ldr r5, _08032DC8 @ =gUnknown_03004340
ldr r0, _08032DCC @ =gUnknown_02024A60
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
ldr r0, _08032DD0 @ =SpriteCallbackDummy
cmp r4, r0
bne _08032D16
movs r0, 0x2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r0, [r0]
cmp r0, r4
bne _08032D16
_08032D14:
movs r6, 0x1
_08032D16:
bl IsCryPlayingOrClearCrySongs
lsls r0, 24
cmp r0, 0
beq _08032D22
movs r6, 0
_08032D22:
cmp r6, 0
beq _08032E0E
ldr r7, _08032DCC @ =gUnknown_02024A60
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r5, _08032DD4 @ =0x02017810
adds r4, r0, r5
ldrb r1, [r4, 0x1]
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08032E0E
movs r6, 0x2
adds r1, r6, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0, 0x1]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08032E0E
ldrb r1, [r4]
movs r3, 0x7F
adds r0, r3, 0
ands r0, r1
strb r0, [r4]
ldrb r0, [r7]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x1]
movs r4, 0x2
negs r4, r4
adds r0, r4, 0
ands r0, r2
strb r0, [r1, 0x1]
ldrb r0, [r7]
adds r1, r6, 0
eors r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
ldrb r0, [r7]
adds r1, r6, 0
eors r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0, 0x1]
ands r4, r1
strb r4, [r0, 0x1]
ldr r4, _08032DD8 @ =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldr r0, _08032DDC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08032DE4
ldr r0, _08032DE0 @ =gMPlay_BGM
bl m4aMPlayContinue
b _08032DF0
.align 2, 0
_08032DC4: .4byte gSprites
_08032DC8: .4byte gUnknown_03004340
_08032DCC: .4byte gUnknown_02024A60
_08032DD0: .4byte SpriteCallbackDummy
_08032DD4: .4byte 0x02017810
_08032DD8: .4byte 0x000027f9
_08032DDC: .4byte gBattleTypeFlags
_08032DE0: .4byte gMPlay_BGM
_08032DE4:
ldr r0, _08032E14 @ =gMPlay_BGM
ldr r1, _08032E18 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
_08032DF0:
ldr r2, _08032E1C @ =gUnknown_02024A60
ldrb r1, [r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08032E20 @ =0x02017810
adds r0, r1
movs r1, 0x3
strb r1, [r0, 0x9]
ldr r1, _08032E24 @ =gUnknown_03004330
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _08032E28 @ =sub_8032C4C
str r1, [r0]
_08032E0E:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08032E14: .4byte gMPlay_BGM
_08032E18: .4byte 0x0000ffff
_08032E1C: .4byte gUnknown_02024A60
_08032E20: .4byte 0x02017810
_08032E24: .4byte gUnknown_03004330
_08032E28: .4byte sub_8032C4C
thumb_func_end sub_8032C88
thumb_func_start sub_8032E2C
sub_8032E2C: @ 8032E2C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r0, _08032FEC @ =gUnknown_02024A60
mov r9, r0
ldrb r2, [r0]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
ldr r4, _08032FF0 @ =0x02017810
adds r0, r4
ldrb r1, [r0]
movs r5, 0x88
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _08032E64
ldr r0, _08032FF4 @ =gUnknown_02024A6A
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _08032FF8 @ =gEnemyParty
adds r1, r0
adds r0, r2, 0
bl sub_8141828
_08032E64:
mov r1, r9
ldrb r0, [r1]
movs r7, 0x2
adds r2, r7, 0
eors r2, r0
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _08032E94
ldr r0, _08032FF4 @ =gUnknown_02024A6A
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _08032FF8 @ =gEnemyParty
adds r1, r0
adds r0, r2, 0
bl sub_8141828
_08032E94:
mov r0, r9
ldrb r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
movs r3, 0x8
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08032EAE
b _08032FE0
_08032EAE:
adds r1, r7, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08032EC6
b _08032FE0
_08032EC6:
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _08032F58
ldr r0, _08032FFC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _08032F58
ldr r1, _08033000 @ =gUnknown_0300434C
mov r2, r9
ldrb r0, [r2]
eors r0, r7
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08033004 @ =gSprites
adds r0, r1
bl DestroySprite
ldr r4, _08033008 @ =gUnknown_03004340
mov r1, r9
ldrb r0, [r1]
adds r1, r7, 0
eors r1, r0
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _08032FF4 @ =gUnknown_02024A6A
mov r8, r2
lsls r1, 1
add r1, r8
ldrh r1, [r1]
movs r6, 0x64
muls r1, r6
ldr r5, _08032FF8 @ =gEnemyParty
adds r1, r5
movs r2, 0
bl sub_8045A5C
mov r1, r9
ldrb r0, [r1]
eors r0, r7
bl sub_804777C
mov r2, r9
ldrb r0, [r2]
eors r0, r7
adds r0, r4
ldrb r0, [r0]
bl sub_8043DFC
mov r1, r9
ldrb r0, [r1]
adds r4, r7, 0
eors r4, r0
lsls r0, r4, 1
add r0, r8
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0xB
bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8032984
_08032F58:
ldr r1, _08033000 @ =gUnknown_0300434C
ldr r4, _08032FEC @ =gUnknown_02024A60
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08033004 @ =gSprites
adds r0, r1
bl DestroySprite
ldr r5, _08033008 @ =gUnknown_03004340
ldrb r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, _08032FF4 @ =gUnknown_02024A6A
mov r9, r2
lsls r1, 1
add r1, r9
ldrh r1, [r1]
movs r2, 0x64
mov r8, r2
mov r2, r8
muls r2, r1
adds r1, r2, 0
ldr r6, _08032FF8 @ =gEnemyParty
adds r1, r6
movs r2, 0
bl sub_8045A5C
ldrb r0, [r4]
bl sub_804777C
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8043DFC
ldrb r5, [r4]
lsls r0, r5, 1
add r0, r9
ldrh r0, [r0]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_8032984
ldr r2, _0803300C @ =0x02017840
ldrb r1, [r2, 0x9]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x9]
ldr r1, _08033010 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08033014 @ =sub_8032C88
str r1, [r0]
_08032FE0:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08032FEC: .4byte gUnknown_02024A60
_08032FF0: .4byte 0x02017810
_08032FF4: .4byte gUnknown_02024A6A
_08032FF8: .4byte gEnemyParty
_08032FFC: .4byte gBattleTypeFlags
_08033000: .4byte gUnknown_0300434C
_08033004: .4byte gSprites
_08033008: .4byte gUnknown_03004340
_0803300C: .4byte 0x02017840
_08033010: .4byte gUnknown_03004330
_08033014: .4byte sub_8032C88
thumb_func_end sub_8032E2C
thumb_func_start sub_8033018
sub_8033018: @ 8033018
push {r4-r7,lr}
ldr r2, _08033070 @ =gSprites
ldr r0, _08033074 @ =gUnknown_02024BE0
ldr r7, _08033078 @ =gUnknown_02024A60
ldrb r3, [r7]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r2
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 27
lsrs r2, r0, 31
cmp r2, 0x1
bne _080330BC
movs r4, 0x24
ldrsh r0, [r1, r4]
cmp r0, 0
bne _080330BC
lsls r4, r3, 1
adds r0, r4, r3
lsls r0, 2
ldr r6, _0803307C @ =0x02017810
adds r1, r0, r6
ldrb r5, [r1]
movs r0, 0x80
ands r0, r5
cmp r0, 0
bne _08033088
ldr r0, _08033080 @ =gUnknown_02024A6A
adds r0, r4, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _08033084 @ =gEnemyParty
adds r1, r0
adds r0, r3, 0
bl sub_8141828
b _080330BC
.align 2, 0
_08033070: .4byte gSprites
_08033074: .4byte gUnknown_02024BE0
_08033078: .4byte gUnknown_02024A60
_0803307C: .4byte 0x02017810
_08033080: .4byte gUnknown_02024A6A
_08033084: .4byte gEnemyParty
_08033088:
ldrb r0, [r1, 0x1]
ands r2, r0
cmp r2, 0
beq _080330BC
movs r0, 0x7F
ands r0, r5
strb r0, [r1]
ldrb r0, [r7]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r6
ldrb r2, [r1, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r4, _080330C4 @ =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
bl sub_80334EC
_080330BC:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080330C4: .4byte 0x000027f9
thumb_func_end sub_8033018
thumb_func_start sub_80330C8
sub_80330C8: @ 80330C8
push {r4-r6,lr}
ldr r6, _08033108 @ =gUnknown_02024A60
ldrb r0, [r6]
ldr r5, _0803310C @ =gUnknown_03004340
adds r1, r0, r5
ldrb r1, [r1]
movs r2, 0
movs r3, 0
bl sub_8045C78
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
bl sub_8043DFC
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08033110
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
movs r2, 0
bl sub_80440EC
b _08033114
.align 2, 0
_08033108: .4byte gUnknown_02024A60
_0803310C: .4byte gUnknown_03004340
_08033110:
bl sub_80334EC
_08033114:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80330C8
thumb_func_start sub_803311C
sub_803311C: @ 803311C
push {lr}
ldr r2, _08033150 @ =gSprites
ldr r0, _08033154 @ =gUnknown_02024BE0
ldr r1, _08033158 @ =gUnknown_02024A60
ldrb r3, [r1]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
bne _0803314A
ldr r0, _0803315C @ =gUnknown_03004340
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8043DB0
bl sub_80334EC
_0803314A:
pop {r0}
bx r0
.align 2, 0
_08033150: .4byte gSprites
_08033154: .4byte gUnknown_02024BE0
_08033158: .4byte gUnknown_02024A60
_0803315C: .4byte gUnknown_03004340
thumb_func_end sub_803311C
thumb_func_start sub_8033160
sub_8033160: @ 8033160
push {r4-r6,lr}
ldr r6, _080331BC @ =gUnknown_02024A60
ldrb r2, [r6]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080331C0 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080331B6
ldr r5, _080331C4 @ =gUnknown_02024BE0
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _080331C8 @ =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldrb r0, [r6]
bl sub_8032A08
ldr r1, _080331CC @ =gUnknown_03004340
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8043DB0
bl sub_80334EC
_080331B6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080331BC: .4byte gUnknown_02024A60
_080331C0: .4byte 0x02017810
_080331C4: .4byte gUnknown_02024BE0
_080331C8: .4byte gSprites
_080331CC: .4byte gUnknown_03004340
thumb_func_end sub_8033160
thumb_func_start sub_80331D0
sub_80331D0: @ 80331D0
push {lr}
ldr r0, _080331E4 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
bne _080331DE
bl sub_80334EC
_080331DE:
pop {r0}
bx r0
.align 2, 0
_080331E4: .4byte gUnknown_03004210
thumb_func_end sub_80331D0
thumb_func_start bx_blink_t7
bx_blink_t7: @ 80331E8
push {r4,lr}
ldr r1, _08033224 @ =gUnknown_02024BE0
ldr r0, _08033228 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
ldr r2, _0803322C @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r0, r2
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x20
bne _08033234
movs r3, 0
movs r0, 0
strh r0, [r4, 0x30]
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
subs r0, 0x5
ands r0, r1
strb r0, [r2]
ldr r0, _08033230 @ =gUnknown_02024E6D
strb r3, [r0]
bl sub_80334EC
b _0803325E
.align 2, 0
_08033224: .4byte gUnknown_02024BE0
_08033228: .4byte gUnknown_02024A60
_0803322C: .4byte gSprites
_08033230: .4byte gUnknown_02024E6D
_08033234:
ldrh r0, [r4, 0x30]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _08033258
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_08033258:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_0803325E:
pop {r4}
pop {r0}
bx r0
thumb_func_end bx_blink_t7
thumb_func_start sub_8033264
sub_8033264: @ 8033264
push {r4,lr}
ldr r2, _080332B4 @ =gSprites
ldr r0, _080332B8 @ =gUnknown_03004340
ldr r4, _080332BC @ =gUnknown_02024A60
ldrb r3, [r4]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _080332C0 @ =SpriteCallbackDummy
cmp r1, r0
bne _080332AC
lsls r0, r3, 2
ldr r1, _080332C4 @ =0x02017800
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080332A0
adds r0, r3, 0
adds r1, r3, 0
adds r2, r3, 0
movs r3, 0x6
bl move_anim_start_t4
_080332A0:
ldr r0, _080332C8 @ =gUnknown_03004330
ldrb r1, [r4]
lsls r1, 2
adds r1, r0
ldr r0, _080332CC @ =sub_80332D0
str r0, [r1]
_080332AC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080332B4: .4byte gSprites
_080332B8: .4byte gUnknown_03004340
_080332BC: .4byte gUnknown_02024A60
_080332C0: .4byte SpriteCallbackDummy
_080332C4: .4byte 0x02017800
_080332C8: .4byte gUnknown_03004330
_080332CC: .4byte sub_80332D0
thumb_func_end sub_8033264
thumb_func_start sub_80332D0
sub_80332D0: @ 80332D0
push {lr}
ldr r0, _080332FC @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08033300 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080332F6
ldr r0, _08033304 @ =c3_0802FDF4
movs r1, 0xA
bl CreateTask
bl sub_80334EC
_080332F6:
pop {r0}
bx r0
.align 2, 0
_080332FC: .4byte gUnknown_02024A60
_08033300: .4byte 0x02017810
_08033304: .4byte c3_0802FDF4
thumb_func_end sub_80332D0
thumb_func_start sub_8033308
sub_8033308: @ 8033308
push {r4,r5,lr}
ldr r5, _080333AC @ =gUnknown_02024A60
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r3, _080333B0 @ =0x02017810
adds r2, r0, r3
ldrb r1, [r2, 0x1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080333A4
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r3
ldrb r2, [r1, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r4, _080333B4 @ =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldr r1, _080333B8 @ =gUnknown_02024BE0
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080333BC @ =gSprites
adds r0, r1
movs r1, 0
bl StartSpriteAnim
ldr r4, _080333C0 @ =gUnknown_03004340
ldrb r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _080333C4 @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _080333C8 @ =gEnemyParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
ldrb r0, [r5]
bl sub_804777C
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_8043DFC
ldrb r0, [r5]
bl sub_8031F88
ldr r1, _080333CC @ =gUnknown_03004330
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080333D0 @ =sub_8033264
str r1, [r0]
_080333A4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080333AC: .4byte gUnknown_02024A60
_080333B0: .4byte 0x02017810
_080333B4: .4byte 0x000027f9
_080333B8: .4byte gUnknown_02024BE0
_080333BC: .4byte gSprites
_080333C0: .4byte gUnknown_03004340
_080333C4: .4byte gUnknown_02024A6A
_080333C8: .4byte gEnemyParty
_080333CC: .4byte gUnknown_03004330
_080333D0: .4byte sub_8033264
thumb_func_end sub_8033308
thumb_func_start sub_80333D4
sub_80333D4: @ 80333D4
push {r4-r6,lr}
ldr r5, _08033470 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
ldr r6, _08033474 @ =0x02017810
adds r0, r6
ldrb r1, [r0]
movs r0, 0x88
ands r0, r1
cmp r0, 0
bne _08033402
ldr r0, _08033478 @ =gUnknown_02024A6A
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _0803347C @ =gEnemyParty
adds r1, r0
adds r0, r2, 0
bl sub_8141828
_08033402:
ldr r4, _08033480 @ =gSprites
ldr r0, _08033484 @ =gUnknown_0300434C
ldrb r2, [r5]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r3, r0, 2
adds r0, r4, 0
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
ldr r0, _08033488 @ =SpriteCallbackDummy
cmp r1, r0
bne _08033468
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r6
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _08033468
adds r0, r3, r4
bl DestroySprite
ldrb r4, [r5]
ldr r1, _08033478 @ =gUnknown_02024A6A
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0803347C @ =gEnemyParty
adds r0, r1
movs r1, 0xB
bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8032984
ldr r1, _0803348C @ =gUnknown_03004330
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _08033490 @ =sub_8033308
str r1, [r0]
_08033468:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08033470: .4byte gUnknown_02024A60
_08033474: .4byte 0x02017810
_08033478: .4byte gUnknown_02024A6A
_0803347C: .4byte gEnemyParty
_08033480: .4byte gSprites
_08033484: .4byte gUnknown_0300434C
_08033488: .4byte SpriteCallbackDummy
_0803348C: .4byte gUnknown_03004330
_08033490: .4byte sub_8033308
thumb_func_end sub_80333D4
thumb_func_start sub_8033494
sub_8033494: @ 8033494
push {lr}
ldr r0, _080334B8 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080334BC @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080334B2
bl sub_80334EC
_080334B2:
pop {r0}
bx r0
.align 2, 0
_080334B8: .4byte gUnknown_02024A60
_080334BC: .4byte 0x02017810
thumb_func_end sub_8033494
thumb_func_start sub_80334C0
sub_80334C0: @ 80334C0
push {lr}
ldr r0, _080334E4 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _080334E8 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _080334DE
bl sub_80334EC
_080334DE:
pop {r0}
bx r0
.align 2, 0
_080334E4: .4byte gUnknown_02024A60
_080334E8: .4byte 0x02017810
thumb_func_end sub_80334C0
thumb_func_start sub_80334EC
sub_80334EC: @ 80334EC
ldr r1, _08033510 @ =gUnknown_03004330
ldr r2, _08033514 @ =gUnknown_02024A60
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _08033518 @ =sub_8032AFC
str r1, [r0]
ldr r3, _0803351C @ =gUnknown_02024A64
ldr r1, _08033520 @ =gBitTable
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r0, [r3]
bics r0, r1
str r0, [r3]
bx lr
.align 2, 0
_08033510: .4byte gUnknown_03004330
_08033514: .4byte gUnknown_02024A60
_08033518: .4byte sub_8032AFC
_0803351C: .4byte gUnknown_02024A64
_08033520: .4byte gBitTable
thumb_func_end sub_80334EC
.align 2, 0 @ Don't pad with nop.