pokefirered/asm/battle_controller_oak.s
2019-01-06 10:09:03 -05:00

7888 lines
140 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start nullsub_81
nullsub_81: @ 80E75AC
bx lr
thumb_func_end nullsub_81
thumb_func_start sub_80E75B0
sub_80E75B0: @ 80E75B0
ldr r1, _080E75DC @ =gUnknown_3004FE0
ldr r0, _080E75E0 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080E75E4 @ =sub_80E75EC
str r1, [r0]
ldr r2, _080E75E8 @ =gBattleStruct
ldr r0, [r2]
adds r0, 0x94
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
adds r0, 0x95
strb r1, [r0]
ldr r0, [r2]
adds r0, 0x96
strb r1, [r0]
ldr r0, [r2]
adds r0, 0x97
strb r1, [r0]
bx lr
.align 2, 0
_080E75DC: .4byte gUnknown_3004FE0
_080E75E0: .4byte gActiveBattler
_080E75E4: .4byte sub_80E75EC
_080E75E8: .4byte gBattleStruct
thumb_func_end sub_80E75B0
thumb_func_start sub_80E75EC
sub_80E75EC: @ 80E75EC
push {lr}
ldr r2, _080E7620 @ =gUnknown_2023BC8
ldr r1, _080E7624 @ =gBitTable
ldr r0, _080E7628 @ =gActiveBattler
ldrb r3, [r0]
lsls r0, r3, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _080E7638
ldr r0, _080E762C @ =gUnknown_2022BC4
lsls r1, r3, 9
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x38
bhi _080E7634
ldr r0, _080E7630 @ =gUnknown_84020F8
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _080E7638
.align 2, 0
_080E7620: .4byte gUnknown_2023BC8
_080E7624: .4byte gBitTable
_080E7628: .4byte gActiveBattler
_080E762C: .4byte gUnknown_2022BC4
_080E7630: .4byte gUnknown_84020F8
_080E7634:
bl WallyBufferExecCompleted
_080E7638:
pop {r0}
bx r0
thumb_func_end sub_80E75EC
thumb_func_start sub_80E763C
sub_80E763C: @ 80E763C
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r7, _080E769C @ =gUnknown_2022BC4
ldr r4, _080E76A0 @ =gActiveBattler
ldrb r0, [r4]
lsls r2, r0, 9
adds r1, r7, 0x2
adds r1, r2, r1
ldrb r5, [r1]
adds r1, r7, 0x3
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r5, r1
movs r1, 0x1
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
ldrb r0, [r4]
movs r1, 0
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
ldr r0, _080E76A4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _080E76D4
movs r0, 0x5
bl PlaySE
ldr r1, _080E76A8 @ =gUnknown_2023FF8
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _080E76BC
cmp r0, 0x1
bgt _080E76AC
cmp r0, 0
beq _080E76B6
b _080E781A
.align 2, 0
_080E769C: .4byte gUnknown_2022BC4
_080E76A0: .4byte gActiveBattler
_080E76A4: .4byte gMain
_080E76A8: .4byte gUnknown_2023FF8
_080E76AC:
cmp r0, 0x2
beq _080E76C2
cmp r0, 0x3
beq _080E76C8
b _080E781A
_080E76B6:
movs r0, 0x1
movs r1, 0
b _080E7814
_080E76BC:
movs r0, 0x1
movs r1, 0x1
b _080E7814
_080E76C2:
movs r0, 0x1
movs r1, 0x2
b _080E7814
_080E76C8:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl EmitTwoReturnValues
b _080E781A
_080E76D4:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080E770C
ldr r5, _080E7708 @ =gUnknown_2023FF8
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _080E76EE
b _080E7838
_080E76EE:
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
movs r2, 0x1
b _080E7794
.align 2, 0
_080E7708: .4byte gUnknown_2023FF8
_080E770C:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _080E7744
ldr r5, _080E7740 @ =gUnknown_2023FF8
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _080E7726
b _080E7838
_080E7726:
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
movs r2, 0x1
b _080E7794
.align 2, 0
_080E7740: .4byte gUnknown_2023FF8
_080E7744:
movs r0, 0x40
mov r8, r0
ands r0, r1
cmp r0, 0
beq _080E7764
ldr r5, _080E7760 @ =gUnknown_2023FF8
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080E7838
b _080E777C
.align 2, 0
_080E7760: .4byte gUnknown_2023FF8
_080E7764:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080E77AC
ldr r5, _080E77A8 @ =gUnknown_2023FF8
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080E7838
_080E777C:
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl ActionSelectionDestroyCursorAt
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
movs r2, 0x2
_080E7794:
eors r0, r2
strb r0, [r1]
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl ActionSelectionCreateCursorAt
b _080E7838
.align 2, 0
_080E77A8: .4byte gUnknown_2023FF8
_080E77AC:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080E782C
ldr r6, _080E7820 @ =gBattleTypeFlags
ldr r0, [r6]
ands r0, r2
cmp r0, 0
beq _080E7838
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080E7838
movs r0, 0
bl GetBattlerAtPosition
ldr r1, _080E7824 @ =gAbsentBattlerFlags
ldrb r1, [r1]
ldr r2, _080E7828 @ =gBitTable
lsls r0, 24
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ands r1, r0
cmp r1, 0
bne _080E7838
ldr r0, [r6]
mov r1, r8
ands r0, r1
cmp r0, 0
bne _080E7838
ldrb r0, [r4]
lsls r0, 9
adds r1, r7, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _080E780A
cmp r5, 0xC
bhi _080E7838
adds r0, r5, 0
movs r1, 0x1
bl AddBagItem
_080E780A:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
movs r1, 0xC
_080E7814:
movs r2, 0
bl EmitTwoReturnValues
_080E781A:
bl WallyBufferExecCompleted
b _080E7838
.align 2, 0
_080E7820: .4byte gBattleTypeFlags
_080E7824: .4byte gAbsentBattlerFlags
_080E7828: .4byte gBitTable
_080E782C:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _080E7838
bl sub_8048A4C
_080E7838:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80E763C
thumb_func_start sub_80E7844
sub_80E7844: @ 80E7844
push {r4,lr}
ldr r1, _080E7860 @ =gBattleStruct
ldr r2, [r1]
adds r0, r2, 0
adds r0, 0x94
ldrb r0, [r0]
adds r4, r1, 0
cmp r0, 0x1
beq _080E787C
cmp r0, 0x1
bgt _080E7864
cmp r0, 0
beq _080E786A
b _080E78D8
.align 2, 0
_080E7860: .4byte gBattleStruct
_080E7864:
cmp r0, 0x2
beq _080E78B4
b _080E78D8
_080E786A:
adds r1, r2, 0
adds r1, 0x96
movs r0, 0x40
strb r0, [r1]
ldr r1, [r4]
adds r1, 0x94
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_080E787C:
ldr r1, [r4]
adds r1, 0x96
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
lsls r0, 24
cmp r0, 0
bne _080E78D8
movs r0, 0x5
bl PlaySE
movs r0, 0
bl ActionSelectionDestroyCursorAt
movs r0, 0x1
movs r1, 0
bl ActionSelectionCreateCursorAt
ldr r0, [r4]
adds r0, 0x96
movs r1, 0x40
strb r1, [r0]
ldr r1, [r4]
adds r1, 0x94
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080E78D8
_080E78B4:
adds r1, r2, 0
adds r1, 0x96
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
lsls r0, 24
cmp r0, 0
bne _080E78D8
movs r0, 0x5
bl PlaySE
movs r0, 0x1
movs r1, 0x1
movs r2, 0
bl EmitTwoReturnValues
bl WallyBufferExecCompleted
_080E78D8:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80E7844
thumb_func_start sub_80E78E0
sub_80E78E0: @ 80E78E0
push {lr}
ldr r2, _080E7908 @ =gSprites
ldr r1, _080E790C @ =gUnknown_2023D44
ldr r0, _080E7910 @ =gActiveBattler
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, _080E7914 @ =SpriteCallbackDummy
cmp r1, r0
bne _080E7904
bl WallyBufferExecCompleted
_080E7904:
pop {r0}
bx r0
.align 2, 0
_080E7908: .4byte gSprites
_080E790C: .4byte gUnknown_2023D44
_080E7910: .4byte gActiveBattler
_080E7914: .4byte SpriteCallbackDummy
thumb_func_end sub_80E78E0
thumb_func_start sub_80E7918
sub_80E7918: @ 80E7918
push {lr}
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _080E792A
bl WallyBufferExecCompleted
_080E792A:
pop {r0}
bx r0
thumb_func_end sub_80E7918
thumb_func_start sub_80E7930
sub_80E7930: @ 80E7930
push {lr}
ldr r0, _080E7960 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E795A
ldr r2, _080E7964 @ =gMain
ldr r0, _080E7968 @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r3]
ldr r0, _080E796C @ =gUnknown_3004F80
ldr r0, [r0]
str r0, [r2]
ldr r0, [r2, 0x8]
bl SetMainCallback2
_080E795A:
pop {r0}
bx r0
.align 2, 0
_080E7960: .4byte gPaletteFade
_080E7964: .4byte gMain
_080E7968: .4byte 0x00000439
_080E796C: .4byte gUnknown_3004F80
thumb_func_end sub_80E7930
thumb_func_start sub_80E7970
sub_80E7970: @ 80E7970
push {lr}
ldr r0, _080E7984 @ =gUnknown_2024005
ldrb r0, [r0]
cmp r0, 0
bne _080E797E
bl WallyBufferExecCompleted
_080E797E:
pop {r0}
bx r0
.align 2, 0
_080E7984: .4byte gUnknown_2024005
thumb_func_end sub_80E7970
thumb_func_start sub_80E7988
sub_80E7988: @ 80E7988
push {lr}
bl sub_802EA10
ldr r2, _080E79AC @ =gUnknown_2023BC8
ldr r1, _080E79B0 @ =gBitTable
ldr r0, _080E79B4 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
bne _080E79A8
bl WallyBufferExecCompleted
_080E79A8:
pop {r0}
bx r0
.align 2, 0
_080E79AC: .4byte gUnknown_2023BC8
_080E79B0: .4byte gBitTable
_080E79B4: .4byte gActiveBattler
thumb_func_end sub_80E7988
thumb_func_start sub_80E79B8
sub_80E79B8: @ 80E79B8
push {r4,lr}
ldr r0, _080E79FC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E79F6
ldr r1, _080E7A00 @ =gUnknown_3004FE0
ldr r2, _080E7A04 @ =gActiveBattler
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _080E7A08 @ =sub_80E7A14
str r1, [r0]
ldr r3, _080E7A0C @ =gTasks
ldr r1, _080E7A10 @ =gUnknown_3004FFC
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r3
ldrb r4, [r1, 0x8]
bl DestroyTask
bl FreeAllWindowBuffers
adds r0, r4, 0
bl sub_81278DC
_080E79F6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080E79FC: .4byte gPaletteFade
_080E7A00: .4byte gUnknown_3004FE0
_080E7A04: .4byte gActiveBattler
_080E7A08: .4byte sub_80E7A14
_080E7A0C: .4byte gTasks
_080E7A10: .4byte gUnknown_3004FFC
thumb_func_end sub_80E79B8
thumb_func_start sub_80E7A14
sub_80E7A14: @ 80E7A14
push {lr}
ldr r0, _080E7A44 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080E7A48 @ =sub_8011100
cmp r1, r0
bne _080E7A6A
ldr r0, _080E7A4C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E7A6A
ldr r0, _080E7A50 @ =gUnknown_203B0C0
ldrb r0, [r0]
cmp r0, 0x1
bne _080E7A5C
ldr r0, _080E7A54 @ =gUnknown_203B0C1
ldrb r1, [r0]
ldr r2, _080E7A58 @ =gUnknown_203B0DC
movs r0, 0x1
bl EmitChosenMonReturnValue
b _080E7A66
.align 2, 0
_080E7A44: .4byte gMain
_080E7A48: .4byte sub_8011100
_080E7A4C: .4byte gPaletteFade
_080E7A50: .4byte gUnknown_203B0C0
_080E7A54: .4byte gUnknown_203B0C1
_080E7A58: .4byte gUnknown_203B0DC
_080E7A5C:
movs r0, 0x1
movs r1, 0x6
movs r2, 0
bl EmitChosenMonReturnValue
_080E7A66:
bl WallyBufferExecCompleted
_080E7A6A:
pop {r0}
bx r0
thumb_func_end sub_80E7A14
thumb_func_start sub_80E7A70
sub_80E7A70: @ 80E7A70
push {lr}
ldr r0, _080E7AA8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E7AC0
ldr r1, _080E7AAC @ =gUnknown_3004FE0
ldr r0, _080E7AB0 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080E7AB4 @ =sub_80E7AC4
str r1, [r0]
bl nullsub_44
bl FreeAllWindowBuffers
ldr r0, _080E7AB8 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080E7ABC
bl sub_8107ECC
b _080E7AC0
.align 2, 0
_080E7AA8: .4byte gPaletteFade
_080E7AAC: .4byte gUnknown_3004FE0
_080E7AB0: .4byte gActiveBattler
_080E7AB4: .4byte sub_80E7AC4
_080E7AB8: .4byte gBattleTypeFlags
_080E7ABC:
bl sub_810AF74
_080E7AC0:
pop {r0}
bx r0
thumb_func_end sub_80E7A70
thumb_func_start sub_80E7AC4
sub_80E7AC4: @ 80E7AC4
push {lr}
ldr r0, _080E7B14 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _080E7B18 @ =sub_8011100
cmp r1, r0
bne _080E7B42
ldr r0, _080E7B1C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E7B42
movs r0, 0x4
bl sub_80EB2E0
lsls r0, 24
cmp r0, 0
bne _080E7B34
ldr r0, _080E7B20 @ =gSpecialVar_ItemId
ldrh r0, [r0]
cmp r0, 0xD
bne _080E7B34
ldr r0, _080E7B24 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080E7B34
movs r0, 0x4
bl sub_80EB2F4
ldr r1, _080E7B28 @ =gUnknown_3004FE0
ldr r0, _080E7B2C @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080E7B30 @ =sub_80E8704
str r1, [r0]
b _080E7B42
.align 2, 0
_080E7B14: .4byte gMain
_080E7B18: .4byte sub_8011100
_080E7B1C: .4byte gPaletteFade
_080E7B20: .4byte gSpecialVar_ItemId
_080E7B24: .4byte gBattleTypeFlags
_080E7B28: .4byte gUnknown_3004FE0
_080E7B2C: .4byte gActiveBattler
_080E7B30: .4byte sub_80E8704
_080E7B34:
ldr r0, _080E7B48 @ =gSpecialVar_ItemId
ldrh r1, [r0]
movs r0, 0x1
bl EmitOneReturnValue
bl WallyBufferExecCompleted
_080E7B42:
pop {r0}
bx r0
.align 2, 0
_080E7B48: .4byte gSpecialVar_ItemId
thumb_func_end sub_80E7AC4
thumb_func_start sub_80E7B4C
sub_80E7B4C: @ 80E7B4C
push {r4-r7,lr}
ldr r4, _080E7CB0 @ =gUnknown_2024018
ldr r0, [r4]
ldr r5, _080E7CB4 @ =gActiveBattler
ldrb r2, [r5]
ldr r1, [r0, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r7, 0x88
adds r0, r7, 0
ands r0, r1
cmp r0, 0
bne _080E7B80
ldr r0, _080E7CB8 @ =gBattlerPartyIndexes
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _080E7CBC @ =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_80F1720
_080E7B80:
ldr r1, [r4]
ldrb r0, [r5]
movs r6, 0x2
adds r2, r6, 0
eors r2, r0
ldr r1, [r1, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
adds r0, r7, 0
ands r0, r1
cmp r0, 0
bne _080E7BB2
ldr r0, _080E7CB8 @ =gBattlerPartyIndexes
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _080E7CBC @ =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_80F1720
_080E7BB2:
ldr r0, [r4]
ldrb r2, [r5]
ldr r3, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r3
ldrb r1, [r0]
movs r4, 0x8
adds r0, r4, 0
ands r0, r1
cmp r0, 0
bne _080E7CA8
adds r1, r6, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
bne _080E7CA8
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _080E7C46
ldr r0, _080E7CC0 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
bne _080E7C46
ldr r1, _080E7CC4 @ =gUnknown_3004FFC
ldrb r0, [r5]
eors r0, r6
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080E7CC8 @ =gSprites
adds r0, r1
bl DestroySprite
ldr r4, _080E7CCC @ =gUnknown_3004FF0
ldrb r0, [r5]
adds r1, r6, 0
eors r1, r0
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _080E7CB8 @ =gBattlerPartyIndexes
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _080E7CBC @ =gPlayerParty
adds r1, r2
movs r2, 0
bl UpdateHealthboxAttribute
ldrb r0, [r5]
eors r0, r6
bl sub_804BD94
ldrb r0, [r5]
eors r0, r6
adds r0, r4
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
_080E7C46:
ldr r1, _080E7CC4 @ =gUnknown_3004FFC
ldr r4, _080E7CB4 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080E7CC8 @ =gSprites
adds r0, r1
bl DestroySprite
ldr r5, _080E7CCC @ =gUnknown_3004FF0
ldrb r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, _080E7CB8 @ =gBattlerPartyIndexes
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _080E7CBC @ =gPlayerParty
adds r1, r2
movs r2, 0
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_804BD94
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
ldr r0, _080E7CB0 @ =gUnknown_2024018
ldr r0, [r0]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x9]
ldr r1, _080E7CD0 @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _080E7CD4 @ =sub_80E7CD8
str r1, [r0]
_080E7CA8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E7CB0: .4byte gUnknown_2024018
_080E7CB4: .4byte gActiveBattler
_080E7CB8: .4byte gBattlerPartyIndexes
_080E7CBC: .4byte gPlayerParty
_080E7CC0: .4byte gBattleTypeFlags
_080E7CC4: .4byte gUnknown_3004FFC
_080E7CC8: .4byte gSprites
_080E7CCC: .4byte gUnknown_3004FF0
_080E7CD0: .4byte gUnknown_3004FE0
_080E7CD4: .4byte sub_80E7CD8
thumb_func_end sub_80E7B4C
thumb_func_start sub_80E7CD8
sub_80E7CD8: @ 80E7CD8
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r4, 0
ldr r2, _080E7DD8 @ =gSprites
ldr r0, _080E7DDC @ =gUnknown_3004FF0
ldr r1, _080E7DE0 @ =gActiveBattler
mov r8, r1
ldrb r3, [r1]
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, _080E7DE4 @ =SpriteCallbackDummy
cmp r1, r0
bne _080E7D02
movs r4, 0x1
_080E7D02:
cmp r4, 0
beq _080E7DCE
ldr r7, _080E7DE8 @ =gUnknown_2024018
ldr r0, [r7]
ldr r4, [r0, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r2, r0, r4
ldrb r1, [r2, 0x1]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080E7DCE
movs r6, 0x2
adds r1, r6, 0
eors r1, r3
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0, 0x1]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080E7DCE
ldrb r1, [r2]
movs r3, 0x7F
adds r0, r3, 0
ands r0, r1
strb r0, [r2]
ldr r0, [r7]
mov r1, r8
ldrb r2, [r1]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r4, 0x2
negs r4, r4
adds r0, r4, 0
ands r0, r2
strb r0, [r1, 0x1]
ldr r2, [r7]
mov r1, r8
ldrb r0, [r1]
adds r1, r6, 0
eors r1, r0
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
ldr r2, [r7]
mov r1, r8
ldrb r0, [r1]
adds r1, r6, 0
eors r1, r0
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1]
ands r4, r1
strb r4, [r0, 0x1]
ldr r4, _080E7DEC @ =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldr r0, _080E7DF0 @ =c3_0802FDF4
movs r1, 0xA
bl CreateTask
ldr r2, _080E7DF4 @ =gBattlerPartyIndexes
mov r0, r8
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, _080E7DF8 @ =gPlayerParty
adds r0, r2
bl HandleLowHpMusicChange
ldr r1, _080E7DFC @ =gUnknown_3004FE0
mov r2, r8
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _080E7E00 @ =sub_80E835C
str r1, [r0]
_080E7DCE:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E7DD8: .4byte gSprites
_080E7DDC: .4byte gUnknown_3004FF0
_080E7DE0: .4byte gActiveBattler
_080E7DE4: .4byte SpriteCallbackDummy
_080E7DE8: .4byte gUnknown_2024018
_080E7DEC: .4byte 0x000027f9
_080E7DF0: .4byte c3_0802FDF4
_080E7DF4: .4byte gBattlerPartyIndexes
_080E7DF8: .4byte gPlayerParty
_080E7DFC: .4byte gUnknown_3004FE0
_080E7E00: .4byte sub_80E835C
thumb_func_end sub_80E7CD8
thumb_func_start sub_80E7E04
sub_80E7E04: @ 80E7E04
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r1, _080E7F04 @ =gTasks
lsls r0, 2
add r0, r9
lsls r0, 3
adds r0, r1
mov r8, r0
ldrb r0, [r0, 0x8]
mov r10, r0
mov r1, r8
ldrb r7, [r1, 0xC]
str r7, [sp, 0x8]
ldrh r2, [r1, 0xA]
str r2, [sp, 0xC]
bl sub_8075290
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080E7E4A
ldr r1, _080E7F08 @ =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r0, [r0]
cmp r10, r0
bne _080E7E4A
b _080E7F60
_080E7E4A:
movs r0, 0x64
mov r1, r10
muls r1, r0
ldr r0, _080E7F0C @ =gPlayerParty
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
ldr r3, _080E7F10 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _080E7F14 @ =gBaseStats
lsls r1, r5, 3
subs r1, r5
lsls r1, 2
adds r1, r2
ldrb r2, [r1, 0x13]
movs r1, 0xCA
lsls r1, 1
muls r1, r2
adds r4, r1
adds r4, r3
ldr r2, [r4]
str r2, [sp]
ldr r3, [sp, 0xC]
lsls r1, r3, 16
asrs r1, 16
adds r0, r1
cmp r0, r2
bcc _080E7F38
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
bl SetMonData
adds r0, r6, 0
bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
subs r2, r0
ldr r0, [sp, 0xC]
subs r2, r0, r2
ldr r4, _080E7F18 @ =gActiveBattler
ldrb r5, [r4]
strb r7, [r4]
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
bl EmitTwoReturnValues
strb r5, [r4]
bl sub_8075290
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080E7F20
ldr r2, _080E7F08 @ =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r2
mov r1, r10
ldrh r0, [r0]
cmp r1, r0
beq _080E7EFE
movs r0, 0x2
eors r7, r0
lsls r0, r7, 1
adds r0, r2
ldrh r0, [r0]
cmp r1, r0
bne _080E7F20
_080E7EFE:
ldr r0, _080E7F1C @ =sub_80E8190
b _080E7F62
.align 2, 0
_080E7F04: .4byte gTasks
_080E7F08: .4byte gBattlerPartyIndexes
_080E7F0C: .4byte gPlayerParty
_080E7F10: .4byte gExperienceTables
_080E7F14: .4byte gBaseStats
_080E7F18: .4byte gActiveBattler
_080E7F1C: .4byte sub_80E8190
_080E7F20:
ldr r0, _080E7F30 @ =gTasks
mov r2, r9
lsls r1, r2, 2
add r1, r9
lsls r1, 3
adds r1, r0
ldr r0, _080E7F34 @ =sub_80E82A8
b _080E7F64
.align 2, 0
_080E7F30: .4byte gTasks
_080E7F34: .4byte sub_80E82A8
_080E7F38:
str r0, [sp, 0x4]
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
bl SetMonData
ldr r1, _080E7F58 @ =gUnknown_3004FE0
ldr r3, [sp, 0x8]
lsls r0, r3, 2
adds r0, r1
ldr r1, _080E7F5C @ =sub_80E8930
str r1, [r0]
mov r0, r9
bl DestroyTask
b _080E7F66
.align 2, 0
_080E7F58: .4byte gUnknown_3004FE0
_080E7F5C: .4byte sub_80E8930
_080E7F60:
ldr r0, _080E7F78 @ =sub_80E7F7C
_080E7F62:
mov r1, r8
_080E7F64:
str r0, [r1]
_080E7F66:
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
_080E7F78: .4byte sub_80E7F7C
thumb_func_end sub_80E7E04
thumb_func_start sub_80E7F7C
sub_80E7F7C: @ 80E7F7C
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r1, _080E8034 @ =gTasks
lsls r2, r0, 2
mov r8, r2
add r8, r0
mov r0, r8
lsls r0, 3
mov r8, r0
add r8, r1
mov r2, r8
ldrb r1, [r2, 0x8]
movs r0, 0xA
ldrsh r2, [r2, r0]
mov r9, r2
mov r2, r8
ldrb r2, [r2, 0xC]
mov r10, r2
movs r0, 0x64
adds r6, r1, 0
muls r6, r0
ldr r0, _080E8038 @ =gPlayerParty
adds r6, r0
adds r0, r6, 0
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
ldr r6, _080E803C @ =gExperienceTables
lsls r1, r4, 2
ldr r2, _080E8040 @ =gBaseStats
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
adds r0, r2
ldrb r2, [r0, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r2
adds r1, r0
adds r1, r6
ldr r1, [r1]
subs r3, r1
adds r4, 0x1
lsls r4, 2
adds r4, r0
adds r4, r6
ldr r2, [r4]
subs r2, r1
ldr r0, _080E8044 @ =gUnknown_3004FF0
add r0, r10
ldrb r1, [r0]
mov r0, r9
negs r0, r0
str r0, [sp]
mov r0, r10
bl SetBattleBarStruct
movs r0, 0x1B
bl PlaySE
ldr r0, _080E8048 @ =sub_80E804C
mov r1, r8
str r0, [r1]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E8034: .4byte gTasks
_080E8038: .4byte gPlayerParty
_080E803C: .4byte gExperienceTables
_080E8040: .4byte gBaseStats
_080E8044: .4byte gUnknown_3004FF0
_080E8048: .4byte sub_80E804C
thumb_func_end sub_80E7F7C
thumb_func_start sub_80E804C
sub_80E804C: @ 80E804C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, _080E8078 @ =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r6, r0, r1
ldrh r1, [r6, 0x1C]
movs r2, 0x1C
ldrsh r0, [r6, r2]
cmp r0, 0xC
bgt _080E807C
adds r0, r1, 0x1
strh r0, [r6, 0x1C]
b _080E8178
.align 2, 0
_080E8078: .4byte gTasks
_080E807C:
ldrb r0, [r6, 0x8]
mov r9, r0
ldrh r2, [r6, 0xA]
mov r10, r2
ldrb r7, [r6, 0xC]
ldr r5, _080E8144 @ =gUnknown_3004FF0
adds r5, r7, r5
ldrb r1, [r5]
adds r0, r7, 0
movs r2, 0x1
movs r3, 0
bl sub_8049FD8
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r4, 16
movs r0, 0x1
negs r0, r0
cmp r4, r0
bne _080E8178
movs r0, 0x1B
bl m4aSongNumStop
movs r0, 0x64
mov r1, r9
muls r1, r0
ldr r0, _080E8148 @ =gPlayerParty
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r3, _080E814C @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _080E8150 @ =gBaseStats
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r1
adds r4, r0
adds r4, r3
ldr r1, [r4]
str r1, [sp]
mov r2, r10
lsls r0, r2, 16
asrs r4, r0, 16
ldr r0, [sp, 0x4]
adds r0, r4
cmp r0, r1
blt _080E815C
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
bl SetMonData
adds r0, r5, 0
bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
subs r2, r0
subs r2, r4, r2
ldr r4, _080E8154 @ =gActiveBattler
ldrb r5, [r4]
strb r7, [r4]
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
bl EmitTwoReturnValues
strb r5, [r4]
ldr r0, _080E8158 @ =sub_80E8190
str r0, [r6]
b _080E8178
.align 2, 0
_080E8144: .4byte gUnknown_3004FF0
_080E8148: .4byte gPlayerParty
_080E814C: .4byte gExperienceTables
_080E8150: .4byte gBaseStats
_080E8154: .4byte gActiveBattler
_080E8158: .4byte sub_80E8190
_080E815C:
str r0, [sp, 0x4]
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
bl SetMonData
ldr r1, _080E8188 @ =gUnknown_3004FE0
lsls r0, r7, 2
adds r0, r1
ldr r1, _080E818C @ =sub_80E8930
str r1, [r0]
mov r0, r8
bl DestroyTask
_080E8178:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E8188: .4byte gUnknown_3004FE0
_080E818C: .4byte sub_80E8930
thumb_func_end sub_80E804C
thumb_func_start sub_80E8190
sub_80E8190: @ 80E8190
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080E81E4 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8]
bl sub_8075290
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080E81C4
ldr r1, _080E81E8 @ =gBattlerPartyIndexes
movs r0, 0x2
adds r2, r4, 0
eors r2, r0
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
cmp r6, r0
bne _080E81C4
adds r4, r2, 0
_080E81C4:
adds r0, r4, 0
adds r1, r4, 0
adds r2, r4, 0
movs r3, 0
bl InitAndLaunchSpecialAnimation
ldr r0, _080E81E4 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _080E81EC @ =sub_80E81F0
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E81E4: .4byte gTasks
_080E81E8: .4byte gBattlerPartyIndexes
_080E81EC: .4byte sub_80E81F0
thumb_func_end sub_80E8190
thumb_func_start sub_80E81F0
sub_80E81F0: @ 80E81F0
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _080E825C @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r2, r0, r1
ldrb r5, [r2, 0xC]
ldr r0, _080E8260 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080E8292
ldrb r4, [r2, 0x8]
movs r0, 0x64
adds r1, r4, 0
muls r1, r0
ldr r0, _080E8264 @ =gPlayerParty
adds r7, r1, r0
adds r0, r7, 0
movs r1, 0x38
bl GetMonData
bl sub_8075290
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080E8270
ldr r1, _080E8268 @ =gBattlerPartyIndexes
movs r0, 0x2
adds r2, r5, 0
eors r2, r0
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
cmp r4, r0
bne _080E8270
ldr r0, _080E826C @ =gUnknown_3004FF0
adds r0, r2, r0
ldrb r0, [r0]
adds r1, r7, 0
movs r2, 0
bl UpdateHealthboxAttribute
b _080E8284
.align 2, 0
_080E825C: .4byte gTasks
_080E8260: .4byte gUnknown_2024018
_080E8264: .4byte gPlayerParty
_080E8268: .4byte gBattlerPartyIndexes
_080E826C: .4byte gUnknown_3004FF0
_080E8270:
ldr r0, _080E8298 @ =gUnknown_3004FF0
adds r0, r5, r0
ldrb r0, [r0]
movs r1, 0x64
muls r1, r4
ldr r2, _080E829C @ =gPlayerParty
adds r1, r2
movs r2, 0
bl UpdateHealthboxAttribute
_080E8284:
ldr r0, _080E82A0 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _080E82A4 @ =sub_80E82A8
str r0, [r1]
_080E8292:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E8298: .4byte gUnknown_3004FF0
_080E829C: .4byte gPlayerParty
_080E82A0: .4byte gTasks
_080E82A4: .4byte sub_80E82A8
thumb_func_end sub_80E81F0
thumb_func_start sub_80E82A8
sub_80E82A8: @ 80E82A8
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _080E82E4 @ =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
ldrb r1, [r4, 0x8]
movs r0, 0x64
muls r0, r1
ldr r1, _080E82E8 @ =gPlayerParty
adds r0, r1
movs r1, 0x38
bl GetMonData
ldrb r0, [r4, 0xC]
ldr r1, _080E82EC @ =gUnknown_3004FE0
lsls r0, 2
adds r0, r1
ldr r1, _080E82F0 @ =sub_80E8930
str r1, [r0]
adds r0, r5, 0
bl DestroyTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080E82E4: .4byte gTasks
_080E82E8: .4byte gPlayerParty
_080E82EC: .4byte gUnknown_3004FE0
_080E82F0: .4byte sub_80E8930
thumb_func_end sub_80E82A8
thumb_func_start sub_80E82F4
sub_80E82F4: @ 80E82F4
push {r4-r6,lr}
ldr r6, _080E834C @ =gSprites
ldr r5, _080E8350 @ =gUnknown_2023D44
ldr r4, _080E8354 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, r0, r6
movs r1, 0x22
ldrsh r0, [r2, r1]
movs r3, 0x26
ldrsh r1, [r2, r3]
adds r0, r1
cmp r0, 0xA0
ble _080E8344
ldrb r0, [r2, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl DestroySprite
ldr r1, _080E8358 @ =gUnknown_3004FF0
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted
_080E8344:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E834C: .4byte gSprites
_080E8350: .4byte gUnknown_2023D44
_080E8354: .4byte gActiveBattler
_080E8358: .4byte gUnknown_3004FF0
thumb_func_end sub_80E82F4
thumb_func_start sub_80E835C
sub_80E835C: @ 80E835C
push {r4-r7,lr}
sub sp, 0x4
ldr r1, _080E837C @ =gBattleStruct
ldr r0, [r1]
adds r0, 0x94
ldrb r0, [r0]
adds r7, r1, 0
cmp r0, 0x8
bls _080E8370
b _080E855E
_080E8370:
lsls r0, 2
ldr r1, _080E8380 @ =_080E8384
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080E837C: .4byte gBattleStruct
_080E8380: .4byte _080E8384
.align 2, 0
_080E8384:
.4byte _080E83A8
.4byte _080E83F0
.4byte _080E8408
.4byte _080E8420
.4byte _080E8468
.4byte _080E8490
.4byte _080E84D8
.4byte _080E8500
.4byte _080E8530
_080E83A8:
ldr r0, _080E83EC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _080E83BA
b _080E855E
_080E83BA:
ldr r4, [r7]
adds r5, r4, 0
adds r5, 0x95
adds r4, 0x97
movs r0, 0x1
bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_80EEFC8
movs r0, 0x82
negs r0, r0
str r6, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x8
bl BeginNormalPaletteFade
ldr r1, [r7]
b _080E8522
.align 2, 0
_080E83EC: .4byte gPaletteFade
_080E83F0:
ldr r0, _080E8404 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080E83FE
b _080E855E
_080E83FE:
bl sub_80EB30C
b _080E851E
.align 2, 0
_080E8404: .4byte gPaletteFade
_080E8408:
ldr r0, _080E8418 @ =gUnknown_83FDAE2
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, _080E841C @ =gDisplayedStringBattle
movs r1, 0x18
bl sub_80D87BC
b _080E851E
.align 2, 0
_080E8418: .4byte gUnknown_83FDAE2
_080E841C: .4byte gDisplayedStringBattle
_080E8420:
movs r0, 0x18
bl IsTextPrinterActive
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
beq _080E8430
b _080E855E
_080E8430:
ldr r2, _080E8460 @ =gBitTable
ldr r4, _080E8464 @ =gBattleStruct
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x95
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
adds r0, 0x97
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r1]
ldr r0, [r0]
orrs r1, r0
lsls r0, r1, 16
str r3, [sp]
movs r1, 0x4
movs r2, 0x8
movs r3, 0
bl BeginNormalPaletteFade
ldr r1, [r4]
b _080E8522
.align 2, 0
_080E8460: .4byte gBitTable
_080E8464: .4byte gBattleStruct
_080E8468:
ldr r0, _080E8484 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E855E
ldr r0, _080E8488 @ =gUnknown_83FDB92
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, _080E848C @ =gDisplayedStringBattle
movs r1, 0x18
bl sub_80D87BC
b _080E851E
.align 2, 0
_080E8484: .4byte gPaletteFade
_080E8488: .4byte gUnknown_83FDB92
_080E848C: .4byte gDisplayedStringBattle
_080E8490:
movs r0, 0x18
bl IsTextPrinterActive
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
bne _080E855E
ldr r2, _080E84D0 @ =gBitTable
ldr r4, _080E84D4 @ =gBattleStruct
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x95
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
adds r0, 0x97
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r1]
ldr r0, [r0]
orrs r1, r0
lsls r0, r1, 16
str r3, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x8
bl BeginNormalPaletteFade
ldr r1, [r4]
b _080E8522
.align 2, 0
_080E84D0: .4byte gBitTable
_080E84D4: .4byte gBattleStruct
_080E84D8:
ldr r0, _080E84F4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E855E
ldr r0, _080E84F8 @ =gUnknown_83FDBEF
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, _080E84FC @ =gDisplayedStringBattle
movs r1, 0x18
bl sub_80D87BC
b _080E851E
.align 2, 0
_080E84F4: .4byte gPaletteFade
_080E84F8: .4byte gUnknown_83FDBEF
_080E84FC: .4byte gDisplayedStringBattle
_080E8500:
movs r0, 0x18
bl IsTextPrinterActive
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
bne _080E855E
movs r0, 0x82
negs r0, r0
str r1, [sp]
movs r1, 0x4
movs r2, 0x8
movs r3, 0
bl BeginNormalPaletteFade
_080E851E:
ldr r0, _080E852C @ =gBattleStruct
ldr r1, [r0]
_080E8522:
adds r1, 0x94
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080E855E
.align 2, 0
_080E852C: .4byte gBattleStruct
_080E8530:
ldr r0, _080E8568 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080E855E
movs r0, 0x1
bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_80EF0E0
bl sub_80EB524
ldr r0, _080E856C @ =gBattleStruct
ldr r0, [r0]
adds r0, 0x94
strb r4, [r0]
bl WallyBufferExecCompleted
_080E855E:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E8568: .4byte gPaletteFade
_080E856C: .4byte gBattleStruct
thumb_func_end sub_80E835C
thumb_func_start sub_80E8570
sub_80E8570: @ 80E8570
push {lr}
ldr r0, _080E8580 @ =gUnknown_83FDC58
movs r1, 0x1
bl sub_80E85D4
pop {r0}
bx r0
.align 2, 0
_080E8580: .4byte gUnknown_83FDC58
thumb_func_end sub_80E8570
thumb_func_start sub_80E8584
sub_80E8584: @ 80E8584
push {lr}
ldr r0, _080E8594 @ =gUnknown_83FDC95
movs r1, 0x40
bl sub_80E85D4
pop {r0}
bx r0
.align 2, 0
_080E8594: .4byte gUnknown_83FDC95
thumb_func_end sub_80E8584
thumb_func_start sub_80E8598
sub_80E8598: @ 80E8598
push {lr}
ldr r0, _080E85A8 @ =gUnknown_83FDD23
movs r1, 0x1
bl sub_80E85D4
pop {r0}
bx r0
.align 2, 0
_080E85A8: .4byte gUnknown_83FDD23
thumb_func_end sub_80E8598
thumb_func_start sub_80E85AC
sub_80E85AC: @ 80E85AC
push {lr}
ldr r0, _080E85BC @ =gUnknown_83FDD64
movs r1, 0x40
bl sub_80E85D4
pop {r0}
bx r0
.align 2, 0
_080E85BC: .4byte gUnknown_83FDD64
thumb_func_end sub_80E85AC
thumb_func_start sub_80E85C0
sub_80E85C0: @ 80E85C0
push {lr}
ldr r0, _080E85D0 @ =gUnknown_83FDDEB
movs r1, 0x40
bl sub_80E85D4
pop {r0}
bx r0
.align 2, 0
_080E85D0: .4byte gUnknown_83FDDEB
thumb_func_end sub_80E85C0
thumb_func_start sub_80E85D4
sub_80E85D4: @ 80E85D4
push {r4,r5,lr}
sub sp, 0x4
adds r2, r0, 0
lsls r1, 24
lsrs r4, r1, 24
ldr r1, _080E85F8 @ =gBattleStruct
ldr r0, [r1]
adds r0, 0x94
ldrb r0, [r0]
adds r5, r1, 0
cmp r0, 0x5
bls _080E85EE
b _080E86F2
_080E85EE:
lsls r0, 2
ldr r1, _080E85FC @ =_080E8600
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080E85F8: .4byte gBattleStruct
_080E85FC: .4byte _080E8600
.align 2, 0
_080E8600:
.4byte _080E8618
.4byte _080E8634
.4byte _080E865A
.4byte _080E8670
.4byte _080E8684
.4byte _080E86B4
_080E8618:
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _080E86F2
ldr r1, _080E8630 @ =gBattleStruct
ldr r0, [r1]
adds r0, 0x97
strb r4, [r0]
ldr r1, [r1]
b _080E86A6
.align 2, 0
_080E8630: .4byte gBattleStruct
_080E8634:
ldr r1, [r5]
adds r1, 0x97
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080E86F2
movs r0, 0x82
negs r0, r0
str r1, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x8
bl BeginNormalPaletteFade
ldr r1, [r5]
b _080E86A6
_080E865A:
ldr r0, _080E866C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E86F2
bl sub_80EB30C
b _080E86A2
.align 2, 0
_080E866C: .4byte gPaletteFade
_080E8670:
adds r0, r2, 0
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, _080E8680 @ =gDisplayedStringBattle
movs r1, 0x18
bl sub_80D87BC
b _080E86A2
.align 2, 0
_080E8680: .4byte gDisplayedStringBattle
_080E8684:
movs r0, 0x18
bl IsTextPrinterActive
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
bne _080E86F2
movs r0, 0x82
negs r0, r0
str r1, [sp]
movs r1, 0x4
movs r2, 0x8
movs r3, 0
bl BeginNormalPaletteFade
_080E86A2:
ldr r0, _080E86B0 @ =gBattleStruct
ldr r1, [r0]
_080E86A6:
adds r1, 0x94
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080E86F2
.align 2, 0
_080E86B0: .4byte gBattleStruct
_080E86B4:
ldr r0, _080E86D8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E86F2
bl sub_80EB524
ldr r0, _080E86DC @ =gActiveBattler
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080E86E0
bl WallyBufferExecCompleted
b _080E86E4
.align 2, 0
_080E86D8: .4byte gPaletteFade
_080E86DC: .4byte gActiveBattler
_080E86E0:
bl OpponentBufferExecCompleted
_080E86E4:
ldr r0, _080E86FC @ =gUnknown_2023E82
movs r1, 0
strb r1, [r0, 0x7]
ldr r0, _080E8700 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0x94
strb r1, [r0]
_080E86F2:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080E86FC: .4byte gUnknown_2023E82
_080E8700: .4byte gBattleStruct
thumb_func_end sub_80E85D4
thumb_func_start sub_80E8704
sub_80E8704: @ 80E8704
push {r4,r5,lr}
sub sp, 0x4
ldr r1, _080E8724 @ =gBattleStruct
ldr r0, [r1]
adds r0, 0x94
ldrb r0, [r0]
adds r5, r1, 0
cmp r0, 0x6
bls _080E8718
b _080E88AA
_080E8718:
lsls r0, 2
ldr r1, _080E8728 @ =_080E872C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080E8724: .4byte gBattleStruct
_080E8728: .4byte _080E872C
.align 2, 0
_080E872C:
.4byte _080E8748
.4byte _080E8788
.4byte _080E87D0
.4byte _080E87E8
.4byte _080E8800
.4byte _080E8848
.4byte _080E8880
_080E8748:
ldr r0, _080E8780 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _080E875A
b _080E88AA
_080E875A:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x95
adds r1, 0x97
ldr r2, _080E8784 @ =gActiveBattler
ldrb r2, [r2]
bl sub_80EEFC8
movs r0, 0x82
negs r0, r0
str r4, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x8
bl BeginNormalPaletteFade
ldr r1, [r5]
b _080E886C
.align 2, 0
_080E8780: .4byte gPaletteFade
_080E8784: .4byte gActiveBattler
_080E8788:
ldr r0, _080E87C8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _080E879A
b _080E88AA
_080E879A:
ldr r2, _080E87CC @ =gBitTable
ldr r0, [r5]
adds r1, r0, 0
adds r1, 0x95
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
adds r0, 0x97
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r1]
ldr r0, [r0]
orrs r1, r0
lsls r0, r1, 16
str r3, [sp]
movs r1, 0x4
movs r2, 0x8
movs r3, 0
bl BeginNormalPaletteFade
ldr r1, [r5]
b _080E886C
.align 2, 0
_080E87C8: .4byte gPaletteFade
_080E87CC: .4byte gBitTable
_080E87D0:
ldr r0, _080E87E4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080E88AA
bl sub_80EB30C
b _080E8868
.align 2, 0
_080E87E4: .4byte gPaletteFade
_080E87E8:
ldr r0, _080E87F8 @ =gUnknown_83FDCD2
bl BattleStringExpandPlaceholdersToDisplayedString
ldr r0, _080E87FC @ =gDisplayedStringBattle
movs r1, 0x18
bl sub_80D87BC
b _080E8868
.align 2, 0
_080E87F8: .4byte gUnknown_83FDCD2
_080E87FC: .4byte gDisplayedStringBattle
_080E8800:
movs r0, 0x18
bl IsTextPrinterActive
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
bne _080E88AA
ldr r2, _080E8840 @ =gBitTable
ldr r4, _080E8844 @ =gBattleStruct
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x95
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
adds r0, 0x97
ldrb r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r1]
ldr r0, [r0]
orrs r1, r0
lsls r0, r1, 16
str r3, [sp]
movs r1, 0x4
movs r2, 0
movs r3, 0x8
bl BeginNormalPaletteFade
ldr r1, [r4]
b _080E886C
.align 2, 0
_080E8840: .4byte gBitTable
_080E8844: .4byte gBattleStruct
_080E8848:
ldr r0, _080E8878 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080E88AA
movs r0, 0x82
negs r0, r0
str r1, [sp]
movs r1, 0x4
movs r2, 0x8
movs r3, 0
bl BeginNormalPaletteFade
_080E8868:
ldr r0, _080E887C @ =gBattleStruct
ldr r1, [r0]
_080E886C:
adds r1, 0x94
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080E88AA
.align 2, 0
_080E8878: .4byte gPaletteFade
_080E887C: .4byte gBattleStruct
_080E8880:
ldr r0, _080E88B4 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080E88AA
bl sub_80EB524
ldr r0, _080E88B8 @ =gSpecialVar_ItemId
ldrh r1, [r0]
movs r0, 0x1
bl EmitOneReturnValue
bl WallyBufferExecCompleted
ldr r0, _080E88BC @ =gBattleStruct
ldr r0, [r0]
adds r0, 0x94
strb r4, [r0]
_080E88AA:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080E88B4: .4byte gPaletteFade
_080E88B8: .4byte gSpecialVar_ItemId
_080E88BC: .4byte gBattleStruct
thumb_func_end sub_80E8704
thumb_func_start sub_80E88C0
sub_80E88C0: @ 80E88C0
push {r4-r6,lr}
ldr r5, _080E8900 @ =gActiveBattler
ldrb r0, [r5]
ldr r6, _080E8904 @ =gUnknown_3004FF0
adds r1, r0, r6
ldrb r1, [r1]
movs r2, 0
movs r3, 0
bl sub_8049FD8
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080E8908
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
movs r2, 0
bl sub_8048440
b _080E8922
.align 2, 0
_080E8900: .4byte gActiveBattler
_080E8904: .4byte gUnknown_3004FF0
_080E8908:
ldr r2, _080E8928 @ =gBattlerPartyIndexes
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, _080E892C @ =gPlayerParty
adds r0, r2
bl HandleLowHpMusicChange
bl WallyBufferExecCompleted
_080E8922:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E8928: .4byte gBattlerPartyIndexes
_080E892C: .4byte gPlayerParty
thumb_func_end sub_80E88C0
thumb_func_start sub_80E8930
sub_80E8930: @ 80E8930
push {lr}
movs r0, 0
bl IsTextPrinterActive
lsls r0, 16
cmp r0, 0
bne _080E8942
bl WallyBufferExecCompleted
_080E8942:
pop {r0}
bx r0
thumb_func_end sub_80E8930
thumb_func_start DoHitAnimBlinkSpriteEffect_3
DoHitAnimBlinkSpriteEffect_3: @ 80E8948
push {r4,lr}
ldr r1, _080E8984 @ =gUnknown_2023D44
ldr r0, _080E8988 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
ldr r2, _080E898C @ =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 _080E8994
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, _080E8990 @ =gUnknown_2024005
strb r3, [r0]
bl WallyBufferExecCompleted
b _080E89BE
.align 2, 0
_080E8984: .4byte gUnknown_2023D44
_080E8988: .4byte gActiveBattler
_080E898C: .4byte gSprites
_080E8990: .4byte gUnknown_2024005
_080E8994:
ldrh r0, [r4, 0x30]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _080E89B8
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]
_080E89B8:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_080E89BE:
pop {r4}
pop {r0}
bx r0
thumb_func_end DoHitAnimBlinkSpriteEffect_3
thumb_func_start sub_80E89C4
sub_80E89C4: @ 80E89C4
push {r4-r6,lr}
ldr r0, _080E8A20 @ =gUnknown_2024018
ldr r0, [r0]
ldr r6, _080E8A24 @ =gActiveBattler
ldrb r2, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080E8A18
ldr r5, _080E8A28 @ =gUnknown_2023D44
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _080E8A2C @ =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r1, _080E8A30 @ =gUnknown_3004FF0
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted
_080E8A18:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E8A20: .4byte gUnknown_2024018
_080E8A24: .4byte gActiveBattler
_080E8A28: .4byte gUnknown_2023D44
_080E8A2C: .4byte gSprites
_080E8A30: .4byte gUnknown_3004FF0
thumb_func_end sub_80E89C4
thumb_func_start sub_80E8A34
sub_80E8A34: @ 80E8A34
push {lr}
ldr r2, _080E8A5C @ =gSprites
ldr r1, _080E8A60 @ =gUnknown_2023D44
ldr r0, _080E8A64 @ =gActiveBattler
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, _080E8A68 @ =SpriteCallbackDummy
cmp r1, r0
bne _080E8A58
bl WallyBufferExecCompleted
_080E8A58:
pop {r0}
bx r0
.align 2, 0
_080E8A5C: .4byte gSprites
_080E8A60: .4byte gUnknown_2023D44
_080E8A64: .4byte gActiveBattler
_080E8A68: .4byte SpriteCallbackDummy
thumb_func_end sub_80E8A34
thumb_func_start CompleteOnFinishedBattleAnimation_4
CompleteOnFinishedBattleAnimation_4: @ 80E8A6C
push {lr}
ldr r0, _080E8A94 @ =gUnknown_2024018
ldr r2, [r0]
ldr r0, _080E8A98 @ =gActiveBattler
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _080E8A8E
bl WallyBufferExecCompleted
_080E8A8E:
pop {r0}
bx r0
.align 2, 0
_080E8A94: .4byte gUnknown_2024018
_080E8A98: .4byte gActiveBattler
thumb_func_end CompleteOnFinishedBattleAnimation_4
thumb_func_start WallyBufferExecCompleted
WallyBufferExecCompleted: @ 80E8A9C
push {r4,lr}
sub sp, 0x4
ldr r1, _080E8ADC @ =gUnknown_3004FE0
ldr r4, _080E8AE0 @ =gActiveBattler
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _080E8AE4 @ =sub_80E75EC
str r1, [r0]
ldr r0, _080E8AE8 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x2
ands r0, r1
cmp r0, 0
beq _080E8AF0
bl GetMultiplayerId
mov r1, sp
strb r0, [r1]
movs r0, 0x2
movs r1, 0x4
mov r2, sp
bl PrepareBufferDataTransferLink
ldr r1, _080E8AEC @ =gUnknown_2022BC4
ldrb r0, [r4]
lsls r0, 9
adds r0, r1
movs r1, 0x38
strb r1, [r0]
b _080E8B02
.align 2, 0
_080E8ADC: .4byte gUnknown_3004FE0
_080E8AE0: .4byte gActiveBattler
_080E8AE4: .4byte sub_80E75EC
_080E8AE8: .4byte gBattleTypeFlags
_080E8AEC: .4byte gUnknown_2022BC4
_080E8AF0:
ldr r2, _080E8B0C @ =gUnknown_2023BC8
ldr r1, _080E8B10 @ =gBitTable
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r0, [r2]
bics r0, r1
str r0, [r2]
_080E8B02:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080E8B0C: .4byte gUnknown_2023BC8
_080E8B10: .4byte gBitTable
thumb_func_end WallyBufferExecCompleted
thumb_func_start CompleteOnFinishedStatusAnimation_4
CompleteOnFinishedStatusAnimation_4: @ 80E8B14
push {lr}
ldr r0, _080E8B3C @ =gUnknown_2024018
ldr r2, [r0]
ldr r0, _080E8B40 @ =gActiveBattler
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080E8B36
bl WallyBufferExecCompleted
_080E8B36:
pop {r0}
bx r0
.align 2, 0
_080E8B3C: .4byte gUnknown_2024018
_080E8B40: .4byte gActiveBattler
thumb_func_end CompleteOnFinishedStatusAnimation_4
thumb_func_start WallyHandleGetMonData
WallyHandleGetMonData: @ 80E8B44
push {r4-r6,lr}
sub sp, 0x100
movs r6, 0
ldr r1, _080E8B70 @ =gUnknown_2022BC4
ldr r0, _080E8B74 @ =gActiveBattler
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _080E8B7C
ldr r0, _080E8B78 @ =gBattlerPartyIndexes
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
mov r1, sp
bl CopyWallyMonData
adds r6, r0, 0
b _080E8B9E
.align 2, 0
_080E8B70: .4byte gUnknown_2022BC4
_080E8B74: .4byte gActiveBattler
_080E8B78: .4byte gBattlerPartyIndexes
_080E8B7C:
ldrb r4, [r1]
movs r5, 0
_080E8B80:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _080E8B96
lsls r0, r5, 24
lsrs r0, 24
mov r2, sp
adds r1, r2, r6
bl CopyWallyMonData
adds r6, r0
_080E8B96:
lsrs r4, 1
adds r5, 0x1
cmp r5, 0x5
ble _080E8B80
_080E8B9E:
lsls r1, r6, 16
lsrs r1, 16
movs r0, 0x1
mov r2, sp
bl EmitDataTransfer
bl WallyBufferExecCompleted
add sp, 0x100
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end WallyHandleGetMonData
thumb_func_start CopyWallyMonData
CopyWallyMonData: @ 80E8BB8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x90
adds r7, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r2, _080E8BEC @ =gUnknown_2022BC4
ldr r3, _080E8BF0 @ =gActiveBattler
ldrb r0, [r3]
lsls r0, 9
adds r1, r2, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3B
bls _080E8BE2
bl _080E934E
_080E8BE2:
lsls r0, 2
ldr r1, _080E8BF4 @ =_080E8BF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080E8BEC: .4byte gUnknown_2022BC4
_080E8BF0: .4byte gActiveBattler
_080E8BF4: .4byte _080E8BF8
.align 2, 0
_080E8BF8:
.4byte _080E8CE8
.4byte _080E8F0C
.4byte _080E8F1C
.4byte _080E8F2C
.4byte _080E8F94
.4byte _080E8F94
.4byte _080E8F94
.4byte _080E8F94
.4byte _080E8FB0
.4byte _080E8FEC
.4byte _080E8FEC
.4byte _080E8FEC
.4byte _080E8FEC
.4byte _080E934E
.4byte _080E934E
.4byte _080E934E
.4byte _080E934E
.4byte _080E9008
.4byte _080E9018
.4byte _080E9048
.4byte _080E9058
.4byte _080E9068
.4byte _080E9078
.4byte _080E9088
.4byte _080E9098
.4byte _080E90A8
.4byte _080E90B8
.4byte _080E90C8
.4byte _080E90D8
.4byte _080E90E8
.4byte _080E90F8
.4byte _080E9108
.4byte _080E9158
.4byte _080E9168
.4byte _080E9178
.4byte _080E9188
.4byte _080E9198
.4byte _080E91A8
.4byte _080E91B8
.4byte _080E91C8
.4byte _080E91D8
.4byte _080E920C
.4byte _080E921C
.4byte _080E922C
.4byte _080E923C
.4byte _080E924C
.4byte _080E925C
.4byte _080E926C
.4byte _080E927C
.4byte _080E929C
.4byte _080E92AC
.4byte _080E92BC
.4byte _080E92CC
.4byte _080E92DC
.4byte _080E92EC
.4byte _080E92FC
.4byte _080E930C
.4byte _080E931C
.4byte _080E932C
.4byte _080E933C
_080E8CE8:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E8EFC @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
add r0, sp, 0x24
mov r9, r0
movs r1, 0x3B
add r1, sp
mov r10, r1
mov r2, sp
adds r2, 0x2B
str r2, [sp, 0x80]
mov r0, sp
adds r0, 0x2A
str r0, [sp, 0x7C]
mov r1, sp
adds r1, 0x68
str r1, [sp, 0x8C]
adds r2, 0x5
str r2, [sp, 0x84]
adds r0, 0x12
str r0, [sp, 0x88]
mov r8, r4
add r4, sp, 0xC
_080E8D34:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _080E8D34
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E8EFC @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
ldrb r2, [r3, 0x14]
movs r1, 0x20
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
lsls r0, 5
ldrh r2, [r3, 0x14]
ldr r1, _080E8F00 @ =0xfffffc1f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
ldrb r2, [r3, 0x15]
movs r1, 0x7D
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
ldr r0, [sp, 0x14]
ldr r2, _080E8F04 @ =0xfff07fff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
ldrh r2, [r3, 0x16]
ldr r1, _080E8F08 @ =0xfffffe0f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
ldrb r2, [r3, 0x17]
movs r1, 0x3F
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
lsls r0, 6
ldrb r2, [r3, 0x17]
movs r1, 0x41
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
movs r1, 0x7F
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
bl GetMonData
mov r2, sp
movs r6, 0
_080E8EEC:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0x57
bls _080E8EEC
b _080E934E
.align 2, 0
_080E8EFC: .4byte gPlayerParty
_080E8F00: .4byte 0xfffffc1f
_080E8F04: .4byte 0xfff07fff
_080E8F08: .4byte 0xfffffe0f
_080E8F0C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E8F18 @ =gPlayerParty
adds r0, r1
movs r1, 0xB
b _080E9286
.align 2, 0
_080E8F18: .4byte gPlayerParty
_080E8F1C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E8F28 @ =gPlayerParty
adds r0, r1
movs r1, 0xC
b _080E9286
.align 2, 0
_080E8F28: .4byte gPlayerParty
_080E8F2C:
movs r6, 0
add r2, sp, 0x58
mov r9, r2
add r0, sp, 0x60
mov r10, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _080E8F90 @ =gPlayerParty
adds r4, r1, r0
mov r8, r9
_080E8F42:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
movs r0, 0x2
add r8, r0
adds r6, 0x1
cmp r6, 0x3
ble _080E8F42
movs r0, 0x64
muls r0, r5
ldr r1, _080E8F90 @ =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
movs r6, 0
_080E8F80:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0xF
bls _080E8F80
b _080E934E
.align 2, 0
_080E8F90: .4byte gPlayerParty
_080E8F94:
movs r0, 0x64
muls r0, r5
ldr r1, _080E8FAC @ =gPlayerParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x9
b _080E9286
.align 2, 0
_080E8FAC: .4byte gPlayerParty
_080E8FB0:
movs r6, 0
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r2, _080E8FE8 @ =gPlayerParty
mov r8, r2
_080E8FBC:
adds r1, r6, 0
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
cmp r6, 0x3
ble _080E8FBC
movs r0, 0x64
muls r0, r5
ldr r1, _080E8FE8 @ =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
b _080E934E
.align 2, 0
_080E8FE8: .4byte gPlayerParty
_080E8FEC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9004 @ =gPlayerParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x8
b _080E9346
.align 2, 0
_080E9004: .4byte gPlayerParty
_080E9008:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9014 @ =gPlayerParty
adds r0, r1
movs r1, 0x1
b _080E9022
.align 2, 0
_080E9014: .4byte gPlayerParty
_080E9018:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9044 @ =gPlayerParty
adds r0, r1
movs r1, 0x19
_080E9022:
bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
movs r6, 0x3
b _080E934E
.align 2, 0
_080E9044: .4byte gPlayerParty
_080E9048:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9054 @ =gPlayerParty
adds r0, r1
movs r1, 0x1A
b _080E9346
.align 2, 0
_080E9054: .4byte gPlayerParty
_080E9058:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9064 @ =gPlayerParty
adds r0, r1
movs r1, 0x1B
b _080E9346
.align 2, 0
_080E9064: .4byte gPlayerParty
_080E9068:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9074 @ =gPlayerParty
adds r0, r1
movs r1, 0x1C
b _080E9346
.align 2, 0
_080E9074: .4byte gPlayerParty
_080E9078:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9084 @ =gPlayerParty
adds r0, r1
movs r1, 0x1D
b _080E9346
.align 2, 0
_080E9084: .4byte gPlayerParty
_080E9088:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9094 @ =gPlayerParty
adds r0, r1
movs r1, 0x1E
b _080E9346
.align 2, 0
_080E9094: .4byte gPlayerParty
_080E9098:
movs r0, 0x64
muls r0, r5
ldr r1, _080E90A4 @ =gPlayerParty
adds r0, r1
movs r1, 0x1F
b _080E9346
.align 2, 0
_080E90A4: .4byte gPlayerParty
_080E90A8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E90B4 @ =gPlayerParty
adds r0, r1
movs r1, 0x20
b _080E9346
.align 2, 0
_080E90B4: .4byte gPlayerParty
_080E90B8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E90C4 @ =gPlayerParty
adds r0, r1
movs r1, 0x22
b _080E9346
.align 2, 0
_080E90C4: .4byte gPlayerParty
_080E90C8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E90D4 @ =gPlayerParty
adds r0, r1
movs r1, 0x23
b _080E9346
.align 2, 0
_080E90D4: .4byte gPlayerParty
_080E90D8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E90E4 @ =gPlayerParty
adds r0, r1
movs r1, 0x24
b _080E9346
.align 2, 0
_080E90E4: .4byte gPlayerParty
_080E90E8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E90F4 @ =gPlayerParty
adds r0, r1
movs r1, 0x25
b _080E9346
.align 2, 0
_080E90F4: .4byte gPlayerParty
_080E90F8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9104 @ =gPlayerParty
adds r0, r1
movs r1, 0x26
b _080E9346
.align 2, 0
_080E9104: .4byte gPlayerParty
_080E9108:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E9154 @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _080E934E
.align 2, 0
_080E9154: .4byte gPlayerParty
_080E9158:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9164 @ =gPlayerParty
adds r0, r1
movs r1, 0x27
b _080E9346
.align 2, 0
_080E9164: .4byte gPlayerParty
_080E9168:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9174 @ =gPlayerParty
adds r0, r1
movs r1, 0x28
b _080E9346
.align 2, 0
_080E9174: .4byte gPlayerParty
_080E9178:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9184 @ =gPlayerParty
adds r0, r1
movs r1, 0x29
b _080E9346
.align 2, 0
_080E9184: .4byte gPlayerParty
_080E9188:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9194 @ =gPlayerParty
adds r0, r1
movs r1, 0x2A
b _080E9346
.align 2, 0
_080E9194: .4byte gPlayerParty
_080E9198:
movs r0, 0x64
muls r0, r5
ldr r1, _080E91A4 @ =gPlayerParty
adds r0, r1
movs r1, 0x2B
b _080E9346
.align 2, 0
_080E91A4: .4byte gPlayerParty
_080E91A8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E91B4 @ =gPlayerParty
adds r0, r1
movs r1, 0x2C
b _080E9346
.align 2, 0
_080E91B4: .4byte gPlayerParty
_080E91B8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E91C4 @ =gPlayerParty
adds r0, r1
movs r1, 0
b _080E91E2
.align 2, 0
_080E91C4: .4byte gPlayerParty
_080E91C8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E91D4 @ =gPlayerParty
adds r0, r1
movs r1, 0x9
b _080E9286
.align 2, 0
_080E91D4: .4byte gPlayerParty
_080E91D8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9208 @ =gPlayerParty
adds r0, r1
movs r1, 0x37
_080E91E2:
bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
lsrs r0, r1, 24
strb r0, [r7, 0x3]
movs r6, 0x4
b _080E934E
.align 2, 0
_080E9208: .4byte gPlayerParty
_080E920C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9218 @ =gPlayerParty
adds r0, r1
movs r1, 0x38
b _080E9346
.align 2, 0
_080E9218: .4byte gPlayerParty
_080E921C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9228 @ =gPlayerParty
adds r0, r1
movs r1, 0x39
b _080E9286
.align 2, 0
_080E9228: .4byte gPlayerParty
_080E922C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9238 @ =gPlayerParty
adds r0, r1
movs r1, 0x3A
b _080E9286
.align 2, 0
_080E9238: .4byte gPlayerParty
_080E923C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9248 @ =gPlayerParty
adds r0, r1
movs r1, 0x3B
b _080E9286
.align 2, 0
_080E9248: .4byte gPlayerParty
_080E924C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9258 @ =gPlayerParty
adds r0, r1
movs r1, 0x3C
b _080E9286
.align 2, 0
_080E9258: .4byte gPlayerParty
_080E925C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9268 @ =gPlayerParty
adds r0, r1
movs r1, 0x3D
b _080E9286
.align 2, 0
_080E9268: .4byte gPlayerParty
_080E926C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9278 @ =gPlayerParty
adds r0, r1
movs r1, 0x3E
b _080E9286
.align 2, 0
_080E9278: .4byte gPlayerParty
_080E927C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9298 @ =gPlayerParty
adds r0, r1
movs r1, 0x3F
_080E9286:
bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
lsrs r0, 8
strb r0, [r7, 0x1]
movs r6, 0x2
b _080E934E
.align 2, 0
_080E9298: .4byte gPlayerParty
_080E929C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E92A8 @ =gPlayerParty
adds r0, r1
movs r1, 0x16
b _080E9346
.align 2, 0
_080E92A8: .4byte gPlayerParty
_080E92AC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E92B8 @ =gPlayerParty
adds r0, r1
movs r1, 0x17
b _080E9346
.align 2, 0
_080E92B8: .4byte gPlayerParty
_080E92BC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E92C8 @ =gPlayerParty
adds r0, r1
movs r1, 0x18
b _080E9346
.align 2, 0
_080E92C8: .4byte gPlayerParty
_080E92CC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E92D8 @ =gPlayerParty
adds r0, r1
movs r1, 0x21
b _080E9346
.align 2, 0
_080E92D8: .4byte gPlayerParty
_080E92DC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E92E8 @ =gPlayerParty
adds r0, r1
movs r1, 0x2F
b _080E9346
.align 2, 0
_080E92E8: .4byte gPlayerParty
_080E92EC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E92F8 @ =gPlayerParty
adds r0, r1
movs r1, 0x30
b _080E9346
.align 2, 0
_080E92F8: .4byte gPlayerParty
_080E92FC:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9308 @ =gPlayerParty
adds r0, r1
movs r1, 0x32
b _080E9346
.align 2, 0
_080E9308: .4byte gPlayerParty
_080E930C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9318 @ =gPlayerParty
adds r0, r1
movs r1, 0x33
b _080E9346
.align 2, 0
_080E9318: .4byte gPlayerParty
_080E931C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9328 @ =gPlayerParty
adds r0, r1
movs r1, 0x34
b _080E9346
.align 2, 0
_080E9328: .4byte gPlayerParty
_080E932C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9338 @ =gPlayerParty
adds r0, r1
movs r1, 0x35
b _080E9346
.align 2, 0
_080E9338: .4byte gPlayerParty
_080E933C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9360 @ =gPlayerParty
adds r0, r1
movs r1, 0x36
_080E9346:
bl GetMonData
strb r0, [r7]
movs r6, 0x1
_080E934E:
adds r0, r6, 0
add sp, 0x90
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080E9360: .4byte gPlayerParty
thumb_func_end CopyWallyMonData
thumb_func_start WallyHandleGetRawMonData
WallyHandleGetRawMonData: @ 80E9364
push {lr}
bl PlayerHandleGetRawMonData
pop {r0}
bx r0
thumb_func_end WallyHandleGetRawMonData
thumb_func_start WallyHandleSetMonData
WallyHandleSetMonData: @ 80E9370
push {r4,r5,lr}
ldr r1, _080E9394 @ =gUnknown_2022BC4
ldr r0, _080E9398 @ =gActiveBattler
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _080E93A0
ldr r0, _080E939C @ =gBattlerPartyIndexes
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
bl SetWallyMonData
b _080E93BE
.align 2, 0
_080E9394: .4byte gUnknown_2022BC4
_080E9398: .4byte gActiveBattler
_080E939C: .4byte gBattlerPartyIndexes
_080E93A0:
ldrb r4, [r1]
movs r5, 0
_080E93A4:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _080E93B2
adds r0, r5, 0
bl SetWallyMonData
_080E93B2:
lsrs r4, 1
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _080E93A4
_080E93BE:
bl WallyBufferExecCompleted
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end WallyHandleSetMonData
thumb_func_start SetWallyMonData
SetWallyMonData: @ 80E93C8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x34
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _080E9400 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 9
ldr r2, _080E9404 @ =gUnknown_2022BC7
adds r3, r0, r2
adds r6, r3, 0
subs r1, r2, 0x2
adds r0, r1
ldrb r0, [r0]
adds r7, r2, 0
cmp r0, 0x3B
bls _080E93F4
bl _080E9D8E
_080E93F4:
lsls r0, 2
ldr r1, _080E9408 @ =_080E940C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080E9400: .4byte gActiveBattler
_080E9404: .4byte gUnknown_2022BC7
_080E9408: .4byte _080E940C
.align 2, 0
_080E940C:
.4byte _080E94FC
.4byte _080E9694
.4byte _080E96B4
.4byte _080E96D4
.4byte _080E972C
.4byte _080E972C
.4byte _080E972C
.4byte _080E972C
.4byte _080E9754
.4byte _080E97B8
.4byte _080E97B8
.4byte _080E97B8
.4byte _080E97B8
.4byte _080E9D8E
.4byte _080E9D8E
.4byte _080E9D8E
.4byte _080E9D8E
.4byte _080E97E8
.4byte _080E9808
.4byte _080E9828
.4byte _080E9848
.4byte _080E9868
.4byte _080E9888
.4byte _080E98A8
.4byte _080E98C8
.4byte _080E98E8
.4byte _080E9908
.4byte _080E9928
.4byte _080E9948
.4byte _080E9968
.4byte _080E9988
.4byte _080E99A8
.4byte _080E9A18
.4byte _080E9A38
.4byte _080E9A58
.4byte _080E9A78
.4byte _080E9A98
.4byte _080E9AB8
.4byte _080E9AD8
.4byte _080E9AF8
.4byte _080E9B18
.4byte _080E9B38
.4byte _080E9B58
.4byte _080E9B78
.4byte _080E9B98
.4byte _080E9BB8
.4byte _080E9BD8
.4byte _080E9BF8
.4byte _080E9C18
.4byte _080E9C38
.4byte _080E9C58
.4byte _080E9C78
.4byte _080E9C98
.4byte _080E9CB8
.4byte _080E9CD8
.4byte _080E9CF8
.4byte _080E9D18
.4byte _080E9D38
.4byte _080E9D58
.4byte _080E9D78
_080E94FC:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E9690 @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
adds r2, r6, 0
bl SetMonData
adds r2, r6, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
adds r0, r6
mov r10, r0
adds r0, r6, 0
adds r0, 0x2B
str r0, [sp, 0x20]
adds r0, 0x19
str r0, [sp, 0x28]
adds r0, 0x4
str r0, [sp, 0x2C]
adds r0, 0x4
str r0, [sp, 0x30]
subs r0, 0x22
str r0, [sp, 0x1C]
subs r0, 0x2
str r0, [sp, 0x18]
adds r0, 0x4
str r0, [sp, 0x24]
adds r0, r6, 0x2
str r0, [sp, 0x4]
adds r0, r6, 0x4
str r0, [sp, 0x8]
adds r0, r6, 0x6
str r0, [sp, 0xC]
adds r0, 0x2
str r0, [sp, 0x10]
adds r0, 0x2
str r0, [sp, 0x14]
mov r9, r4
adds r7, r6, 0
adds r7, 0x24
adds r4, r6, 0
adds r4, 0xC
_080E9562:
mov r1, r8
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r7, 0
bl SetMonData
adds r7, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _080E9562
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E9690 @ =gPlayerParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
bl SetMonData
ldrb r0, [r6, 0x14]
lsls r0, 27
lsrs r0, 27
mov r1, sp
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x14]
lsls r0, 22
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x15]
lsls r0, 25
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
bl SetMonData
mov r1, sp
ldr r0, [r6, 0x14]
lsls r0, 12
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r6, 0x16]
lsls r0, 23
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, 0x17]
lsls r0, 26
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9690: .4byte gPlayerParty
_080E9694:
movs r0, 0x64
muls r0, r5
ldr r1, _080E96AC @ =gPlayerParty
adds r0, r1
ldr r1, _080E96B0 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0xB
bl SetMonData
b _080E9D8E
.align 2, 0
_080E96AC: .4byte gPlayerParty
_080E96B0: .4byte gActiveBattler
_080E96B4:
movs r0, 0x64
muls r0, r5
ldr r1, _080E96CC @ =gPlayerParty
adds r0, r1
ldr r1, _080E96D0 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0xC
bl SetMonData
b _080E9D8E
.align 2, 0
_080E96CC: .4byte gPlayerParty
_080E96D0: .4byte gActiveBattler
_080E96D4:
movs r0, 0
mov r8, r0
movs r0, 0xC
adds r0, r3
mov r9, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _080E9728 @ =gPlayerParty
adds r7, r1, r0
adds r6, r3, 0
adds r6, 0x8
adds r4, r3, 0
_080E96EE:
mov r1, r8
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _080E96EE
movs r0, 0x64
muls r0, r5
ldr r1, _080E9728 @ =gPlayerParty
adds r0, r1
movs r1, 0x15
mov r2, r9
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9728: .4byte gPlayerParty
_080E972C:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9748 @ =gPlayerParty
adds r0, r1
ldr r3, _080E974C @ =gUnknown_2022BC4
ldr r1, _080E9750 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x9
b _080E97D0
.align 2, 0
_080E9748: .4byte gPlayerParty
_080E974C: .4byte gUnknown_2022BC4
_080E9750: .4byte gActiveBattler
_080E9754:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E97B0 @ =gPlayerParty
adds r4, r0
ldr r5, _080E97B4 @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
adds r2, r7
adds r0, r4, 0
movs r1, 0x11
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
bl SetMonData
b _080E9D8E
.align 2, 0
_080E97B0: .4byte gPlayerParty
_080E97B4: .4byte gActiveBattler
_080E97B8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E97DC @ =gPlayerParty
adds r0, r1
ldr r3, _080E97E0 @ =gUnknown_2022BC4
ldr r1, _080E97E4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x8
_080E97D0:
adds r3, 0x3
adds r2, r3
bl SetMonData
b _080E9D8E
.align 2, 0
_080E97DC: .4byte gPlayerParty
_080E97E0: .4byte gUnknown_2022BC4
_080E97E4: .4byte gActiveBattler
_080E97E8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9800 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9804 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9800: .4byte gPlayerParty
_080E9804: .4byte gActiveBattler
_080E9808:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9820 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9824 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x19
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9820: .4byte gPlayerParty
_080E9824: .4byte gActiveBattler
_080E9828:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9840 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9844 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1A
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9840: .4byte gPlayerParty
_080E9844: .4byte gActiveBattler
_080E9848:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9860 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9864 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1B
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9860: .4byte gPlayerParty
_080E9864: .4byte gActiveBattler
_080E9868:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9880 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9884 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1C
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9880: .4byte gPlayerParty
_080E9884: .4byte gActiveBattler
_080E9888:
movs r0, 0x64
muls r0, r5
ldr r1, _080E98A0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E98A4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1D
bl SetMonData
b _080E9D8E
.align 2, 0
_080E98A0: .4byte gPlayerParty
_080E98A4: .4byte gActiveBattler
_080E98A8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E98C0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E98C4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1E
bl SetMonData
b _080E9D8E
.align 2, 0
_080E98C0: .4byte gPlayerParty
_080E98C4: .4byte gActiveBattler
_080E98C8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E98E0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E98E4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x1F
bl SetMonData
b _080E9D8E
.align 2, 0
_080E98E0: .4byte gPlayerParty
_080E98E4: .4byte gActiveBattler
_080E98E8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9900 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9904 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x20
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9900: .4byte gPlayerParty
_080E9904: .4byte gActiveBattler
_080E9908:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9920 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9924 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x22
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9920: .4byte gPlayerParty
_080E9924: .4byte gActiveBattler
_080E9928:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9940 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9944 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x23
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9940: .4byte gPlayerParty
_080E9944: .4byte gActiveBattler
_080E9948:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9960 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9964 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x24
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9960: .4byte gPlayerParty
_080E9964: .4byte gActiveBattler
_080E9968:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9980 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9984 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x25
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9980: .4byte gPlayerParty
_080E9984: .4byte gActiveBattler
_080E9988:
movs r0, 0x64
muls r0, r5
ldr r1, _080E99A0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E99A4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x26
bl SetMonData
b _080E9D8E
.align 2, 0
_080E99A0: .4byte gPlayerParty
_080E99A4: .4byte gActiveBattler
_080E99A8:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _080E9A10 @ =gPlayerParty
adds r4, r0
ldr r5, _080E9A14 @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
adds r2, r7
adds r0, r4, 0
movs r1, 0x27
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
bl SetMonData
ldrb r2, [r5]
lsls r2, 9
adds r0, r7, 0x5
adds r2, r0
adds r0, r4, 0
b _080E9AC8
.align 2, 0
_080E9A10: .4byte gPlayerParty
_080E9A14: .4byte gActiveBattler
_080E9A18:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9A30 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9A34 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x27
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A30: .4byte gPlayerParty
_080E9A34: .4byte gActiveBattler
_080E9A38:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9A50 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9A54 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x28
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A50: .4byte gPlayerParty
_080E9A54: .4byte gActiveBattler
_080E9A58:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9A70 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9A74 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x29
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A70: .4byte gPlayerParty
_080E9A74: .4byte gActiveBattler
_080E9A78:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9A90 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9A94 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2A
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9A90: .4byte gPlayerParty
_080E9A94: .4byte gActiveBattler
_080E9A98:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9AB0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9AB4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2B
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9AB0: .4byte gPlayerParty
_080E9AB4: .4byte gActiveBattler
_080E9AB8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9AD0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9AD4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
_080E9AC8:
movs r1, 0x2C
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9AD0: .4byte gPlayerParty
_080E9AD4: .4byte gActiveBattler
_080E9AD8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9AF0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9AF4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9AF0: .4byte gPlayerParty
_080E9AF4: .4byte gActiveBattler
_080E9AF8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9B10 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9B14 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x9
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B10: .4byte gPlayerParty
_080E9B14: .4byte gActiveBattler
_080E9B18:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9B30 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9B34 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x37
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B30: .4byte gPlayerParty
_080E9B34: .4byte gActiveBattler
_080E9B38:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9B50 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9B54 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x38
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B50: .4byte gPlayerParty
_080E9B54: .4byte gActiveBattler
_080E9B58:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9B70 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9B74 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x39
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B70: .4byte gPlayerParty
_080E9B74: .4byte gActiveBattler
_080E9B78:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9B90 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9B94 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3A
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9B90: .4byte gPlayerParty
_080E9B94: .4byte gActiveBattler
_080E9B98:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9BB0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9BB4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3B
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9BB0: .4byte gPlayerParty
_080E9BB4: .4byte gActiveBattler
_080E9BB8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9BD0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9BD4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3C
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9BD0: .4byte gPlayerParty
_080E9BD4: .4byte gActiveBattler
_080E9BD8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9BF0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9BF4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3D
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9BF0: .4byte gPlayerParty
_080E9BF4: .4byte gActiveBattler
_080E9BF8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9C10 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9C14 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3E
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C10: .4byte gPlayerParty
_080E9C14: .4byte gActiveBattler
_080E9C18:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9C30 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9C34 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x3F
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C30: .4byte gPlayerParty
_080E9C34: .4byte gActiveBattler
_080E9C38:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9C50 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9C54 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x16
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C50: .4byte gPlayerParty
_080E9C54: .4byte gActiveBattler
_080E9C58:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9C70 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9C74 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x17
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C70: .4byte gPlayerParty
_080E9C74: .4byte gActiveBattler
_080E9C78:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9C90 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9C94 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x18
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9C90: .4byte gPlayerParty
_080E9C94: .4byte gActiveBattler
_080E9C98:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9CB0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9CB4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x21
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9CB0: .4byte gPlayerParty
_080E9CB4: .4byte gActiveBattler
_080E9CB8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9CD0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9CD4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x2F
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9CD0: .4byte gPlayerParty
_080E9CD4: .4byte gActiveBattler
_080E9CD8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9CF0 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9CF4 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x30
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9CF0: .4byte gPlayerParty
_080E9CF4: .4byte gActiveBattler
_080E9CF8:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9D10 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9D14 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x32
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D10: .4byte gPlayerParty
_080E9D14: .4byte gActiveBattler
_080E9D18:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9D30 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9D34 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x33
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D30: .4byte gPlayerParty
_080E9D34: .4byte gActiveBattler
_080E9D38:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9D50 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9D54 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x34
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D50: .4byte gPlayerParty
_080E9D54: .4byte gActiveBattler
_080E9D58:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9D70 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9D74 @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x35
bl SetMonData
b _080E9D8E
.align 2, 0
_080E9D70: .4byte gPlayerParty
_080E9D74: .4byte gActiveBattler
_080E9D78:
movs r0, 0x64
muls r0, r5
ldr r1, _080E9DB8 @ =gPlayerParty
adds r0, r1
ldr r1, _080E9DBC @ =gActiveBattler
ldrb r2, [r1]
lsls r2, 9
adds r2, r7
movs r1, 0x36
bl SetMonData
_080E9D8E:
ldr r2, _080E9DC0 @ =gBattlerPartyIndexes
ldr r0, _080E9DBC @ =gActiveBattler
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, _080E9DB8 @ =gPlayerParty
adds r0, r2
bl HandleLowHpMusicChange
add sp, 0x34
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080E9DB8: .4byte gPlayerParty
_080E9DBC: .4byte gActiveBattler
_080E9DC0: .4byte gBattlerPartyIndexes
thumb_func_end SetWallyMonData
thumb_func_start sub_80E9DC4
sub_80E9DC4: @ 80E9DC4
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80E9DC4
thumb_func_start sub_80E9DD0
sub_80E9DD0: @ 80E9DD0
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80E9DD0
thumb_func_start sub_80E9DDC
sub_80E9DDC: @ 80E9DDC
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80E9DDC
thumb_func_start WallyHandleReturnMonToBall
WallyHandleReturnMonToBall: @ 80E9DE8
push {r4-r6,lr}
ldr r0, _080E9E14 @ =gUnknown_2022BC4
ldr r6, _080E9E18 @ =gActiveBattler
ldrb r2, [r6]
lsls r1, r2, 9
adds r0, 0x1
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
bne _080E9E24
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x1
bl InitAndLaunchSpecialAnimation
ldr r0, _080E9E1C @ =gUnknown_3004FE0
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _080E9E20 @ =sub_80E89C4
str r0, [r1]
b _080E9E5A
.align 2, 0
_080E9E14: .4byte gUnknown_2022BC4
_080E9E18: .4byte gActiveBattler
_080E9E1C: .4byte gUnknown_3004FE0
_080E9E20: .4byte sub_80E89C4
_080E9E24:
ldr r5, _080E9E60 @ =gUnknown_2023D44
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _080E9E64 @ =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r1, _080E9E68 @ =gUnknown_3004FF0
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl WallyBufferExecCompleted
_080E9E5A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E9E60: .4byte gUnknown_2023D44
_080E9E64: .4byte gSprites
_080E9E68: .4byte gUnknown_3004FF0
thumb_func_end WallyHandleReturnMonToBall
thumb_func_start sub_80E9E6C
sub_80E9E6C: @ 80E9E6C
push {r4-r6,lr}
ldr r0, _080E9EC8 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080E9EE0
ldr r4, _080E9ECC @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrb r0, [r0, 0x8]
ldr r6, _080E9ED0 @ =gActiveBattler
ldrb r1, [r6]
bl sub_8034750
ldr r0, [r4]
ldrb r5, [r0, 0x8]
ldrb r0, [r6]
bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl SetMultiuseSpriteTemplateToTrainerBack
ldr r0, _080E9ED4 @ =gMultiuseSpriteTemplate
ldr r2, _080E9ED8 @ =gUnknown_8239F8C
ldr r1, [r4]
ldrb r1, [r1, 0x8]
lsls r1, 2
adds r1, r2
ldrb r1, [r1]
movs r2, 0x8
subs r2, r1
lsls r2, 18
movs r1, 0xA0
lsls r1, 15
adds r2, r1
asrs r2, 16
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
ldr r2, _080E9EDC @ =gUnknown_2023D44
ldrb r1, [r6]
b _080E9F1C
.align 2, 0
_080E9EC8: .4byte gBattleTypeFlags
_080E9ECC: .4byte gSaveBlock2Ptr
_080E9ED0: .4byte gActiveBattler
_080E9ED4: .4byte gMultiuseSpriteTemplate
_080E9ED8: .4byte gUnknown_8239F8C
_080E9EDC: .4byte gUnknown_2023D44
_080E9EE0:
ldr r4, _080E9F8C @ =gActiveBattler
ldrb r1, [r4]
movs r0, 0x5
bl sub_8034750
ldrb r0, [r4]
bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
bl SetMultiuseSpriteTemplateToTrainerBack
ldr r0, _080E9F90 @ =gMultiuseSpriteTemplate
ldr r1, _080E9F94 @ =gUnknown_8239F8C
ldrb r1, [r1, 0x14]
movs r2, 0x8
subs r2, r1
lsls r2, 18
movs r1, 0xA0
lsls r1, 15
adds r2, r1
asrs r2, 16
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
ldr r2, _080E9F98 @ =gUnknown_2023D44
ldrb r1, [r4]
_080E9F1C:
adds r1, r2
strb r0, [r1]
ldr r4, _080E9F9C @ =gSprites
ldr r5, _080E9F98 @ =gUnknown_2023D44
ldr r6, _080E9F8C @ =gActiveBattler
ldrb r3, [r6]
adds r0, r3, r5
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0xF0
strh r1, [r0, 0x24]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _080E9FA0 @ =0x0000fffe
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, _080E9FA4 @ =sub_8033EEC
str r1, [r0]
ldr r1, _080E9FA8 @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _080E9FAC @ =sub_80E78E0
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E9F8C: .4byte gActiveBattler
_080E9F90: .4byte gMultiuseSpriteTemplate
_080E9F94: .4byte gUnknown_8239F8C
_080E9F98: .4byte gUnknown_2023D44
_080E9F9C: .4byte gSprites
_080E9FA0: .4byte 0x0000fffe
_080E9FA4: .4byte sub_8033EEC
_080E9FA8: .4byte gUnknown_3004FE0
_080E9FAC: .4byte sub_80E78E0
thumb_func_end sub_80E9E6C
thumb_func_start sub_80E9FB0
sub_80E9FB0: @ 80E9FB0
push {r4-r6,lr}
ldr r0, _080EA00C @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080EA024
ldr r4, _080EA010 @ =gSaveBlock2Ptr
ldr r0, [r4]
ldrb r0, [r0, 0x8]
ldr r6, _080EA014 @ =gActiveBattler
ldrb r1, [r6]
bl sub_8034750
ldr r0, [r4]
ldrb r5, [r0, 0x8]
ldrb r0, [r6]
bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
bl SetMultiuseSpriteTemplateToTrainerBack
ldr r0, _080EA018 @ =gMultiuseSpriteTemplate
ldr r2, _080EA01C @ =gUnknown_8239F8C
ldr r1, [r4]
ldrb r1, [r1, 0x8]
lsls r1, 2
adds r1, r2
ldrb r1, [r1]
movs r2, 0x8
subs r2, r1
lsls r2, 18
movs r1, 0xA0
lsls r1, 15
adds r2, r1
asrs r2, 16
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
ldr r2, _080EA020 @ =gUnknown_2023D44
ldrb r1, [r6]
b _080EA060
.align 2, 0
_080EA00C: .4byte gBattleTypeFlags
_080EA010: .4byte gSaveBlock2Ptr
_080EA014: .4byte gActiveBattler
_080EA018: .4byte gMultiuseSpriteTemplate
_080EA01C: .4byte gUnknown_8239F8C
_080EA020: .4byte gUnknown_2023D44
_080EA024:
ldr r4, _080EA0D0 @ =gActiveBattler
ldrb r1, [r4]
movs r0, 0x5
bl sub_8034750
ldrb r0, [r4]
bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0x5
bl SetMultiuseSpriteTemplateToTrainerBack
ldr r0, _080EA0D4 @ =gMultiuseSpriteTemplate
ldr r1, _080EA0D8 @ =gUnknown_8239F8C
ldrb r1, [r1, 0x14]
movs r2, 0x8
subs r2, r1
lsls r2, 18
movs r1, 0xA0
lsls r1, 15
adds r2, r1
asrs r2, 16
movs r1, 0x50
movs r3, 0x1E
bl CreateSprite
ldr r2, _080EA0DC @ =gUnknown_2023D44
ldrb r1, [r4]
_080EA060:
adds r1, r2
strb r0, [r1]
ldr r4, _080EA0E0 @ =gSprites
ldr r5, _080EA0DC @ =gUnknown_2023D44
ldr r6, _080EA0D0 @ =gActiveBattler
ldrb r3, [r6]
adds r0, r3, r5
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _080EA0E4 @ =0x0000ffa0
strh r1, [r0, 0x24]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, _080EA0E8 @ =sub_8033EEC
str r1, [r0]
ldr r1, _080EA0EC @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _080EA0F0 @ =sub_80E8A34
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EA0D0: .4byte gActiveBattler
_080EA0D4: .4byte gMultiuseSpriteTemplate
_080EA0D8: .4byte gUnknown_8239F8C
_080EA0DC: .4byte gUnknown_2023D44
_080EA0E0: .4byte gSprites
_080EA0E4: .4byte 0x0000ffa0
_080EA0E8: .4byte sub_8033EEC
_080EA0EC: .4byte gUnknown_3004FE0
_080EA0F0: .4byte sub_80E8A34
thumb_func_end sub_80E9FB0
thumb_func_start sub_80EA0F4
sub_80EA0F4: @ 80EA0F4
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EA0F4
thumb_func_start sub_80EA100
sub_80EA100: @ 80EA100
push {r4-r6,lr}
ldr r6, _080EA14C @ =gUnknown_2024018
ldr r4, [r6]
ldr r5, _080EA150 @ =gActiveBattler
ldrb r2, [r5]
ldr r0, [r4, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r3, r1, r0
ldrb r0, [r3, 0x4]
cmp r0, 0
bne _080EA154
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080EA134
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl InitAndLaunchSpecialAnimation
_080EA134:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x4]
adds r1, 0x1
strb r1, [r0, 0x4]
b _080EA1CA
.align 2, 0
_080EA14C: .4byte gUnknown_2024018
_080EA150: .4byte gActiveBattler
_080EA154:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080EA1CA
strb r4, [r3, 0x4]
ldr r2, _080EA1D0 @ =gBattlerPartyIndexes
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, _080EA1D4 @ =gPlayerParty
adds r0, r2
bl HandleLowHpMusicChange
movs r1, 0x40
negs r1, r1
movs r0, 0x10
bl PlaySE12WithPanning
ldr r2, _080EA1D8 @ =gSprites
ldr r3, _080EA1DC @ =gUnknown_2023D44
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
strh r4, [r0, 0x30]
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x5
strh r1, [r0, 0x32]
ldrb r0, [r5]
adds r0, r3
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _080EA1E0 @ =sub_8012110
str r1, [r0]
ldr r1, _080EA1E4 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080EA1E8 @ =sub_80E82F4
str r1, [r0]
_080EA1CA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EA1D0: .4byte gBattlerPartyIndexes
_080EA1D4: .4byte gPlayerParty
_080EA1D8: .4byte gSprites
_080EA1DC: .4byte gUnknown_2023D44
_080EA1E0: .4byte sub_8012110
_080EA1E4: .4byte gUnknown_3004FE0
_080EA1E8: .4byte sub_80E82F4
thumb_func_end sub_80EA100
thumb_func_start sub_80EA1EC
sub_80EA1EC: @ 80EA1EC
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EA1EC
thumb_func_start sub_80EA1F8
sub_80EA1F8: @ 80EA1F8
push {r4,r5,lr}
ldr r0, _080EA238 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0, 0x8]
movs r0, 0x4
strb r0, [r1, 0x8]
ldr r1, _080EA23C @ =gUnknown_2024005
movs r0, 0x1
strb r0, [r1]
ldr r5, _080EA240 @ =gActiveBattler
ldrb r4, [r5]
movs r0, 0x1
bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r4, 0
movs r3, 0x4
bl InitAndLaunchSpecialAnimation
ldr r1, _080EA244 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080EA248 @ =sub_80E7970
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080EA238: .4byte gUnknown_2024018
_080EA23C: .4byte gUnknown_2024005
_080EA240: .4byte gActiveBattler
_080EA244: .4byte gUnknown_3004FE0
_080EA248: .4byte sub_80E7970
thumb_func_end sub_80EA1F8
thumb_func_start sub_80EA24C
sub_80EA24C: @ 80EA24C
push {r4,r5,lr}
ldr r1, _080EA294 @ =gUnknown_2022BC4
ldr r5, _080EA298 @ =gActiveBattler
ldrb r0, [r5]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
ldr r0, _080EA29C @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0, 0x8]
strb r1, [r0, 0x8]
ldr r1, _080EA2A0 @ =gUnknown_2024005
movs r0, 0x1
strb r0, [r1]
ldrb r4, [r5]
movs r0, 0x1
bl GetBattlerAtPosition
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
adds r0, r4, 0
adds r1, r4, 0
movs r3, 0x4
bl InitAndLaunchSpecialAnimation
ldr r1, _080EA2A4 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080EA2A8 @ =sub_80E7970
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080EA294: .4byte gUnknown_2022BC4
_080EA298: .4byte gActiveBattler
_080EA29C: .4byte gUnknown_2024018
_080EA2A0: .4byte gUnknown_2024005
_080EA2A4: .4byte gUnknown_3004FE0
_080EA2A8: .4byte sub_80E7970
thumb_func_end sub_80EA24C
thumb_func_start sub_80EA2AC
sub_80EA2AC: @ 80EA2AC
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EA2AC
thumb_func_start sub_80EA2B8
sub_80EA2B8: @ 80EA2B8
push {r4-r6,lr}
ldr r0, _080EA38C @ =gUnknown_2022BC4
mov r12, r0
ldr r6, _080EA390 @ =gActiveBattler
ldrb r2, [r6]
lsls r2, 9
adds r0, 0x1
adds r0, r2, r0
ldrb r0, [r0]
mov r1, r12
adds r1, 0x2
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
ldr r5, _080EA394 @ =gUnknown_2037F16
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
ldr r4, _080EA398 @ =gUnknown_2037EEC
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x4
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x5
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r4, _080EA39C @ =gUnknown_2037EE8
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x6
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x7
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r3, r1
mov r1, r12
adds r1, 0x8
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 16
orrs r3, r1
mov r1, r12
adds r1, 0x9
adds r2, r1
ldrb r1, [r2]
lsls r1, 24
orrs r3, r1
str r3, [r4]
ldr r3, _080EA3A0 @ =gUnknown_2037EFE
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
adds r2, 0xA
adds r1, r2
ldrb r1, [r1]
strb r1, [r3]
ldr r4, _080EA3A4 @ =gUnknown_2037F00
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0xC
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0xD
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r3, _080EA3A8 @ =gUnknown_2037EE4
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x10
adds r2, r1
str r2, [r3]
ldr r3, _080EA3AC @ =gUnknown_2024008
ldrb r1, [r6]
lsls r1, 2
adds r1, r3
ldr r2, [r2]
str r2, [r1]
ldrb r1, [r5]
bl IsMoveWithoutAnimation
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _080EA3B0
bl WallyBufferExecCompleted
b _080EA3CE
.align 2, 0
_080EA38C: .4byte gUnknown_2022BC4
_080EA390: .4byte gActiveBattler
_080EA394: .4byte gUnknown_2037F16
_080EA398: .4byte gUnknown_2037EEC
_080EA39C: .4byte gUnknown_2037EE8
_080EA3A0: .4byte gUnknown_2037EFE
_080EA3A4: .4byte gUnknown_2037F00
_080EA3A8: .4byte gUnknown_2037EE4
_080EA3AC: .4byte gUnknown_2024008
_080EA3B0:
ldr r0, _080EA3D4 @ =gUnknown_2024018
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x4]
ldr r1, _080EA3D8 @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _080EA3DC @ =sub_80EA3E0
str r1, [r0]
_080EA3CE:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EA3D4: .4byte gUnknown_2024018
_080EA3D8: .4byte gUnknown_3004FE0
_080EA3DC: .4byte sub_80EA3E0
thumb_func_end sub_80EA2B8
thumb_func_start sub_80EA3E0
sub_80EA3E0: @ 80EA3E0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r2, _080EA424 @ =gUnknown_2022BC4
ldr r6, _080EA428 @ =gActiveBattler
ldrb r3, [r6]
lsls r1, r3, 9
adds r0, r2, 0x1
mov r9, r0
adds r0, r1, r0
ldrb r4, [r0]
adds r2, 0x2
mov r8, r2
add r1, r8
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
ldr r7, _080EA42C @ =gUnknown_2024018
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x4]
cmp r2, 0x1
beq _080EA46A
cmp r2, 0x1
bgt _080EA430
cmp r2, 0
beq _080EA43A
b _080EA520
.align 2, 0
_080EA424: .4byte gUnknown_2022BC4
_080EA428: .4byte gActiveBattler
_080EA42C: .4byte gUnknown_2024018
_080EA430:
cmp r2, 0x2
beq _080EA494
cmp r2, 0x3
beq _080EA4E4
b _080EA520
_080EA43A:
ldr r1, [r5]
lsls r0, r3, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080EA456
adds r0, r3, 0
adds r1, r3, 0
adds r2, r3, 0
movs r3, 0x5
bl InitAndLaunchSpecialAnimation
_080EA456:
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
strb r1, [r0, 0x4]
b _080EA520
_080EA46A:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080EA520
movs r0, 0
bl sub_8035450
adds r0, r4, 0
bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x2
strb r1, [r0, 0x4]
b _080EA520
_080EA494:
ldr r0, _080EA4DC @ =gUnknown_2037EDC
ldr r0, [r0]
bl _call_via_r0
ldr r0, _080EA4E0 @ =gUnknown_2037EE1
ldrb r0, [r0]
cmp r0, 0
bne _080EA520
movs r0, 0x1
bl sub_8035450
ldr r0, [r7]
ldrb r2, [r6]
ldr r1, [r0]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080EA4C8
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl InitAndLaunchSpecialAnimation
_080EA4C8:
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x4]
b _080EA520
.align 2, 0
_080EA4DC: .4byte gUnknown_2037EDC
_080EA4E0: .4byte gUnknown_2037EE1
_080EA4E4:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080EA520
bl CopyAllBattleSpritesInvisibilities
ldrb r0, [r6]
lsls r2, r0, 9
mov r3, r9
adds r1, r2, r3
ldrb r1, [r1]
add r2, r8
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
bl TrySetBehindSubstituteSpriteBit
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r4, [r0, 0x4]
bl WallyBufferExecCompleted
_080EA520:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80EA3E0
thumb_func_start sub_80EA52C
sub_80EA52C: @ 80EA52C
push {r4,lr}
ldr r0, _080EA55C @ =gUnknown_2022974
movs r1, 0
strh r1, [r0]
ldr r0, _080EA560 @ =gUnknown_2022976
strh r1, [r0]
ldr r0, _080EA564 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 9
ldr r1, _080EA568 @ =gUnknown_2022BC6
adds r4, r0, r1
ldr r0, _080EA56C @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x80
lsls r1, 2
ands r0, r1
cmp r0, 0
beq _080EA570
ldrh r0, [r4]
cmp r0, 0x1
bne _080EA570
bl WallyBufferExecCompleted
b _080EA65A
.align 2, 0
_080EA55C: .4byte gUnknown_2022974
_080EA560: .4byte gUnknown_2022976
_080EA564: .4byte gActiveBattler
_080EA568: .4byte gUnknown_2022BC6
_080EA56C: .4byte gBattleTypeFlags
_080EA570:
ldrh r0, [r4]
bl sub_80D7274
ldrh r0, [r4]
bl sub_80D89B0
lsls r0, 24
cmp r0, 0
beq _080EA590
ldr r0, _080EA58C @ =gDisplayedStringBattle
movs r1, 0x40
bl sub_80D87BC
b _080EA598
.align 2, 0
_080EA58C: .4byte gDisplayedStringBattle
_080EA590:
ldr r0, _080EA5B4 @ =gDisplayedStringBattle
movs r1, 0
bl sub_80D87BC
_080EA598:
ldr r0, _080EA5B8 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080EA64C
ldrh r1, [r4]
cmp r1, 0xD8
beq _080EA5CC
cmp r1, 0xD8
bgt _080EA5BC
cmp r1, 0x1E
beq _080EA5F8
b _080EA64C
.align 2, 0
_080EA5B4: .4byte gDisplayedStringBattle
_080EA5B8: .4byte gBattleTypeFlags
_080EA5BC:
cmp r1, 0xE3
beq _080EA630
ldr r0, _080EA5C8 @ =0x0000017f
cmp r1, r0
beq _080EA614
b _080EA64C
.align 2, 0
_080EA5C8: .4byte 0x0000017f
_080EA5CC:
movs r0, 0x2
bl sub_80EB2E0
lsls r0, 24
cmp r0, 0
bne _080EA64C
movs r0, 0x2
bl sub_80EB2F4
ldr r1, _080EA5EC @ =gUnknown_3004FE0
ldr r0, _080EA5F0 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA5F4 @ =sub_80E8584
b _080EA658
.align 2, 0
_080EA5EC: .4byte gUnknown_3004FE0
_080EA5F0: .4byte gActiveBattler
_080EA5F4: .4byte sub_80E8584
_080EA5F8:
ldr r1, _080EA608 @ =gUnknown_3004FE0
ldr r0, _080EA60C @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA610 @ =sub_80E85AC
b _080EA658
.align 2, 0
_080EA608: .4byte gUnknown_3004FE0
_080EA60C: .4byte gActiveBattler
_080EA610: .4byte sub_80E85AC
_080EA614:
ldr r1, _080EA624 @ =gUnknown_3004FE0
ldr r0, _080EA628 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA62C @ =sub_80E85C0
b _080EA658
.align 2, 0
_080EA624: .4byte gUnknown_3004FE0
_080EA628: .4byte gActiveBattler
_080EA62C: .4byte sub_80E85C0
_080EA630:
ldr r1, _080EA640 @ =gUnknown_3004FE0
ldr r0, _080EA644 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA648 @ =sub_80E8598
b _080EA658
.align 2, 0
_080EA640: .4byte gUnknown_3004FE0
_080EA644: .4byte gActiveBattler
_080EA648: .4byte sub_80E8598
_080EA64C:
ldr r1, _080EA660 @ =gUnknown_3004FE0
ldr r0, _080EA664 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA668 @ =sub_80E7918
_080EA658:
str r1, [r0]
_080EA65A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EA660: .4byte gUnknown_3004FE0
_080EA664: .4byte gActiveBattler
_080EA668: .4byte sub_80E7918
thumb_func_end sub_80EA52C
thumb_func_start sub_80EA66C
sub_80EA66C: @ 80EA66C
push {lr}
ldr r0, _080EA684 @ =gActiveBattler
ldrb r0, [r0]
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080EA688
bl sub_80EA52C
b _080EA68C
.align 2, 0
_080EA684: .4byte gActiveBattler
_080EA688:
bl WallyBufferExecCompleted
_080EA68C:
pop {r0}
bx r0
thumb_func_end sub_80EA66C
thumb_func_start sub_80EA690
sub_80EA690: @ 80EA690
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080EA6EA
ldr r0, _080EA6C4 @ =gUnknown_2022974
strh r1, [r0]
ldr r1, _080EA6C8 @ =gUnknown_2022976
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080EA6CC @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080EA6DC
ldr r1, _080EA6D0 @ =gUnknown_3004FE0
ldr r0, _080EA6D4 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA6D8 @ =sub_80E763C
b _080EA6E8
.align 2, 0
_080EA6C4: .4byte gUnknown_2022974
_080EA6C8: .4byte gUnknown_2022976
_080EA6CC: .4byte gBattleTypeFlags
_080EA6D0: .4byte gUnknown_3004FE0
_080EA6D4: .4byte gActiveBattler
_080EA6D8: .4byte sub_80E763C
_080EA6DC:
ldr r1, _080EA6F0 @ =gUnknown_3004FE0
ldr r0, _080EA6F4 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA6F8 @ =sub_80E7844
_080EA6E8:
str r1, [r0]
_080EA6EA:
pop {r0}
bx r0
.align 2, 0
_080EA6F0: .4byte gUnknown_3004FE0
_080EA6F4: .4byte gActiveBattler
_080EA6F8: .4byte sub_80E7844
thumb_func_end sub_80EA690
thumb_func_start sub_80EA6FC
sub_80EA6FC: @ 80EA6FC
push {r4,lr}
ldr r1, _080EA750 @ =gUnknown_3004FE0
ldr r0, _080EA754 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA758 @ =sub_80EA690
str r1, [r0]
ldr r0, _080EA75C @ =gUnknown_83FDA4C
movs r1, 0
bl sub_80D87BC
ldr r0, _080EA760 @ =gUnknown_83FE725
movs r1, 0x2
bl sub_80D87BC
movs r4, 0
_080EA71E:
lsls r0, r4, 24
lsrs r0, 24
bl ActionSelectionDestroyCursorAt
adds r4, 0x1
cmp r4, 0x3
ble _080EA71E
ldr r1, _080EA764 @ =gUnknown_2023FF8
ldr r0, _080EA754 @ =gActiveBattler
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
movs r1, 0
bl ActionSelectionCreateCursorAt
ldr r0, _080EA768 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080EA770
ldr r0, _080EA76C @ =gUnknown_83FE6D5
bl BattleStringExpandPlaceholdersToDisplayedString
b _080EA776
.align 2, 0
_080EA750: .4byte gUnknown_3004FE0
_080EA754: .4byte gActiveBattler
_080EA758: .4byte sub_80EA690
_080EA75C: .4byte gUnknown_83FDA4C
_080EA760: .4byte gUnknown_83FE725
_080EA764: .4byte gUnknown_2023FF8
_080EA768: .4byte gBattleTypeFlags
_080EA76C: .4byte gUnknown_83FE6D5
_080EA770:
ldr r0, _080EA784 @ =gUnknown_83FE6FA
bl BattleStringExpandPlaceholdersToDisplayedString
_080EA776:
ldr r0, _080EA788 @ =gDisplayedStringBattle
movs r1, 0x1
bl sub_80D87BC
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EA784: .4byte gUnknown_83FE6FA
_080EA788: .4byte gDisplayedStringBattle
thumb_func_end sub_80EA6FC
thumb_func_start sub_80EA78C
sub_80EA78C: @ 80EA78C
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EA78C
thumb_func_start sub_80EA798
sub_80EA798: @ 80EA798
push {lr}
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080EA7C2
ldr r0, _080EA7C8 @ =gUnknown_2022974
strh r1, [r0]
ldr r1, _080EA7CC @ =gUnknown_2022976
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
ldr r1, _080EA7D0 @ =gUnknown_3004FE0
ldr r0, _080EA7D4 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA7D8 @ =sub_80E7988
str r1, [r0]
_080EA7C2:
pop {r0}
bx r0
.align 2, 0
_080EA7C8: .4byte gUnknown_2022974
_080EA7CC: .4byte gUnknown_2022976
_080EA7D0: .4byte gUnknown_3004FE0
_080EA7D4: .4byte gActiveBattler
_080EA7D8: .4byte sub_80E7988
thumb_func_end sub_80EA798
thumb_func_start sub_80EA7DC
sub_80EA7DC: @ 80EA7DC
push {r4,lr}
ldr r0, _080EA800 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _080EA810
bl sub_8032CB4
ldr r1, _080EA804 @ =gUnknown_3004FE0
ldr r0, _080EA808 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EA80C @ =sub_80EA798
str r1, [r0]
b _080EA866
.align 2, 0
_080EA800: .4byte gBattleTypeFlags
_080EA804: .4byte gUnknown_3004FE0
_080EA808: .4byte gActiveBattler
_080EA80C: .4byte sub_80EA798
_080EA810:
ldr r4, _080EA824 @ =gBattleStruct
ldr r0, [r4]
adds r0, 0x95
ldrb r0, [r0]
cmp r0, 0
beq _080EA828
cmp r0, 0x1
beq _080EA83E
b _080EA866
.align 2, 0
_080EA824: .4byte gBattleStruct
_080EA828:
bl sub_8032CB4
ldr r1, [r4]
adds r1, 0x95
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x97
movs r1, 0x50
strb r1, [r0]
_080EA83E:
ldr r0, _080EA86C @ =gBattleStruct
ldr r1, [r0]
adds r1, 0x97
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
lsls r0, 24
cmp r0, 0
bne _080EA866
movs r0, 0x5
bl PlaySE
movs r2, 0x80
lsls r2, 1
movs r0, 0x1
movs r1, 0xA
bl EmitTwoReturnValues
bl WallyBufferExecCompleted
_080EA866:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EA86C: .4byte gBattleStruct
thumb_func_end sub_80EA7DC
thumb_func_start sub_80EA870
sub_80EA870: @ 80EA870
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _080EA8BC @ =gUnknown_3004FE0
ldr r2, _080EA8C0 @ =gActiveBattler
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _080EA8C4 @ =sub_80E7A70
str r1, [r0]
ldr r1, _080EA8C8 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
movs r3, 0
ldr r5, _080EA8CC @ =gUnknown_203B0DC
ldr r4, _080EA8D0 @ =gUnknown_2022BC4
_080EA89E:
adds r0, r3, r5
ldrb r1, [r2]
lsls r1, 9
adds r1, 0x1
adds r1, r3, r1
adds r1, r4
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0x2
ble _080EA89E
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080EA8BC: .4byte gUnknown_3004FE0
_080EA8C0: .4byte gActiveBattler
_080EA8C4: .4byte sub_80E7A70
_080EA8C8: .4byte gBattlerInMenuId
_080EA8CC: .4byte gUnknown_203B0DC
_080EA8D0: .4byte gUnknown_2022BC4
thumb_func_end sub_80EA870
thumb_func_start sub_80EA8D4
sub_80EA8D4: @ 80EA8D4
push {r4-r6,lr}
sub sp, 0x4
ldr r0, _080EA984 @ =TaskDummy
movs r1, 0xFF
bl CreateTask
ldr r3, _080EA988 @ =gUnknown_3004FFC
ldr r4, _080EA98C @ =gActiveBattler
ldrb r1, [r4]
adds r1, r3
strb r0, [r1]
ldr r5, _080EA990 @ =gTasks
ldrb r2, [r4]
adds r3, r2, r3
ldrb r0, [r3]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r5
ldr r5, _080EA994 @ =gUnknown_2022BC4
lsls r2, 9
adds r6, r5, 0x1
adds r2, r6
ldrb r2, [r2]
movs r0, 0xF
ands r0, r2
strh r0, [r1, 0x8]
ldr r3, _080EA998 @ =gBattleStruct
ldr r1, [r3]
adds r1, 0x49
ldrb r0, [r4]
lsls r0, 9
adds r0, r6
ldrb r0, [r0]
lsrs r0, 4
strb r0, [r1]
ldr r2, [r3]
adds r2, 0x8B
ldrb r0, [r4]
lsls r0, 9
adds r1, r5, 0x2
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
ldr r2, [r3]
adds r2, 0xAC
ldrb r0, [r4]
lsls r0, 9
adds r1, r5, 0x3
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
movs r2, 0
ldr r3, _080EA99C @ =gUnknown_203B0DC
_080EA940:
adds r0, r2, r3
ldrb r1, [r4]
lsls r1, 9
adds r1, 0x4
adds r1, r2, r1
adds r1, r5
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x2
ble _080EA940
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, _080EA9A0 @ =gUnknown_3004FE0
ldr r2, _080EA98C @ =gActiveBattler
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _080EA9A4 @ =sub_80E79B8
str r1, [r0]
ldr r1, _080EA9A8 @ =gBattlerInMenuId
ldrb r0, [r2]
strb r0, [r1]
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EA984: .4byte TaskDummy
_080EA988: .4byte gUnknown_3004FFC
_080EA98C: .4byte gActiveBattler
_080EA990: .4byte gTasks
_080EA994: .4byte gUnknown_2022BC4
_080EA998: .4byte gBattleStruct
_080EA99C: .4byte gUnknown_203B0DC
_080EA9A0: .4byte gUnknown_3004FE0
_080EA9A4: .4byte sub_80E79B8
_080EA9A8: .4byte gBattlerInMenuId
thumb_func_end sub_80EA8D4
thumb_func_start sub_80EA9AC
sub_80EA9AC: @ 80EA9AC
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EA9AC
thumb_func_start sub_80EA9B8
sub_80EA9B8: @ 80EA9B8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0
bl LoadBattleBarGfx
ldr r3, _080EAA30 @ =gUnknown_2022BC4
ldr r0, _080EAA34 @ =gActiveBattler
mov r9, r0
ldrb r4, [r0]
lsls r2, r4, 9
adds r0, r3, 0x2
adds r0, r2, r0
ldrb r1, [r0]
adds r3, 0x3
adds r2, r3
ldrb r0, [r2]
lsls r0, 8
orrs r1, r0
lsls r1, 16
asrs r7, r1, 16
ldr r0, _080EAA38 @ =0x00007fff
cmp r7, r0
beq _080EAA48
ldr r6, _080EAA3C @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r6
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r4, _080EAA40 @ =gPlayerParty
adds r0, r4
movs r1, 0x3A
bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
muls r0, r5
adds r0, r4
movs r1, 0x39
bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r1, _080EAA44 @ =gUnknown_3004FF0
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
bl SetBattleBarStruct
b _080EAA82
.align 2, 0
_080EAA30: .4byte gUnknown_2022BC4
_080EAA34: .4byte gActiveBattler
_080EAA38: .4byte 0x00007fff
_080EAA3C: .4byte gBattlerPartyIndexes
_080EAA40: .4byte gPlayerParty
_080EAA44: .4byte gUnknown_3004FF0
_080EAA48:
ldr r1, _080EAAA0 @ =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080EAAA4 @ =gPlayerParty
adds r0, r1
movs r1, 0x3A
bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r4, _080EAAA8 @ =gUnknown_3004FF0
adds r1, r0, r4
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
bl SetBattleBarStruct
mov r1, r9
ldrb r0, [r1]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
movs r2, 0
bl sub_8048440
_080EAA82:
ldr r1, _080EAAAC @ =gUnknown_3004FE0
ldr r0, _080EAAB0 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _080EAAB4 @ =sub_80E88C0
str r1, [r0]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080EAAA0: .4byte gBattlerPartyIndexes
_080EAAA4: .4byte gPlayerParty
_080EAAA8: .4byte gUnknown_3004FF0
_080EAAAC: .4byte gUnknown_3004FE0
_080EAAB0: .4byte gActiveBattler
_080EAAB4: .4byte sub_80E88C0
thumb_func_end sub_80EA9B8
thumb_func_start sub_80EAAB8
sub_80EAAB8: @ 80EAAB8
push {r4-r7,lr}
ldr r5, _080EAAE4 @ =gUnknown_2022BC4
ldr r6, _080EAAE8 @ =gActiveBattler
ldrb r0, [r6]
lsls r0, 9
adds r1, r5, 0x1
adds r0, r1
ldrb r7, [r0]
movs r0, 0x64
adds r1, r7, 0
muls r1, r0
ldr r0, _080EAAEC @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
cmp r0, 0x63
bls _080EAAF0
bl WallyBufferExecCompleted
b _080EAB3C
.align 2, 0
_080EAAE4: .4byte gUnknown_2022BC4
_080EAAE8: .4byte gActiveBattler
_080EAAEC: .4byte gPlayerParty
_080EAAF0:
movs r0, 0x1
bl LoadBattleBarGfx
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
ldrb r1, [r6]
lsls r1, 9
adds r0, r5, 0x2
adds r0, r1, r0
ldrb r4, [r0]
adds r0, r5, 0x3
adds r1, r0
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
ldr r0, _080EAB44 @ =sub_80E7E04
movs r1, 0xA
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _080EAB48 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
strh r7, [r1, 0x8]
strh r4, [r1, 0xA]
ldrb r0, [r6]
strh r0, [r1, 0xC]
ldr r1, _080EAB4C @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _080EAB50 @ =nullsub_81
str r1, [r0]
_080EAB3C:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080EAB44: .4byte sub_80E7E04
_080EAB48: .4byte gTasks
_080EAB4C: .4byte gUnknown_3004FE0
_080EAB50: .4byte nullsub_81
thumb_func_end sub_80EAAB8
thumb_func_start sub_80EAB54
sub_80EAB54: @ 80EAB54
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB54
thumb_func_start sub_80EAB60
sub_80EAB60: @ 80EAB60
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB60
thumb_func_start sub_80EAB6C
sub_80EAB6C: @ 80EAB6C
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB6C
thumb_func_start sub_80EAB78
sub_80EAB78: @ 80EAB78
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB78
thumb_func_start sub_80EAB84
sub_80EAB84: @ 80EAB84
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB84
thumb_func_start sub_80EAB90
sub_80EAB90: @ 80EAB90
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB90
thumb_func_start sub_80EAB9C
sub_80EAB9C: @ 80EAB9C
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAB9C
thumb_func_start sub_80EABA8
sub_80EABA8: @ 80EABA8
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABA8
thumb_func_start sub_80EABB4
sub_80EABB4: @ 80EABB4
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABB4
thumb_func_start sub_80EABC0
sub_80EABC0: @ 80EABC0
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABC0
thumb_func_start sub_80EABCC
sub_80EABCC: @ 80EABCC
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABCC
thumb_func_start sub_80EABD8
sub_80EABD8: @ 80EABD8
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABD8
thumb_func_start sub_80EABE4
sub_80EABE4: @ 80EABE4
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABE4
thumb_func_start sub_80EABF0
sub_80EABF0: @ 80EABF0
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABF0
thumb_func_start sub_80EABFC
sub_80EABFC: @ 80EABFC
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EABFC
thumb_func_start sub_80EAC08
sub_80EAC08: @ 80EAC08
push {r4,lr}
ldr r3, _080EAC30 @ =gSprites
ldr r2, _080EAC34 @ =gUnknown_2023D44
ldr r4, _080EAC38 @ =gActiveBattler
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _080EAC3C
bl WallyBufferExecCompleted
b _080EAC66
.align 2, 0
_080EAC30: .4byte gSprites
_080EAC34: .4byte gUnknown_2023D44
_080EAC38: .4byte gActiveBattler
_080EAC3C:
ldr r1, _080EAC6C @ =gUnknown_2024005
movs r0, 0x1
strb r0, [r1]
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x30]
ldrb r0, [r4]
bl DoHitAnimHealthboxEffect
ldr r1, _080EAC70 @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _080EAC74 @ =DoHitAnimBlinkSpriteEffect_3
str r1, [r0]
_080EAC66:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EAC6C: .4byte gUnknown_2024005
_080EAC70: .4byte gUnknown_3004FE0
_080EAC74: .4byte DoHitAnimBlinkSpriteEffect_3
thumb_func_end sub_80EAC08
thumb_func_start sub_80EAC78
sub_80EAC78: @ 80EAC78
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EAC78
thumb_func_start sub_80EAC84
sub_80EAC84: @ 80EAC84
push {lr}
ldr r2, _080EACAC @ =gUnknown_2022BC4
ldr r0, _080EACB0 @ =gActiveBattler
ldrb r1, [r0]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlaySE
bl WallyBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_080EACAC: .4byte gUnknown_2022BC4
_080EACB0: .4byte gActiveBattler
thumb_func_end sub_80EAC84
thumb_func_start sub_80EACB4
sub_80EACB4: @ 80EACB4
push {lr}
ldr r2, _080EACDC @ =gUnknown_2022BC4
ldr r0, _080EACE0 @ =gActiveBattler
ldrb r1, [r0]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayFanfare
bl WallyBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_080EACDC: .4byte gUnknown_2022BC4
_080EACE0: .4byte gActiveBattler
thumb_func_end sub_80EACB4
thumb_func_start sub_80EACE4
sub_80EACE4: @ 80EACE4
push {lr}
ldr r1, _080EAD14 @ =gBattlerPartyIndexes
ldr r0, _080EAD18 @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080EAD1C @ =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
bl PlayCry1
bl WallyBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_080EAD14: .4byte gBattlerPartyIndexes
_080EAD18: .4byte gActiveBattler
_080EAD1C: .4byte gPlayerParty
thumb_func_end sub_80EACE4
thumb_func_start sub_80EAD20
sub_80EAD20: @ 80EAD20
push {lr}
ldr r1, _080EAD48 @ =gUnknown_2022BC4
ldr r0, _080EAD4C @ =gActiveBattler
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
bl sub_80BC3A0
ldr r2, _080EAD50 @ =gUnknown_2023F4C
ldrh r0, [r2]
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
bl WallyBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_080EAD48: .4byte gUnknown_2022BC4
_080EAD4C: .4byte gActiveBattler
_080EAD50: .4byte gUnknown_2023F4C
thumb_func_end sub_80EAD20
thumb_func_start sub_80EAD54
sub_80EAD54: @ 80EAD54
push {r4-r7,lr}
ldr r0, _080EAEA0 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
bne _080EAD64
b _080EAEE4
_080EAD64:
ldr r6, _080EAEA4 @ =gUnknown_2023D44
ldr r7, _080EAEA8 @ =gActiveBattler
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, _080EAEAC @ =gSprites
adds r0, r5
bl oamt_add_pos2_onto_pos1
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x32
strh r1, [r0, 0x2E]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080EAEB0 @ =0x0000ffd8
strh r1, [r0, 0x32]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _080EAEB4 @ =sub_8075590
str r1, [r0]
ldrb r2, [r7]
adds r0, r2, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x38]
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080EAEB8 @ =sub_80335F8
bl StoreSpriteCallbackInData6
ldrb r0, [r7]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x1
bl StartSpriteAnim
ldr r0, _080EAEBC @ =0x0000d6f8
bl AllocSpritePalette
adds r4, r0, 0
lsls r4, 24
ldr r1, _080EAEC0 @ =gUnknown_8239FD4
ldr r0, _080EAEC4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
lsls r0, 3
adds r0, r1
ldr r0, [r0]
lsrs r4, 20
movs r2, 0x80
lsls r2, 1
adds r1, r4, r2
movs r2, 0x20
bl LoadCompressedPalette
ldrb r0, [r7]
adds r0, r6
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r4
strb r0, [r1, 0x5]
ldr r0, _080EAEC8 @ =sub_80EB0A8
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r4, _080EAECC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
ldrb r0, [r7]
strh r0, [r1, 0x8]
ldr r3, _080EAED0 @ =gUnknown_2024018
ldr r0, [r3]
ldrb r2, [r7]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080EAE84
ldr r0, _080EAED4 @ =gUnknown_2024000
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
ldr r1, _080EAED8 @ =sub_80491B0
str r1, [r0]
_080EAE84:
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r0, [r2, 0x9]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
ldr r1, _080EAEDC @ =gUnknown_3004FE0
ldrb r0, [r7]
lsls r0, 2
adds r0, r1
ldr r1, _080EAEE0 @ =nullsub_13
str r1, [r0]
b _080EAF18
.align 2, 0
_080EAEA0: .4byte gBattleTypeFlags
_080EAEA4: .4byte gUnknown_2023D44
_080EAEA8: .4byte gActiveBattler
_080EAEAC: .4byte gSprites
_080EAEB0: .4byte 0x0000ffd8
_080EAEB4: .4byte sub_8075590
_080EAEB8: .4byte sub_80335F8
_080EAEBC: .4byte 0x0000d6f8
_080EAEC0: .4byte gUnknown_8239FD4
_080EAEC4: .4byte gSaveBlock2Ptr
_080EAEC8: .4byte sub_80EB0A8
_080EAECC: .4byte gTasks
_080EAED0: .4byte gUnknown_2024018
_080EAED4: .4byte gUnknown_2024000
_080EAED8: .4byte sub_80491B0
_080EAEDC: .4byte gUnknown_3004FE0
_080EAEE0: .4byte nullsub_13
_080EAEE4:
ldr r0, _080EAF20 @ =gUnknown_2024018
ldr r1, [r0]
ldr r0, _080EAF24 @ =gActiveBattler
ldrb r3, [r0]
ldr r1, [r1, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080EAF14
ldr r2, _080EAF28 @ =gTasks
ldr r0, _080EAF2C @ =gUnknown_2024000
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, _080EAF30 @ =sub_80491B0
str r1, [r0]
_080EAF14:
bl WallyBufferExecCompleted
_080EAF18:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080EAF20: .4byte gUnknown_2024018
_080EAF24: .4byte gActiveBattler
_080EAF28: .4byte gTasks
_080EAF2C: .4byte gUnknown_2024000
_080EAF30: .4byte sub_80491B0
thumb_func_end sub_80EAD54
thumb_func_start sub_80EAF34
sub_80EAF34: @ 80EAF34
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
ldr r0, _080EB07C @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r6, 2
adds r0, r1
movs r1, 0
strh r1, [r0, 0x2]
ldr r0, _080EB080 @ =gBattlerPartyIndexes
lsls r2, r6, 1
adds r2, r0
ldr r0, _080EB084 @ =gUnknown_2022BC4
lsls r1, r6, 9
adds r0, 0x1
adds r1, r0
ldrb r0, [r1]
strh r0, [r2]
ldrh r1, [r2]
movs r0, 0x64
muls r0, r1
ldr r1, _080EB088 @ =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, _080EB08C @ =sub_8033E3C
bl CreateInvisibleSpriteWithCallback
ldr r1, _080EB090 @ =gUnknown_3004FFC
mov r9, r1
add r9, r6
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
bl GetBattlerPosition
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
ldr r0, _080EB094 @ =gMultiuseSpriteTemplate
mov r10, r0
adds r0, r6, 0
movs r1, 0x2
bl sub_8074480
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r6, 0
bl GetBankSpriteDefault_Y
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
bl sub_807685C
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r10
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
ldr r4, _080EB098 @ =gUnknown_2023D44
adds r4, r6, r4
strb r0, [r4]
ldr r5, _080EB09C @ =gSprites
mov r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r4]
strh r1, [r0, 0x30]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r6, [r0, 0x2E]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r8
strh r1, [r0, 0x32]
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, r6, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080EB0A0 @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _080EB0A4 @ =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFF
bl DoPokeballSendOutAnimation
mov r1, r9
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r5
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x2E]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EB07C: .4byte gUnknown_2024018
_080EB080: .4byte gBattlerPartyIndexes
_080EB084: .4byte gUnknown_2022BC4
_080EB088: .4byte gPlayerParty
_080EB08C: .4byte sub_8033E3C
_080EB090: .4byte gUnknown_3004FFC
_080EB094: .4byte gMultiuseSpriteTemplate
_080EB098: .4byte gUnknown_2023D44
_080EB09C: .4byte gSprites
_080EB0A0: .4byte gBattleMonForms
_080EB0A4: .4byte SpriteCallbackDummy
thumb_func_end sub_80EAF34
thumb_func_start sub_80EB0A8
sub_80EB0A8: @ 80EB0A8
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _080EB0C8 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0xA]
movs r3, 0xA
ldrsh r0, [r1, r3]
cmp r0, 0x1E
bgt _080EB0CC
adds r0, r2, 0x1
strh r0, [r1, 0xA]
b _080EB102
.align 2, 0
_080EB0C8: .4byte gTasks
_080EB0CC:
ldr r4, _080EB108 @ =gActiveBattler
ldrb r5, [r4]
ldrh r0, [r1, 0x8]
strb r0, [r4]
ldr r0, _080EB10C @ =gUnknown_2022BC4
ldrb r1, [r4]
lsls r2, r1, 9
adds r0, 0x1
adds r2, r0
ldr r0, _080EB110 @ =gBattlerPartyIndexes
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strb r0, [r2]
ldrb r0, [r4]
bl sub_80EAF34
ldr r1, _080EB114 @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _080EB118 @ =sub_80E7B4C
str r1, [r0]
strb r5, [r4]
adds r0, r6, 0
bl DestroyTask
_080EB102:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EB108: .4byte gActiveBattler
_080EB10C: .4byte gUnknown_2022BC4
_080EB110: .4byte gBattlerPartyIndexes
_080EB114: .4byte gUnknown_3004FE0
_080EB118: .4byte sub_80E7B4C
thumb_func_end sub_80EB0A8
thumb_func_start sub_80EB11C
sub_80EB11C: @ 80EB11C
push {r4,r5,lr}
ldr r1, _080EB144 @ =gUnknown_2022BC4
ldr r0, _080EB148 @ =gActiveBattler
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _080EB14C
adds r0, r2, 0
bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080EB14C
bl WallyBufferExecCompleted
b _080EB18A
.align 2, 0
_080EB144: .4byte gUnknown_2022BC4
_080EB148: .4byte gActiveBattler
_080EB14C:
ldr r0, _080EB190 @ =gUnknown_2024018
ldr r0, [r0]
ldr r5, _080EB194 @ =gActiveBattler
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
ldrb r0, [r5]
lsls r4, r0, 9
ldr r3, _080EB198 @ =gUnknown_2022BC8
adds r1, r4, r3
subs r2, r3, 0x3
adds r2, r4, r2
ldrb r2, [r2]
subs r3, 0x2
adds r4, r3
ldrb r3, [r4]
bl sub_8048D14
ldr r2, _080EB19C @ =gUnknown_2024000
ldrb r1, [r5]
adds r1, r2
strb r0, [r1]
bl WallyBufferExecCompleted
_080EB18A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080EB190: .4byte gUnknown_2024018
_080EB194: .4byte gActiveBattler
_080EB198: .4byte gUnknown_2022BC8
_080EB19C: .4byte gUnknown_2024000
thumb_func_end sub_80EB11C
thumb_func_start sub_80EB1A0
sub_80EB1A0: @ 80EB1A0
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EB1A0
thumb_func_start sub_80EB1AC
sub_80EB1AC: @ 80EB1AC
push {r4,lr}
ldr r4, _080EB1CC @ =gActiveBattler
ldrb r0, [r4]
movs r1, 0x1
bl dp11b_obj_free
ldrb r0, [r4]
movs r1, 0
bl dp11b_obj_free
bl WallyBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EB1CC: .4byte gActiveBattler
thumb_func_end sub_80EB1AC
thumb_func_start sub_80EB1D0
sub_80EB1D0: @ 80EB1D0
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EB1D0
thumb_func_start sub_80EB1DC
sub_80EB1DC: @ 80EB1DC
push {r4-r6,lr}
sub sp, 0x4
ldr r5, _080EB214 @ =gUnknown_2022BC4
ldr r6, _080EB218 @ =gActiveBattler
ldrb r2, [r6]
lsls r1, r2, 9
adds r0, r5, 0x1
adds r0, r1, r0
ldrb r3, [r0]
adds r0, r5, 0x2
adds r0, r1, r0
ldrb r4, [r0]
adds r5, 0x3
adds r1, r5
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
str r4, [sp]
adds r0, r2, 0
adds r1, r2, 0
bl TryHandleLaunchBattleTableAnimation
lsls r0, 24
cmp r0, 0
beq _080EB21C
bl WallyBufferExecCompleted
b _080EB228
.align 2, 0
_080EB214: .4byte gUnknown_2022BC4
_080EB218: .4byte gActiveBattler
_080EB21C:
ldr r0, _080EB230 @ =gUnknown_3004FE0
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _080EB234 @ =CompleteOnFinishedBattleAnimation_4
str r0, [r1]
_080EB228:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EB230: .4byte gUnknown_3004FE0
_080EB234: .4byte CompleteOnFinishedBattleAnimation_4
thumb_func_end sub_80EB1DC
thumb_func_start sub_80EB238
sub_80EB238: @ 80EB238
push {r4,lr}
ldr r1, _080EB26C @ =gUnknown_2022BC4
ldr r4, _080EB270 @ =gActiveBattler
ldrb r2, [r4]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
blt _080EB260
cmp r0, 0x1
bgt _080EB260
adds r0, r2, 0
movs r1, 0x1
bl dp11b_obj_free
ldrb r0, [r4]
movs r1, 0
bl dp11b_obj_free
_080EB260:
bl WallyBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EB26C: .4byte gUnknown_2022BC4
_080EB270: .4byte gActiveBattler
thumb_func_end sub_80EB238
thumb_func_start sub_80EB274
sub_80EB274: @ 80EB274
push {lr}
bl WallyBufferExecCompleted
pop {r0}
bx r0
thumb_func_end sub_80EB274
thumb_func_start sub_80EB280
sub_80EB280: @ 80EB280
push {r4,lr}
ldr r2, _080EB2C4 @ =gUnknown_2023E8A
ldr r1, _080EB2C8 @ =gUnknown_2022BC4
ldr r4, _080EB2CC @ =gActiveBattler
ldrb r0, [r4]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
strb r0, [r2]
movs r0, 0x5
bl FadeOutMapMusic
movs r0, 0x3
bl BeginFastPaletteFade
bl WallyBufferExecCompleted
ldr r0, _080EB2D0 @ =gBattleTypeFlags
ldr r0, [r0]
movs r1, 0x6
ands r0, r1
cmp r0, 0x2
bne _080EB2BC
ldr r0, _080EB2D4 @ =gUnknown_3004FE0
ldrb r1, [r4]
lsls r1, 2
adds r1, r0
ldr r0, _080EB2D8 @ =sub_80E7930
str r0, [r1]
_080EB2BC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080EB2C4: .4byte gUnknown_2023E8A
_080EB2C8: .4byte gUnknown_2022BC4
_080EB2CC: .4byte gActiveBattler
_080EB2D0: .4byte gBattleTypeFlags
_080EB2D4: .4byte gUnknown_3004FE0
_080EB2D8: .4byte sub_80E7930
thumb_func_end sub_80EB280
thumb_func_start nullsub_82
nullsub_82: @ 80EB2DC
bx lr
thumb_func_end nullsub_82
thumb_func_start sub_80EB2E0
sub_80EB2E0: @ 80EB2E0
adds r1, r0, 0
ldr r0, _080EB2F0 @ =gBattleStruct
ldr r0, [r0]
adds r0, 0x96
ldrb r0, [r0]
ands r0, r1
bx lr
.align 2, 0
_080EB2F0: .4byte gBattleStruct
thumb_func_end sub_80EB2E0
thumb_func_start sub_80EB2F4
sub_80EB2F4: @ 80EB2F4
lsls r0, 24
lsrs r0, 24
ldr r1, _080EB308 @ =gBattleStruct
ldr r1, [r1]
adds r1, 0x96
ldrb r2, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_080EB308: .4byte gBattleStruct
thumb_func_end sub_80EB2F4
thumb_func_start sub_80EB30C
sub_80EB30C: @ 80EB30C
push {r4-r6,lr}
sub sp, 0xC
movs r6, 0x1A
movs r5, 0x7
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x30
movs r2, 0
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x31
movs r2, 0x1
movs r3, 0xE
bl FillBgTilemapBufferRect
str r6, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x32
movs r2, 0x2
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x33
movs r2, 0x1C
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x34
movs r2, 0x1D
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x35
movs r2, 0
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x36
movs r2, 0x1
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x38
movs r2, 0x1C
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x39
movs r2, 0x1D
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x3A
movs r2, 0
movs r3, 0x10
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x3B
movs r2, 0x1
movs r3, 0x10
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x3C
movs r2, 0x1C
movs r3, 0x10
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x3D
movs r2, 0x1D
movs r3, 0x10
bl FillBgTilemapBufferRect
ldr r1, _080EB4F4 @ =0x0000083a
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0
movs r3, 0x11
bl FillBgTilemapBufferRect
ldr r1, _080EB4F8 @ =0x0000083b
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1
movs r3, 0x11
bl FillBgTilemapBufferRect
ldr r1, _080EB4FC @ =0x0000083c
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1C
movs r3, 0x11
bl FillBgTilemapBufferRect
ldr r1, _080EB500 @ =0x0000083d
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1D
movs r3, 0x11
bl FillBgTilemapBufferRect
ldr r1, _080EB504 @ =0x00000835
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0
movs r3, 0x12
bl FillBgTilemapBufferRect
ldr r1, _080EB508 @ =0x00000836
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1
movs r3, 0x12
bl FillBgTilemapBufferRect
ldr r1, _080EB50C @ =0x00000838
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1C
movs r3, 0x12
bl FillBgTilemapBufferRect
ldr r1, _080EB510 @ =0x00000839
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1D
movs r3, 0x12
bl FillBgTilemapBufferRect
movs r1, 0x83
lsls r1, 4
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0
movs r3, 0x13
bl FillBgTilemapBufferRect
ldr r1, _080EB514 @ =0x00000831
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1
movs r3, 0x13
bl FillBgTilemapBufferRect
ldr r1, _080EB518 @ =0x00000832
str r6, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x2
movs r3, 0x13
bl FillBgTilemapBufferRect
ldr r1, _080EB51C @ =0x00000833
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1C
movs r3, 0x13
bl FillBgTilemapBufferRect
ldr r1, _080EB520 @ =0x00000834
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r2, 0x1D
movs r3, 0x13
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080EB4F4: .4byte 0x0000083a
_080EB4F8: .4byte 0x0000083b
_080EB4FC: .4byte 0x0000083c
_080EB500: .4byte 0x0000083d
_080EB504: .4byte 0x00000835
_080EB508: .4byte 0x00000836
_080EB50C: .4byte 0x00000838
_080EB510: .4byte 0x00000839
_080EB514: .4byte 0x00000831
_080EB518: .4byte 0x00000832
_080EB51C: .4byte 0x00000833
_080EB520: .4byte 0x00000834
thumb_func_end sub_80EB30C
thumb_func_start sub_80EB524
sub_80EB524: @ 80EB524
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
movs r5, 0
movs r0, 0x1A
mov r8, r0
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x3
movs r2, 0
movs r3, 0xE
bl FillBgTilemapBufferRect
movs r6, 0x4
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x4
movs r2, 0x1
movs r3, 0xE
bl FillBgTilemapBufferRect
mov r0, r8
str r0, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x5
movs r2, 0x2
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x6
movs r2, 0x1C
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x7
movs r2, 0x1D
movs r3, 0xE
bl FillBgTilemapBufferRect
str r4, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x8
movs r2, 0
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x9
movs r2, 0x1
movs r3, 0xF
bl FillBgTilemapBufferRect
mov r0, r8
str r0, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0xA
movs r2, 0x2
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0xB
movs r2, 0x1C
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r6, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0xC
movs r2, 0x1D
movs r3, 0xF
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0xD
movs r2, 0
movs r3, 0x13
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0xE
movs r2, 0x1
movs r3, 0x13
bl FillBgTilemapBufferRect
mov r0, r8
str r0, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0xF
movs r2, 0x2
movs r3, 0x13
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x10
movs r2, 0x1C
movs r3, 0x13
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0x11
movs r2, 0x1D
movs r3, 0x13
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80EB524
.align 2, 0 @ Don't pad with nop.