Files
pokeemerald-jp/asm/battle_controller_recorded_player.s
2019-09-27 01:42:56 -04:00

6686 lines
119 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start nullsub_120
nullsub_120: @ 0x08189674
bx lr
.align 2, 0
thumb_func_end nullsub_120
thumb_func_start SetControllerToRecordedPlayer
SetControllerToRecordedPlayer: @ 0x08189678
ldr r1, _08189688
ldr r0, _0818968C
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _08189690
str r1, [r0]
bx lr
.align 2, 0
_08189688: .4byte 0x03005AC0
_0818968C: .4byte 0x02023D08
_08189690: .4byte 0x08189695
thumb_func_end SetControllerToRecordedPlayer
thumb_func_start RecordedPlayerBufferRunCommand
RecordedPlayerBufferRunCommand: @ 0x08189694
push {lr}
ldr r2, _081896C8
ldr r1, _081896CC
ldr r0, _081896D0
ldrb r3, [r0]
lsls r0, r3, #2
adds r0, r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, #0
beq _081896E0
ldr r0, _081896D4
lsls r1, r3, #9
adds r1, r1, r0
ldrb r0, [r1]
cmp r0, #0x38
bhi _081896DC
ldr r0, _081896D8
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
bl _call_via_r0
b _081896E0
.align 2, 0
_081896C8: .4byte 0x02023D0C
_081896CC: .4byte 0x082FACB4
_081896D0: .4byte 0x02023D08
_081896D4: .4byte 0x02022D08
_081896D8: .4byte 0x085D39D4
_081896DC:
bl RecordedPlayerBufferExecCompleted
_081896E0:
pop {r0}
bx r0
thumb_func_end RecordedPlayerBufferRunCommand
thumb_func_start sub_081896E4
sub_081896E4: @ 0x081896E4
push {lr}
ldr r2, _0818970C
ldr r1, _08189710
ldr r0, _08189714
ldrb r0, [r0]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _08189718
cmp r1, r0
bne _08189708
bl RecordedPlayerBufferExecCompleted
_08189708:
pop {r0}
bx r0
.align 2, 0
_0818970C: .4byte 0x020205AC
_08189710: .4byte 0x02023E88
_08189714: .4byte 0x02023D08
_08189718: .4byte 0x08007141
thumb_func_end sub_081896E4
thumb_func_start sub_0818971C
sub_0818971C: @ 0x0818971C
push {r4, r5, r6, lr}
ldr r6, _08189774
ldr r5, _08189778
ldr r4, _0818977C
ldrb r0, [r4]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r6, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, [r0]
ldr r0, _08189780
cmp r1, r0
bne _0818976C
movs r0, #0
bl sub_0805DBFC
ldrb r0, [r4]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
bl FreeSpriteOamMatrix
ldrb r0, [r4]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
bl DestroySprite
bl RecordedPlayerBufferExecCompleted
_0818976C:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08189774: .4byte 0x020205AC
_08189778: .4byte 0x02023E88
_0818977C: .4byte 0x02023D08
_08189780: .4byte 0x08007141
thumb_func_end sub_0818971C
thumb_func_start sub_08189784
sub_08189784: @ 0x08189784
push {r4, lr}
ldr r4, _081897C4
ldr r1, [r4]
ldr r3, _081897C8
ldrb r0, [r3]
ldr r2, [r1, #4]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r2
ldrb r0, [r1, #9]
subs r0, #1
strb r0, [r1, #9]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _081897BC
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #0
strb r1, [r0, #9]
bl RecordedPlayerBufferExecCompleted
_081897BC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081897C4: .4byte 0x02024174
_081897C8: .4byte 0x02023D08
thumb_func_end sub_08189784
thumb_func_start sub_081897CC
sub_081897CC: @ 0x081897CC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r6, #0
ldr r4, _08189824
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, r0, #0x18
cmp r0, #0
beq _081897E6
b _0818998C
_081897E6:
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _08189806
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _08189838
ldr r0, _08189828
ldr r0, [r0]
movs r1, #0x40
ands r0, r1
cmp r0, #0
beq _08189838
_08189806:
ldr r2, _0818982C
ldr r1, _08189830
ldrb r0, [r4]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _08189834
cmp r1, r0
bne _0818986E
b _08189874
.align 2, 0
_08189824: .4byte 0x02023D08
_08189828: .4byte 0x02022C90
_0818982C: .4byte 0x020205AC
_08189830: .4byte 0x03005AD0
_08189834: .4byte 0x08007141
_08189838:
ldr r2, _08189968
ldr r5, _0818996C
ldr r0, _08189970
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r4, [r0]
ldr r0, _08189974
cmp r4, r0
bne _0818986E
movs r0, #2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldr r0, [r0]
cmp r0, r4
bne _0818986E
movs r6, #1
_0818986E:
cmp r6, #0
bne _08189874
b _08189A44
_08189874:
ldr r0, _08189978
mov sb, r0
ldr r0, [r0]
ldr r5, _08189970
ldrb r2, [r5]
ldr r3, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r4, r0, r3
ldrb r1, [r4, #1]
movs r6, #1
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _08189896
b _08189A44
_08189896:
movs r1, #2
mov r8, r1
mov r1, r8
eors r1, r2
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #1]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _081898B2
b _08189A44
_081898B2:
ldrb r1, [r4]
movs r3, #0x7f
adds r0, r3, #0
ands r0, r1
strb r0, [r4]
mov r1, sb
ldr r0, [r1]
ldrb r2, [r5]
ldr r0, [r0, #4]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1, #1]
movs r4, #2
rsbs r4, r4, #0
adds r0, r4, #0
ands r0, r2
strb r0, [r1, #1]
mov r0, sb
ldr r2, [r0]
ldrb r0, [r5]
mov r1, r8
eors r1, r0
ldr r2, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
mov r1, sb
ldr r2, [r1]
ldrb r0, [r5]
mov r1, r8
eors r1, r0
ldr r2, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #1]
ands r4, r1
strb r4, [r0, #1]
ldr r4, _0818997C
adds r0, r4, #0
bl FreeSpriteTilesByTag
adds r0, r4, #0
bl FreeSpritePaletteByTag
ldr r7, _08189980
ldrb r1, [r5]
lsls r0, r1, #1
adds r0, r0, r7
ldrh r0, [r0]
movs r6, #0x64
muls r0, r6, r0
ldr r4, _08189984
adds r0, r0, r4
bl HandleLowHpMusicChange
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _0818994E
ldrb r0, [r5]
mov r1, r8
eors r1, r0
lsls r0, r1, #1
adds r0, r0, r7
ldrh r0, [r0]
muls r0, r6, r0
adds r0, r0, r4
bl HandleLowHpMusicChange
_0818994E:
mov r1, sb
ldr r0, [r1]
ldrb r1, [r5]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #3
strb r1, [r0, #9]
ldr r1, _08189988
ldrb r0, [r5]
b _08189A3C
.align 2, 0
_08189968: .4byte 0x020205AC
_0818996C: .4byte 0x03005AD0
_08189970: .4byte 0x02023D08
_08189974: .4byte 0x08007141
_08189978: .4byte 0x02024174
_0818997C: .4byte 0x000027F9
_08189980: .4byte 0x02023D12
_08189984: .4byte 0x02024190
_08189988: .4byte 0x03005AC0
_0818998C:
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _081899AC
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _081899DC
ldr r0, _081899CC
ldr r0, [r0]
movs r1, #0x40
ands r0, r1
cmp r0, #0
beq _081899DC
_081899AC:
ldr r2, _081899D0
ldr r1, _081899D4
ldrb r0, [r4]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _081899D8
cmp r1, r0
bne _08189A12
b _08189A10
.align 2, 0
_081899CC: .4byte 0x02022C90
_081899D0: .4byte 0x020205AC
_081899D4: .4byte 0x03005AD0
_081899D8: .4byte 0x08007141
_081899DC:
ldr r2, _08189A50
ldr r5, _08189A54
ldr r0, _08189A58
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r4, [r0]
ldr r0, _08189A5C
cmp r4, r0
bne _08189A12
movs r0, #2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldr r0, [r0]
cmp r0, r4
bne _08189A12
_08189A10:
movs r6, #1
_08189A12:
bl IsCryPlayingOrClearCrySongs
lsls r0, r0, #0x18
cmp r0, #0
beq _08189A1E
movs r6, #0
_08189A1E:
cmp r6, #0
beq _08189A44
ldr r0, _08189A60
ldr r0, [r0]
ldr r3, _08189A58
ldrb r1, [r3]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #3
strb r1, [r0, #9]
ldr r1, _08189A64
ldrb r0, [r3]
_08189A3C:
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _08189A68
str r1, [r0]
_08189A44:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08189A50: .4byte 0x020205AC
_08189A54: .4byte 0x03005AD0
_08189A58: .4byte 0x02023D08
_08189A5C: .4byte 0x08007141
_08189A60: .4byte 0x02024174
_08189A64: .4byte 0x03005AC0
_08189A68: .4byte 0x08189785
thumb_func_end sub_081897CC
thumb_func_start sub_08189A6C
sub_08189A6C: @ 0x08189A6C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r0, #0
mov sl, r0
ldr r4, _08189C48
ldrb r0, [r4]
bl GetBattlerPosition
lsls r0, r0, #0x18
cmp r0, #0
bne _08189AEA
ldr r5, _08189C4C
ldr r0, [r5]
ldrb r2, [r4]
ldr r1, [r0, #4]
lsls r3, r2, #1
adds r0, r3, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r6, #0x88
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _08189AB8
ldr r0, _08189C50
adds r0, r3, r0
ldrh r1, [r0]
movs r0, #0x64
muls r1, r0, r1
ldr r0, _08189C54
adds r1, r1, r0
adds r0, r2, #0
bl sub_08172CD4
_08189AB8:
ldr r2, [r5]
ldrb r1, [r4]
movs r0, #2
adds r3, r0, #0
eors r3, r1
ldr r1, [r2, #4]
lsls r2, r3, #1
adds r0, r2, r3
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _08189AEA
ldr r0, _08189C50
adds r0, r2, r0
ldrh r1, [r0]
movs r0, #0x64
muls r1, r0, r1
ldr r0, _08189C54
adds r1, r1, r0
adds r0, r3, #0
bl sub_08172CD4
_08189AEA:
ldr r3, _08189C4C
ldr r0, [r3]
ldr r2, _08189C48
ldrb r5, [r2]
ldr r4, [r0, #4]
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #2
adds r6, r0, r4
ldrb r1, [r6]
movs r0, #8
mov ip, r0
ands r0, r1
mov sb, r2
mov r8, r3
cmp r0, #0
bne _08189BCE
movs r7, #2
adds r1, r7, #0
eors r1, r5
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0]
mov r0, ip
ands r0, r1
cmp r0, #0
bne _08189BCE
ldrb r1, [r6, #1]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08189BB0
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _08189B80
ldr r0, _08189C58
ldr r0, [r0]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _08189B80
ldr r4, _08189C5C
mov r1, sb
ldrb r0, [r1]
adds r1, r7, #0
eors r1, r0
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _08189C50
lsls r1, r1, #1
adds r1, r1, r2
ldrh r2, [r1]
movs r1, #0x64
muls r1, r2, r1
ldr r2, _08189C54
adds r1, r1, r2
movs r2, #0
bl UpdateHealthboxAttribute
mov r1, sb
ldrb r0, [r1]
eors r0, r7
bl sub_08076320
mov r1, sb
ldrb r0, [r1]
eors r0, r7
adds r0, r0, r4
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
_08189B80:
ldr r5, _08189C5C
ldr r4, _08189C48
ldrb r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, _08189C50
lsls r1, r1, #1
adds r1, r1, r2
ldrh r2, [r1]
movs r1, #0x64
muls r1, r2, r1
ldr r2, _08189C54
adds r1, r1, r2
movs r2, #0
bl UpdateHealthboxAttribute
ldrb r0, [r4]
bl sub_08076320
ldrb r0, [r4]
adds r0, r0, r5
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
_08189BB0:
ldr r4, _08189C4C
ldr r0, [r4]
ldr r3, _08189C48
ldrb r1, [r3]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #1]
movs r2, #0x80
orrs r1, r2
strb r1, [r0, #1]
mov sb, r3
mov r8, r4
_08189BCE:
mov r1, r8
ldr r0, [r1]
mov r1, sb
ldrb r2, [r1]
ldr r3, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #1]
movs r0, #0xc0
ands r0, r1
cmp r0, #0x80
bne _08189C8E
movs r1, #2
eors r1, r2
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #1]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _08189C8E
bl IsCryPlayingOrClearCrySongs
lsls r0, r0, #0x18
cmp r0, #0
bne _08189C8E
mov r1, r8
ldr r0, [r1]
mov r1, sb
ldrb r2, [r1]
ldr r1, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0, #1]
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _08189C70
ldr r0, _08189C58
ldr r0, [r0]
movs r1, #0x42
ands r0, r1
cmp r0, #0x42
bne _08189C64
adds r0, r2, #0
bl GetBattlerPosition
lsls r0, r0, #0x18
cmp r0, #0
bne _08189C70
ldr r0, _08189C60
bl m4aMPlayContinue
b _08189C70
.align 2, 0
_08189C48: .4byte 0x02023D08
_08189C4C: .4byte 0x02024174
_08189C50: .4byte 0x02023D12
_08189C54: .4byte 0x02024190
_08189C58: .4byte 0x02022C90
_08189C5C: .4byte 0x03005AD0
_08189C60: .4byte 0x030074D0
_08189C64:
ldr r0, _08189D64
ldr r1, _08189D68
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_08189C70:
ldr r0, _08189D6C
ldr r2, [r0]
ldr r0, _08189D70
ldrb r1, [r0]
ldr r2, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #1]
movs r2, #0x20
orrs r1, r2
strb r1, [r0, #1]
movs r0, #1
mov sl, r0
_08189C8E:
mov r1, sl
cmp r1, #0
beq _08189D56
ldr r7, _08189D74
ldr r6, _08189D78
ldr r5, _08189D70
ldrb r3, [r5]
adds r0, r3, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r4, r7, #0
adds r4, #0x1c
adds r0, r0, r4
ldr r2, [r0]
ldr r0, _08189D7C
cmp r2, r0
bne _08189D56
ldr r0, _08189D80
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r0, [r0]
cmp r0, r2
bne _08189D56
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _08189CF4
ldr r0, _08189D84
ldr r0, [r0]
movs r1, #0x40
ands r0, r1
cmp r0, #0
bne _08189CF4
ldrb r1, [r5]
movs r0, #2
eors r0, r1
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r7
bl DestroySprite
_08189CF4:
ldr r1, _08189D78
ldr r4, _08189D70
ldrb r0, [r4]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _08189D74
adds r0, r0, r1
bl DestroySprite
ldr r3, _08189D6C
ldr r0, [r3]
ldr r2, [r0, #8]
ldrb r1, [r2, #9]
movs r0, #2
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #9]
ldr r0, [r3]
ldrb r2, [r4]
ldr r0, [r0, #4]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1, #1]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #1]
ldr r0, [r3]
ldrb r2, [r4]
ldr r0, [r0, #4]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1, #1]
movs r0, #0x7f
ands r0, r2
strb r0, [r1, #1]
ldr r1, _08189D88
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _08189D8C
str r1, [r0]
_08189D56:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08189D64: .4byte 0x030074D0
_08189D68: .4byte 0x0000FFFF
_08189D6C: .4byte 0x02024174
_08189D70: .4byte 0x02023D08
_08189D74: .4byte 0x020205AC
_08189D78: .4byte 0x03005ADC
_08189D7C: .4byte 0x08007141
_08189D80: .4byte 0x02023E88
_08189D84: .4byte 0x02022C90
_08189D88: .4byte 0x03005AC0
_08189D8C: .4byte 0x081897CD
thumb_func_end sub_08189A6C
thumb_func_start RecordedPlayerHandleBallThrowAnim
RecordedPlayerHandleBallThrowAnim: @ 0x08189D90
push {lr}
ldr r2, _08189DC4
ldr r1, _08189DC8
ldr r0, _08189DCC
ldrb r0, [r0]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r0, r2
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
lsls r0, r0, #0x1b
cmp r0, #0
bge _08189DBE
movs r2, #0x24
ldrsh r0, [r1, r2]
cmp r0, #0
bne _08189DBE
bl RecordedPlayerBufferExecCompleted
_08189DBE:
pop {r0}
bx r0
.align 2, 0
_08189DC4: .4byte 0x020205AC
_08189DC8: .4byte 0x02023E88
_08189DCC: .4byte 0x02023D08
thumb_func_end RecordedPlayerHandleBallThrowAnim
thumb_func_start sub_08189DD0
sub_08189DD0: @ 0x08189DD0
push {r4, r5, r6, lr}
ldr r5, _08189E10
ldrb r0, [r5]
ldr r6, _08189E14
adds r1, r0, r6
ldrb r1, [r1]
movs r2, #0
movs r3, #0
bl MoveBattleBar
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldrb r0, [r5]
adds r0, r0, r6
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
lsls r4, r4, #0x10
asrs r1, r4, #0x10
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _08189E18
ldrb r0, [r5]
adds r0, r0, r6
ldrb r0, [r0]
movs r2, #0
bl sub_080726F4
b _08189E32
.align 2, 0
_08189E10: .4byte 0x02023D08
_08189E14: .4byte 0x03005AD0
_08189E18:
ldr r2, _08189E38
ldrb r1, [r5]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
movs r0, #0x64
muls r0, r2, r0
ldr r2, _08189E3C
adds r0, r0, r2
bl HandleLowHpMusicChange
bl RecordedPlayerBufferExecCompleted
_08189E32:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08189E38: .4byte 0x02023D12
_08189E3C: .4byte 0x02024190
thumb_func_end sub_08189DD0
thumb_func_start sub_08189E40
sub_08189E40: @ 0x08189E40
push {r4, r5, r6, lr}
ldr r6, _08189EC4
ldr r5, _08189EC8
ldr r4, _08189ECC
ldrb r2, [r4]
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
movs r3, #0x22
ldrsh r1, [r0, r3]
movs r3, #0x26
ldrsh r0, [r0, r3]
adds r1, r1, r0
cmp r1, #0xa0
ble _08189EBC
ldr r1, _08189ED0
lsls r0, r2, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _08189ED4
adds r0, r0, r1
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl sub_0805DB50
ldrb r0, [r4]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
ldrb r0, [r0, #3]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1b
bl FreeOamMatrix
ldrb r0, [r4]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r6
bl DestroySprite
ldr r1, _08189ED8
ldrb r0, [r4]
adds r0, r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted
_08189EBC:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08189EC4: .4byte 0x020205AC
_08189EC8: .4byte 0x02023E88
_08189ECC: .4byte 0x02023D08
_08189ED0: .4byte 0x02023D12
_08189ED4: .4byte 0x02024190
_08189ED8: .4byte 0x03005AD0
thumb_func_end sub_08189E40
thumb_func_start sub_08189EDC
sub_08189EDC: @ 0x08189EDC
push {r4, r5, r6, lr}
ldr r0, _08189F38
ldr r0, [r0]
ldr r6, _08189F3C
ldrb r2, [r6]
ldr r1, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _08189F30
ldr r5, _08189F40
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _08189F44
adds r0, r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r1, _08189F48
ldrb r0, [r6]
adds r0, r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted
_08189F30:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08189F38: .4byte 0x02024174
_08189F3C: .4byte 0x02023D08
_08189F40: .4byte 0x02023E88
_08189F44: .4byte 0x020205AC
_08189F48: .4byte 0x03005AD0
thumb_func_end sub_08189EDC
thumb_func_start RecordedPlayerHandleChosenMonReturnValue
RecordedPlayerHandleChosenMonReturnValue: @ 0x08189F4C
push {lr}
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _08189F5E
bl RecordedPlayerBufferExecCompleted
_08189F5E:
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleChosenMonReturnValue
thumb_func_start RecordedPlayerHandleHitAnimation
RecordedPlayerHandleHitAnimation: @ 0x08189F64
push {r4, lr}
ldr r1, _08189FA0
ldr r0, _08189FA4
ldrb r0, [r0]
adds r0, r0, r1
ldrb r1, [r0]
ldr r2, _08189FA8
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r4, r0, r2
movs r1, #0x30
ldrsh r0, [r4, r1]
cmp r0, #0x20
bne _08189FB0
movs r3, #0
movs r0, #0
strh r0, [r4, #0x30]
adds r2, r4, #0
adds r2, #0x3e
ldrb r1, [r2]
subs r0, #5
ands r0, r1
strb r0, [r2]
ldr r0, _08189FAC
strb r3, [r0]
bl RecordedPlayerBufferExecCompleted
b _08189FDA
.align 2, 0
_08189FA0: .4byte 0x02023E88
_08189FA4: .4byte 0x02023D08
_08189FA8: .4byte 0x020205AC
_08189FAC: .4byte 0x0202415D
_08189FB0:
ldrh r0, [r4, #0x30]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _08189FD4
adds r3, r4, #0
adds r3, #0x3e
ldrb r2, [r3]
lsls r0, r2, #0x1d
lsrs r0, r0, #0x1f
movs r1, #1
eors r1, r0
lsls r1, r1, #2
movs r0, #5
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_08189FD4:
ldrh r0, [r4, #0x30]
adds r0, #1
strh r0, [r4, #0x30]
_08189FDA:
pop {r4}
pop {r0}
bx r0
thumb_func_end RecordedPlayerHandleHitAnimation
thumb_func_start sub_08189FE0
sub_08189FE0: @ 0x08189FE0
push {r4, lr}
ldr r2, _0818A038
ldr r0, _0818A03C
ldr r4, _0818A040
ldrb r3, [r4]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _0818A044
cmp r1, r0
bne _0818A032
adds r0, r3, #0
bl CopyBattleSpriteInvisibility
ldr r0, _0818A048
ldr r0, [r0]
ldrb r2, [r4]
ldr r1, [r0]
lsls r0, r2, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0818A026
adds r0, r2, #0
adds r1, r2, #0
movs r3, #6
bl InitAndLaunchSpecialAnimation
_0818A026:
ldr r0, _0818A04C
ldrb r1, [r4]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, _0818A050
str r0, [r1]
_0818A032:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818A038: .4byte 0x020205AC
_0818A03C: .4byte 0x03005AD0
_0818A040: .4byte 0x02023D08
_0818A044: .4byte 0x08007141
_0818A048: .4byte 0x02024174
_0818A04C: .4byte 0x03005AC0
_0818A050: .4byte 0x0818A055
thumb_func_end sub_08189FE0
thumb_func_start sub_0818A054
sub_0818A054: @ 0x0818A054
push {lr}
ldr r0, _0818A094
ldr r1, [r0]
ldr r0, _0818A098
ldrb r3, [r0]
ldr r1, [r1, #4]
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _0818A090
ldr r2, _0818A09C
ldr r0, _0818A0A0
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, [r0]
ldr r0, _0818A0A4
cmp r1, r0
bne _0818A090
bl RecordedPlayerBufferExecCompleted
_0818A090:
pop {r0}
bx r0
.align 2, 0
_0818A094: .4byte 0x02024174
_0818A098: .4byte 0x02023D08
_0818A09C: .4byte 0x020205AC
_0818A0A0: .4byte 0x02023E88
_0818A0A4: .4byte 0x08007141
thumb_func_end sub_0818A054
thumb_func_start sub_0818A0A8
sub_0818A0A8: @ 0x0818A0A8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r3, _0818A170
ldr r0, [r3]
ldr r7, _0818A174
ldrb r1, [r7]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r2, r0, r2
ldrb r1, [r2, #1]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0818A164
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
ldr r0, [r3]
ldrb r2, [r7]
ldr r0, [r0, #4]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1, #1]
movs r0, #2
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #1]
ldr r4, _0818A178
adds r0, r4, #0
bl FreeSpriteTilesByTag
adds r0, r4, #0
bl FreeSpritePaletteByTag
ldr r0, _0818A17C
movs r1, #0xa
bl CreateTask
ldr r0, _0818A180
mov r8, r0
ldrb r1, [r7]
lsls r0, r1, #1
add r0, r8
ldrh r0, [r0]
movs r6, #0x64
muls r0, r6, r0
ldr r5, _0818A184
adds r0, r0, r5
bl HandleLowHpMusicChange
ldr r1, _0818A188
ldrb r0, [r7]
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0818A18C
adds r0, r0, r1
movs r1, #0
bl StartSpriteAnim
ldr r4, _0818A190
ldrb r1, [r7]
adds r0, r1, r4
ldrb r0, [r0]
lsls r1, r1, #1
add r1, r8
ldrh r1, [r1]
muls r1, r6, r1
adds r1, r1, r5
movs r2, #0
bl UpdateHealthboxAttribute
ldrb r0, [r7]
bl sub_08076320
ldrb r0, [r7]
adds r0, r0, r4
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
ldr r1, _0818A194
ldrb r0, [r7]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818A198
str r1, [r0]
_0818A164:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0818A170: .4byte 0x02024174
_0818A174: .4byte 0x02023D08
_0818A178: .4byte 0x000027F9
_0818A17C: .4byte 0x08058D11
_0818A180: .4byte 0x02023D12
_0818A184: .4byte 0x02024190
_0818A188: .4byte 0x02023E88
_0818A18C: .4byte 0x020205AC
_0818A190: .4byte 0x03005AD0
_0818A194: .4byte 0x03005AC0
_0818A198: .4byte 0x08189FE1
thumb_func_end sub_0818A0A8
thumb_func_start sub_0818A19C
sub_0818A19C: @ 0x0818A19C
push {r4, r5, r6, lr}
ldr r6, _0818A21C
ldr r0, [r6]
ldr r4, _0818A220
ldrb r2, [r4]
ldr r1, [r0, #4]
lsls r3, r2, #1
adds r0, r3, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0x88
ands r0, r1
cmp r0, #0
bne _0818A1CE
ldr r0, _0818A224
adds r0, r3, r0
ldrh r1, [r0]
movs r0, #0x64
muls r1, r0, r1
ldr r0, _0818A228
adds r1, r1, r0
adds r0, r2, #0
bl sub_08172CD4
_0818A1CE:
ldr r5, _0818A22C
ldr r0, _0818A230
ldrb r2, [r4]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r3, r0, #2
adds r0, r5, #0
adds r0, #0x1c
adds r0, r3, r0
ldr r1, [r0]
ldr r0, _0818A234
cmp r1, r0
bne _0818A214
ldr r0, [r6]
ldr r1, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #8
ands r0, r1
cmp r0, #0
bne _0818A214
adds r0, r3, r5
bl DestroySprite
ldr r1, _0818A238
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818A23C
str r1, [r0]
_0818A214:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818A21C: .4byte 0x02024174
_0818A220: .4byte 0x02023D08
_0818A224: .4byte 0x02023D12
_0818A228: .4byte 0x02024190
_0818A22C: .4byte 0x020205AC
_0818A230: .4byte 0x03005ADC
_0818A234: .4byte 0x08007141
_0818A238: .4byte 0x03005AC0
_0818A23C: .4byte 0x0818A0A9
thumb_func_end sub_0818A19C
thumb_func_start RecordedPlayerBufferExecCompleted
RecordedPlayerBufferExecCompleted: @ 0x0818A240
push {r4, lr}
sub sp, #4
ldr r1, _0818A280
ldr r4, _0818A284
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818A288
str r1, [r0]
ldr r0, _0818A28C
ldr r0, [r0]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _0818A294
bl GetMultiplayerId
mov r1, sp
strb r0, [r1]
movs r0, #2
movs r1, #4
mov r2, sp
bl PrepareBufferDataTransferLink
ldr r1, _0818A290
ldrb r0, [r4]
lsls r0, r0, #9
adds r0, r0, r1
movs r1, #0x38
strb r1, [r0]
b _0818A2A6
.align 2, 0
_0818A280: .4byte 0x03005AC0
_0818A284: .4byte 0x02023D08
_0818A288: .4byte 0x08189695
_0818A28C: .4byte 0x02022C90
_0818A290: .4byte 0x02022D08
_0818A294:
ldr r2, _0818A2B0
ldr r1, _0818A2B4
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
ldr r0, [r2]
bics r0, r1
str r0, [r2]
_0818A2A6:
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818A2B0: .4byte 0x02023D0C
_0818A2B4: .4byte 0x082FACB4
thumb_func_end RecordedPlayerBufferExecCompleted
thumb_func_start RecordedPlayerHandleGetRawMonData
RecordedPlayerHandleGetRawMonData: @ 0x0818A2B8
push {lr}
ldr r0, _0818A2E0
ldr r2, [r0]
ldr r0, _0818A2E4
ldrb r1, [r0]
ldr r2, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _0818A2DA
bl RecordedPlayerBufferExecCompleted
_0818A2DA:
pop {r0}
bx r0
.align 2, 0
_0818A2E0: .4byte 0x02024174
_0818A2E4: .4byte 0x02023D08
thumb_func_end RecordedPlayerHandleGetRawMonData
thumb_func_start RecordedPlayerHandleOneReturnValue
RecordedPlayerHandleOneReturnValue: @ 0x0818A2E8
push {lr}
ldr r0, _0818A310
ldr r2, [r0]
ldr r0, _0818A314
ldrb r1, [r0]
ldr r2, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0]
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _0818A30A
bl RecordedPlayerBufferExecCompleted
_0818A30A:
pop {r0}
bx r0
.align 2, 0
_0818A310: .4byte 0x02024174
_0818A314: .4byte 0x02023D08
thumb_func_end RecordedPlayerHandleOneReturnValue
thumb_func_start RecordedPlayerHandleGetMonData
RecordedPlayerHandleGetMonData: @ 0x0818A318
push {r4, r5, r6, lr}
sub sp, #0x100
movs r6, #0
ldr r1, _0818A344
ldr r0, _0818A348
ldrb r2, [r0]
lsls r0, r2, #9
adds r1, #2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, #0
bne _0818A350
ldr r0, _0818A34C
lsls r1, r2, #1
adds r1, r1, r0
ldrb r0, [r1]
mov r1, sp
bl CopyRecordedPlayerMonData
adds r6, r0, #0
b _0818A372
.align 2, 0
_0818A344: .4byte 0x02022D08
_0818A348: .4byte 0x02023D08
_0818A34C: .4byte 0x02023D12
_0818A350:
ldrb r4, [r1]
movs r5, #0
_0818A354:
movs r0, #1
ands r0, r4
cmp r0, #0
beq _0818A36A
lsls r0, r5, #0x18
lsrs r0, r0, #0x18
mov r2, sp
adds r1, r2, r6
bl CopyRecordedPlayerMonData
adds r6, r6, r0
_0818A36A:
lsrs r4, r4, #1
adds r5, #1
cmp r5, #5
ble _0818A354
_0818A372:
lsls r1, r6, #0x10
lsrs r1, r1, #0x10
movs r0, #1
mov r2, sp
bl BtlController_EmitDataTransfer
bl RecordedPlayerBufferExecCompleted
add sp, #0x100
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleGetMonData
thumb_func_start CopyRecordedPlayerMonData
CopyRecordedPlayerMonData: @ 0x0818A38C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x90
adds r7, r1, #0
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r6, #0
ldr r2, _0818A3C0
ldr r3, _0818A3C4
ldrb r0, [r3]
lsls r0, r0, #9
adds r1, r2, #1
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0x3b
bls _0818A3B6
bl _0818AB22
_0818A3B6:
lsls r0, r0, #2
ldr r1, _0818A3C8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0818A3C0: .4byte 0x02022D08
_0818A3C4: .4byte 0x02023D08
_0818A3C8: .4byte 0x0818A3CC
_0818A3CC: @ jump table
.4byte _0818A4BC @ case 0
.4byte _0818A6E0 @ case 1
.4byte _0818A6F0 @ case 2
.4byte _0818A700 @ case 3
.4byte _0818A768 @ case 4
.4byte _0818A768 @ case 5
.4byte _0818A768 @ case 6
.4byte _0818A768 @ case 7
.4byte _0818A784 @ case 8
.4byte _0818A7C0 @ case 9
.4byte _0818A7C0 @ case 10
.4byte _0818A7C0 @ case 11
.4byte _0818A7C0 @ case 12
.4byte _0818AB22 @ case 13
.4byte _0818AB22 @ case 14
.4byte _0818AB22 @ case 15
.4byte _0818AB22 @ case 16
.4byte _0818A7DC @ case 17
.4byte _0818A7EC @ case 18
.4byte _0818A81C @ case 19
.4byte _0818A82C @ case 20
.4byte _0818A83C @ case 21
.4byte _0818A84C @ case 22
.4byte _0818A85C @ case 23
.4byte _0818A86C @ case 24
.4byte _0818A87C @ case 25
.4byte _0818A88C @ case 26
.4byte _0818A89C @ case 27
.4byte _0818A8AC @ case 28
.4byte _0818A8BC @ case 29
.4byte _0818A8CC @ case 30
.4byte _0818A8DC @ case 31
.4byte _0818A92C @ case 32
.4byte _0818A93C @ case 33
.4byte _0818A94C @ case 34
.4byte _0818A95C @ case 35
.4byte _0818A96C @ case 36
.4byte _0818A97C @ case 37
.4byte _0818A98C @ case 38
.4byte _0818A99C @ case 39
.4byte _0818A9AC @ case 40
.4byte _0818A9E0 @ case 41
.4byte _0818A9F0 @ case 42
.4byte _0818AA00 @ case 43
.4byte _0818AA10 @ case 44
.4byte _0818AA20 @ case 45
.4byte _0818AA30 @ case 46
.4byte _0818AA40 @ case 47
.4byte _0818AA50 @ case 48
.4byte _0818AA70 @ case 49
.4byte _0818AA80 @ case 50
.4byte _0818AA90 @ case 51
.4byte _0818AAA0 @ case 52
.4byte _0818AAB0 @ case 53
.4byte _0818AAC0 @ case 54
.4byte _0818AAD0 @ case 55
.4byte _0818AAE0 @ case 56
.4byte _0818AAF0 @ case 57
.4byte _0818AB00 @ case 58
.4byte _0818AB10 @ case 59
_0818A4BC:
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818A6D0
adds r4, 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 sb, r0
movs r1, #0x3b
add r1, sp
mov sl, 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, #5
str r2, [sp, #0x84]
adds r0, #0x12
str r0, [sp, #0x88]
mov r8, r4
add r4, sp, #0xc
_0818A508:
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, sb
adds r1, r2, r6
strb r0, [r1]
adds r4, #2
adds r6, #1
cmp r6, #3
ble _0818A508
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818A6D0
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x15
bl GetMonData
mov r1, sl
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
rsbs r1, r1, #0
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, r0, #5
ldrh r2, [r3, #0x14]
ldr r1, _0818A6D4
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, r0, #2
ldrb r2, [r3, #0x15]
movs r1, #0x7d
rsbs r1, r1, #0
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, r1, #0xf
ldr r0, [sp, #0x14]
ldr r2, _0818A6D8
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, r0, #4
ldrh r2, [r3, #0x16]
ldr r1, _0818A6DC
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, r0, #1
ldrb r2, [r3, #0x17]
movs r1, #0x3f
rsbs r1, r1, #0
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, #2]
adds r0, r4, #0
movs r1, #0x3c
bl GetMonData
mov r1, sp
strh r0, [r1, #4]
adds r0, r4, #0
movs r1, #0x3d
bl GetMonData
mov r1, sp
strh r0, [r1, #6]
adds r0, r4, #0
movs r1, #0x3e
bl GetMonData
mov r1, sp
strh r0, [r1, #8]
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, #1
ands r0, r1
lsls r0, r0, #6
ldrb r2, [r3, #0x17]
movs r1, #0x41
rsbs r1, r1, #0
ands r1, r2
orrs r1, r0
strb r1, [r3, #0x17]
adds r0, r4, #0
movs r1, #0x2e
bl GetMonData
mov r3, sp
lsls r0, 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, #1
bl GetMonData
str r0, [sp, #0x54]
adds r0, r4, #0
movs r1, #2
ldr r2, [sp, #0x8c]
bl GetMonData
ldr r0, [sp, #0x84]
ldr r1, [sp, #0x8c]
bl StringCopy10
adds r0, r4, #0
movs r1, #7
ldr r2, [sp, #0x88]
bl GetMonData
mov r2, sp
movs r6, #0
_0818A6C0:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, #1
cmp r6, #0x57
bls _0818A6C0
b _0818AB22
.align 2, 0
_0818A6D0: .4byte 0x02024190
_0818A6D4: .4byte 0xFFFFFC1F
_0818A6D8: .4byte 0xFFF07FFF
_0818A6DC: .4byte 0xFFFFFE0F
_0818A6E0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A6EC
adds r0, r0, r1
movs r1, #0xb
b _0818AA5A
.align 2, 0
_0818A6EC: .4byte 0x02024190
_0818A6F0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A6FC
adds r0, r0, r1
movs r1, #0xc
b _0818AA5A
.align 2, 0
_0818A6FC: .4byte 0x02024190
_0818A700:
movs r6, #0
add r2, sp, #0x58
mov sb, r2
add r0, sp, #0x60
mov sl, r0
movs r0, #0x64
adds r1, r5, #0
muls r1, r0, r1
ldr r0, _0818A764
adds r4, r1, r0
mov r8, sb
_0818A716:
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, sl
adds r1, r2, r6
strb r0, [r1]
movs r0, #2
add r8, r0
adds r6, #1
cmp r6, #3
ble _0818A716
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A764
adds r0, r0, r1
movs r1, #0x15
bl GetMonData
mov r1, sb
strb r0, [r1, #0xc]
mov r2, sb
movs r6, #0
_0818A754:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, #1
cmp r6, #0xf
bls _0818A754
b _0818AB22
.align 2, 0
_0818A764: .4byte 0x02024190
_0818A768:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A780
adds r0, r0, r1
ldrb r1, [r3]
lsls r1, r1, #9
adds r2, #1
adds r1, r1, r2
ldrb r1, [r1]
adds r1, #9
b _0818AA5A
.align 2, 0
_0818A780: .4byte 0x02024190
_0818A784:
movs r6, #0
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r2, _0818A7BC
mov r8, r2
_0818A790:
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, #1
cmp r6, #3
ble _0818A790
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A7BC
adds r0, r0, r1
movs r1, #0x15
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, #1
b _0818AB22
.align 2, 0
_0818A7BC: .4byte 0x02024190
_0818A7C0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A7D8
adds r0, r0, r1
ldrb r1, [r3]
lsls r1, r1, #9
adds r2, #1
adds r1, r1, r2
ldrb r1, [r1]
adds r1, #8
b _0818AB1A
.align 2, 0
_0818A7D8: .4byte 0x02024190
_0818A7DC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A7E8
adds r0, r0, r1
movs r1, #1
b _0818A7F6
.align 2, 0
_0818A7E8: .4byte 0x02024190
_0818A7EC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A818
adds r0, r0, r1
movs r1, #0x19
_0818A7F6:
bl GetMonData
adds r1, r0, #0
strb r1, [r7]
movs r0, #0xff
lsls r0, r0, #8
ands r0, r1
lsrs r0, r0, #8
strb r0, [r7, #1]
movs r0, #0xff
lsls r0, r0, #0x10
ands r0, r1
lsrs r0, r0, #0x10
strb r0, [r7, #2]
movs r6, #3
b _0818AB22
.align 2, 0
_0818A818: .4byte 0x02024190
_0818A81C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A828
adds r0, r0, r1
movs r1, #0x1a
b _0818AB1A
.align 2, 0
_0818A828: .4byte 0x02024190
_0818A82C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A838
adds r0, r0, r1
movs r1, #0x1b
b _0818AB1A
.align 2, 0
_0818A838: .4byte 0x02024190
_0818A83C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A848
adds r0, r0, r1
movs r1, #0x1c
b _0818AB1A
.align 2, 0
_0818A848: .4byte 0x02024190
_0818A84C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A858
adds r0, r0, r1
movs r1, #0x1d
b _0818AB1A
.align 2, 0
_0818A858: .4byte 0x02024190
_0818A85C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A868
adds r0, r0, r1
movs r1, #0x1e
b _0818AB1A
.align 2, 0
_0818A868: .4byte 0x02024190
_0818A86C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A878
adds r0, r0, r1
movs r1, #0x1f
b _0818AB1A
.align 2, 0
_0818A878: .4byte 0x02024190
_0818A87C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A888
adds r0, r0, r1
movs r1, #0x20
b _0818AB1A
.align 2, 0
_0818A888: .4byte 0x02024190
_0818A88C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A898
adds r0, r0, r1
movs r1, #0x22
b _0818AB1A
.align 2, 0
_0818A898: .4byte 0x02024190
_0818A89C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A8A8
adds r0, r0, r1
movs r1, #0x23
b _0818AB1A
.align 2, 0
_0818A8A8: .4byte 0x02024190
_0818A8AC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A8B8
adds r0, r0, r1
movs r1, #0x24
b _0818AB1A
.align 2, 0
_0818A8B8: .4byte 0x02024190
_0818A8BC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A8C8
adds r0, r0, r1
movs r1, #0x25
b _0818AB1A
.align 2, 0
_0818A8C8: .4byte 0x02024190
_0818A8CC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A8D8
adds r0, r0, r1
movs r1, #0x26
b _0818AB1A
.align 2, 0
_0818A8D8: .4byte 0x02024190
_0818A8DC:
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818A928
adds r4, 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, #1]
adds r0, r4, #0
movs r1, #0x29
bl GetMonData
strb r0, [r7, #2]
adds r0, r4, #0
movs r1, #0x2a
bl GetMonData
strb r0, [r7, #3]
adds r0, r4, #0
movs r1, #0x2b
bl GetMonData
strb r0, [r7, #4]
adds r0, r4, #0
movs r1, #0x2c
bl GetMonData
strb r0, [r7, #5]
movs r6, #6
b _0818AB22
.align 2, 0
_0818A928: .4byte 0x02024190
_0818A92C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A938
adds r0, r0, r1
movs r1, #0x27
b _0818AB1A
.align 2, 0
_0818A938: .4byte 0x02024190
_0818A93C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A948
adds r0, r0, r1
movs r1, #0x28
b _0818AB1A
.align 2, 0
_0818A948: .4byte 0x02024190
_0818A94C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A958
adds r0, r0, r1
movs r1, #0x29
b _0818AB1A
.align 2, 0
_0818A958: .4byte 0x02024190
_0818A95C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A968
adds r0, r0, r1
movs r1, #0x2a
b _0818AB1A
.align 2, 0
_0818A968: .4byte 0x02024190
_0818A96C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A978
adds r0, r0, r1
movs r1, #0x2b
b _0818AB1A
.align 2, 0
_0818A978: .4byte 0x02024190
_0818A97C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A988
adds r0, r0, r1
movs r1, #0x2c
b _0818AB1A
.align 2, 0
_0818A988: .4byte 0x02024190
_0818A98C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A998
adds r0, r0, r1
movs r1, #0
b _0818A9B6
.align 2, 0
_0818A998: .4byte 0x02024190
_0818A99C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A9A8
adds r0, r0, r1
movs r1, #9
b _0818AA5A
.align 2, 0
_0818A9A8: .4byte 0x02024190
_0818A9AC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A9DC
adds r0, r0, r1
movs r1, #0x37
_0818A9B6:
bl GetMonData
adds r1, r0, #0
strb r1, [r7]
movs r0, #0xff
lsls r0, r0, #8
ands r0, r1
lsrs r0, r0, #8
strb r0, [r7, #1]
movs r0, #0xff
lsls r0, r0, #0x10
ands r0, r1
lsrs r0, r0, #0x10
strb r0, [r7, #2]
lsrs r0, r1, #0x18
strb r0, [r7, #3]
movs r6, #4
b _0818AB22
.align 2, 0
_0818A9DC: .4byte 0x02024190
_0818A9E0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A9EC
adds r0, r0, r1
movs r1, #0x38
b _0818AB1A
.align 2, 0
_0818A9EC: .4byte 0x02024190
_0818A9F0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818A9FC
adds r0, r0, r1
movs r1, #0x39
b _0818AA5A
.align 2, 0
_0818A9FC: .4byte 0x02024190
_0818AA00:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA0C
adds r0, r0, r1
movs r1, #0x3a
b _0818AA5A
.align 2, 0
_0818AA0C: .4byte 0x02024190
_0818AA10:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA1C
adds r0, r0, r1
movs r1, #0x3b
b _0818AA5A
.align 2, 0
_0818AA1C: .4byte 0x02024190
_0818AA20:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA2C
adds r0, r0, r1
movs r1, #0x3c
b _0818AA5A
.align 2, 0
_0818AA2C: .4byte 0x02024190
_0818AA30:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA3C
adds r0, r0, r1
movs r1, #0x3d
b _0818AA5A
.align 2, 0
_0818AA3C: .4byte 0x02024190
_0818AA40:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA4C
adds r0, r0, r1
movs r1, #0x3e
b _0818AA5A
.align 2, 0
_0818AA4C: .4byte 0x02024190
_0818AA50:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA6C
adds r0, r0, r1
movs r1, #0x3f
_0818AA5A:
bl GetMonData
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
strb r0, [r7]
lsrs r0, r0, #8
strb r0, [r7, #1]
movs r6, #2
b _0818AB22
.align 2, 0
_0818AA6C: .4byte 0x02024190
_0818AA70:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA7C
adds r0, r0, r1
movs r1, #0x16
b _0818AB1A
.align 2, 0
_0818AA7C: .4byte 0x02024190
_0818AA80:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA8C
adds r0, r0, r1
movs r1, #0x17
b _0818AB1A
.align 2, 0
_0818AA8C: .4byte 0x02024190
_0818AA90:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AA9C
adds r0, r0, r1
movs r1, #0x18
b _0818AB1A
.align 2, 0
_0818AA9C: .4byte 0x02024190
_0818AAA0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AAAC
adds r0, r0, r1
movs r1, #0x21
b _0818AB1A
.align 2, 0
_0818AAAC: .4byte 0x02024190
_0818AAB0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AABC
adds r0, r0, r1
movs r1, #0x2f
b _0818AB1A
.align 2, 0
_0818AABC: .4byte 0x02024190
_0818AAC0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AACC
adds r0, r0, r1
movs r1, #0x30
b _0818AB1A
.align 2, 0
_0818AACC: .4byte 0x02024190
_0818AAD0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AADC
adds r0, r0, r1
movs r1, #0x32
b _0818AB1A
.align 2, 0
_0818AADC: .4byte 0x02024190
_0818AAE0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AAEC
adds r0, r0, r1
movs r1, #0x33
b _0818AB1A
.align 2, 0
_0818AAEC: .4byte 0x02024190
_0818AAF0:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AAFC
adds r0, r0, r1
movs r1, #0x34
b _0818AB1A
.align 2, 0
_0818AAFC: .4byte 0x02024190
_0818AB00:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AB0C
adds r0, r0, r1
movs r1, #0x35
b _0818AB1A
.align 2, 0
_0818AB0C: .4byte 0x02024190
_0818AB10:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AB34
adds r0, r0, r1
movs r1, #0x36
_0818AB1A:
bl GetMonData
strb r0, [r7]
movs r6, #1
_0818AB22:
adds r0, r6, #0
add sp, #0x90
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0818AB34: .4byte 0x02024190
thumb_func_end CopyRecordedPlayerMonData
thumb_func_start RecordedPlayerHandleSuccessBallThrowAnim
RecordedPlayerHandleSuccessBallThrowAnim: @ 0x0818AB38
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleSuccessBallThrowAnim
thumb_func_start RecordedPlayerHandleSetMonData
RecordedPlayerHandleSetMonData: @ 0x0818AB44
push {r4, r5, lr}
ldr r1, _0818AB68
ldr r0, _0818AB6C
ldrb r2, [r0]
lsls r0, r2, #9
adds r1, #2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, #0
bne _0818AB74
ldr r0, _0818AB70
lsls r1, r2, #1
adds r1, r1, r0
ldrb r0, [r1]
bl SetRecordedPlayerMonData
b _0818AB92
.align 2, 0
_0818AB68: .4byte 0x02022D08
_0818AB6C: .4byte 0x02023D08
_0818AB70: .4byte 0x02023D12
_0818AB74:
ldrb r4, [r1]
movs r5, #0
_0818AB78:
movs r0, #1
ands r0, r4
cmp r0, #0
beq _0818AB86
adds r0, r5, #0
bl SetRecordedPlayerMonData
_0818AB86:
lsrs r4, r4, #1
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #5
bls _0818AB78
_0818AB92:
bl RecordedPlayerBufferExecCompleted
pop {r4, r5}
pop {r0}
bx r0
thumb_func_end RecordedPlayerHandleSetMonData
thumb_func_start SetRecordedPlayerMonData
SetRecordedPlayerMonData: @ 0x0818AB9C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x34
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _0818ABD4
ldrb r0, [r0]
lsls r0, r0, #9
ldr r2, _0818ABD8
adds r3, r0, r2
adds r6, r3, #0
subs r1, r2, #2
adds r0, r0, r1
ldrb r0, [r0]
adds r7, r2, #0
cmp r0, #0x3b
bls _0818ABC8
bl _0818B562
_0818ABC8:
lsls r0, r0, #2
ldr r1, _0818ABDC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0818ABD4: .4byte 0x02023D08
_0818ABD8: .4byte 0x02022D0B
_0818ABDC: .4byte 0x0818ABE0
_0818ABE0: @ jump table
.4byte _0818ACD0 @ case 0
.4byte _0818AE68 @ case 1
.4byte _0818AE88 @ case 2
.4byte _0818AEA8 @ case 3
.4byte _0818AF00 @ case 4
.4byte _0818AF00 @ case 5
.4byte _0818AF00 @ case 6
.4byte _0818AF00 @ case 7
.4byte _0818AF28 @ case 8
.4byte _0818AF8C @ case 9
.4byte _0818AF8C @ case 10
.4byte _0818AF8C @ case 11
.4byte _0818AF8C @ case 12
.4byte _0818B562 @ case 13
.4byte _0818B562 @ case 14
.4byte _0818B562 @ case 15
.4byte _0818B562 @ case 16
.4byte _0818AFBC @ case 17
.4byte _0818AFDC @ case 18
.4byte _0818AFFC @ case 19
.4byte _0818B01C @ case 20
.4byte _0818B03C @ case 21
.4byte _0818B05C @ case 22
.4byte _0818B07C @ case 23
.4byte _0818B09C @ case 24
.4byte _0818B0BC @ case 25
.4byte _0818B0DC @ case 26
.4byte _0818B0FC @ case 27
.4byte _0818B11C @ case 28
.4byte _0818B13C @ case 29
.4byte _0818B15C @ case 30
.4byte _0818B17C @ case 31
.4byte _0818B1EC @ case 32
.4byte _0818B20C @ case 33
.4byte _0818B22C @ case 34
.4byte _0818B24C @ case 35
.4byte _0818B26C @ case 36
.4byte _0818B28C @ case 37
.4byte _0818B2AC @ case 38
.4byte _0818B2CC @ case 39
.4byte _0818B2EC @ case 40
.4byte _0818B30C @ case 41
.4byte _0818B32C @ case 42
.4byte _0818B34C @ case 43
.4byte _0818B36C @ case 44
.4byte _0818B38C @ case 45
.4byte _0818B3AC @ case 46
.4byte _0818B3CC @ case 47
.4byte _0818B3EC @ case 48
.4byte _0818B40C @ case 49
.4byte _0818B42C @ case 50
.4byte _0818B44C @ case 51
.4byte _0818B46C @ case 52
.4byte _0818B48C @ case 53
.4byte _0818B4AC @ case 54
.4byte _0818B4CC @ case 55
.4byte _0818B4EC @ case 56
.4byte _0818B50C @ case 57
.4byte _0818B52C @ case 58
.4byte _0818B54C @ case 59
_0818ACD0:
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818AE64
adds r4, 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, r0, r6
mov sl, r0
adds r0, r6, #0
adds r0, #0x2b
str r0, [sp, #0x20]
adds r0, #0x19
str r0, [sp, #0x28]
adds r0, #4
str r0, [sp, #0x2c]
adds r0, #4
str r0, [sp, #0x30]
subs r0, #0x22
str r0, [sp, #0x1c]
subs r0, #2
str r0, [sp, #0x18]
adds r0, #4
str r0, [sp, #0x24]
adds r0, r6, #2
str r0, [sp, #4]
adds r0, r6, #4
str r0, [sp, #8]
adds r0, r6, #6
str r0, [sp, #0xc]
adds r0, #2
str r0, [sp, #0x10]
adds r0, #2
str r0, [sp, #0x14]
mov sb, r4
adds r7, r6, #0
adds r7, #0x24
adds r4, r6, #0
adds r4, #0xc
_0818AD36:
mov r1, r8
adds r1, #0xd
mov r0, sb
adds r2, r4, #0
bl SetMonData
mov r1, r8
adds r1, #0x11
mov r0, sb
adds r2, r7, #0
bl SetMonData
adds r7, #1
adds r4, #2
movs r0, #1
add r8, r0
mov r0, r8
cmp r0, #3
ble _0818AD36
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818AE64
adds r4, r4, r0
adds r0, r4, #0
movs r1, #0x15
mov r2, sl
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, r0, #0x1b
lsrs r0, r0, #0x1b
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, r0, #0x16
lsrs r0, r0, #0x1b
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x28
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, #0x15]
lsls r0, r0, #0x19
lsrs r0, r0, #0x1b
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x29
mov r2, sp
bl SetMonData
mov r1, sp
ldr r0, [r6, #0x14]
lsls r0, r0, #0xc
lsrs r0, r0, #0x1b
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x2a
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r6, #0x16]
lsls r0, r0, #0x17
lsrs r0, r0, #0x1b
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x2b
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r6, #0x17]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1b
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, #4]
bl SetMonData
adds r0, r4, #0
movs r1, #0x3c
ldr r2, [sp, #8]
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 _0818B562
.align 2, 0
_0818AE64: .4byte 0x02024190
_0818AE68:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AE80
adds r0, r0, r1
ldr r1, _0818AE84
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0xb
bl SetMonData
b _0818B562
.align 2, 0
_0818AE80: .4byte 0x02024190
_0818AE84: .4byte 0x02023D08
_0818AE88:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AEA0
adds r0, r0, r1
ldr r1, _0818AEA4
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0xc
bl SetMonData
b _0818B562
.align 2, 0
_0818AEA0: .4byte 0x02024190
_0818AEA4: .4byte 0x02023D08
_0818AEA8:
movs r0, #0
mov r8, r0
movs r0, #0xc
adds r0, r0, r3
mov sb, r0
movs r0, #0x64
adds r1, r5, #0
muls r1, r0, r1
ldr r0, _0818AEFC
adds r7, r1, r0
adds r6, r3, #0
adds r6, #8
adds r4, r3, #0
_0818AEC2:
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, #1
adds r4, #2
movs r0, #1
add r8, r0
mov r0, r8
cmp r0, #3
ble _0818AEC2
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AEFC
adds r0, r0, r1
movs r1, #0x15
mov r2, sb
bl SetMonData
b _0818B562
.align 2, 0
_0818AEFC: .4byte 0x02024190
_0818AF00:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AF1C
adds r0, r0, r1
ldr r3, _0818AF20
ldr r1, _0818AF24
ldrb r2, [r1]
lsls r2, r2, #9
adds r1, r3, #1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, #9
b _0818AFA4
.align 2, 0
_0818AF1C: .4byte 0x02024190
_0818AF20: .4byte 0x02022D08
_0818AF24: .4byte 0x02023D08
_0818AF28:
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818AF84
adds r4, r4, r0
ldr r5, _0818AF88
ldrb r2, [r5]
lsls r2, r2, #9
adds r2, r2, r7
adds r0, r4, #0
movs r1, #0x11
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #1
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x12
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #2
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x13
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #3
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x14
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #4
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x15
bl SetMonData
b _0818B562
.align 2, 0
_0818AF84: .4byte 0x02024190
_0818AF88: .4byte 0x02023D08
_0818AF8C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AFB0
adds r0, r0, r1
ldr r3, _0818AFB4
ldr r1, _0818AFB8
ldrb r2, [r1]
lsls r2, r2, #9
adds r1, r3, #1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, #8
_0818AFA4:
adds r3, #3
adds r2, r2, r3
bl SetMonData
b _0818B562
.align 2, 0
_0818AFB0: .4byte 0x02024190
_0818AFB4: .4byte 0x02022D08
_0818AFB8: .4byte 0x02023D08
_0818AFBC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AFD4
adds r0, r0, r1
ldr r1, _0818AFD8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #1
bl SetMonData
b _0818B562
.align 2, 0
_0818AFD4: .4byte 0x02024190
_0818AFD8: .4byte 0x02023D08
_0818AFDC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818AFF4
adds r0, r0, r1
ldr r1, _0818AFF8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x19
bl SetMonData
b _0818B562
.align 2, 0
_0818AFF4: .4byte 0x02024190
_0818AFF8: .4byte 0x02023D08
_0818AFFC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B014
adds r0, r0, r1
ldr r1, _0818B018
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x1a
bl SetMonData
b _0818B562
.align 2, 0
_0818B014: .4byte 0x02024190
_0818B018: .4byte 0x02023D08
_0818B01C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B034
adds r0, r0, r1
ldr r1, _0818B038
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x1b
bl SetMonData
b _0818B562
.align 2, 0
_0818B034: .4byte 0x02024190
_0818B038: .4byte 0x02023D08
_0818B03C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B054
adds r0, r0, r1
ldr r1, _0818B058
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x1c
bl SetMonData
b _0818B562
.align 2, 0
_0818B054: .4byte 0x02024190
_0818B058: .4byte 0x02023D08
_0818B05C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B074
adds r0, r0, r1
ldr r1, _0818B078
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x1d
bl SetMonData
b _0818B562
.align 2, 0
_0818B074: .4byte 0x02024190
_0818B078: .4byte 0x02023D08
_0818B07C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B094
adds r0, r0, r1
ldr r1, _0818B098
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x1e
bl SetMonData
b _0818B562
.align 2, 0
_0818B094: .4byte 0x02024190
_0818B098: .4byte 0x02023D08
_0818B09C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B0B4
adds r0, r0, r1
ldr r1, _0818B0B8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x1f
bl SetMonData
b _0818B562
.align 2, 0
_0818B0B4: .4byte 0x02024190
_0818B0B8: .4byte 0x02023D08
_0818B0BC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B0D4
adds r0, r0, r1
ldr r1, _0818B0D8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x20
bl SetMonData
b _0818B562
.align 2, 0
_0818B0D4: .4byte 0x02024190
_0818B0D8: .4byte 0x02023D08
_0818B0DC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B0F4
adds r0, r0, r1
ldr r1, _0818B0F8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x22
bl SetMonData
b _0818B562
.align 2, 0
_0818B0F4: .4byte 0x02024190
_0818B0F8: .4byte 0x02023D08
_0818B0FC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B114
adds r0, r0, r1
ldr r1, _0818B118
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x23
bl SetMonData
b _0818B562
.align 2, 0
_0818B114: .4byte 0x02024190
_0818B118: .4byte 0x02023D08
_0818B11C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B134
adds r0, r0, r1
ldr r1, _0818B138
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x24
bl SetMonData
b _0818B562
.align 2, 0
_0818B134: .4byte 0x02024190
_0818B138: .4byte 0x02023D08
_0818B13C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B154
adds r0, r0, r1
ldr r1, _0818B158
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x25
bl SetMonData
b _0818B562
.align 2, 0
_0818B154: .4byte 0x02024190
_0818B158: .4byte 0x02023D08
_0818B15C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B174
adds r0, r0, r1
ldr r1, _0818B178
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x26
bl SetMonData
b _0818B562
.align 2, 0
_0818B174: .4byte 0x02024190
_0818B178: .4byte 0x02023D08
_0818B17C:
movs r0, #0x64
adds r4, r5, #0
muls r4, r0, r4
ldr r0, _0818B1E4
adds r4, r4, r0
ldr r5, _0818B1E8
ldrb r2, [r5]
lsls r2, r2, #9
adds r2, r2, r7
adds r0, r4, #0
movs r1, #0x27
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #1
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x28
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #2
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x29
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #3
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x2a
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #4
adds r2, r2, r0
adds r0, r4, #0
movs r1, #0x2b
bl SetMonData
ldrb r2, [r5]
lsls r2, r2, #9
adds r0, r7, #5
adds r2, r2, r0
adds r0, r4, #0
b _0818B29C
.align 2, 0
_0818B1E4: .4byte 0x02024190
_0818B1E8: .4byte 0x02023D08
_0818B1EC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B204
adds r0, r0, r1
ldr r1, _0818B208
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x27
bl SetMonData
b _0818B562
.align 2, 0
_0818B204: .4byte 0x02024190
_0818B208: .4byte 0x02023D08
_0818B20C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B224
adds r0, r0, r1
ldr r1, _0818B228
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x28
bl SetMonData
b _0818B562
.align 2, 0
_0818B224: .4byte 0x02024190
_0818B228: .4byte 0x02023D08
_0818B22C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B244
adds r0, r0, r1
ldr r1, _0818B248
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x29
bl SetMonData
b _0818B562
.align 2, 0
_0818B244: .4byte 0x02024190
_0818B248: .4byte 0x02023D08
_0818B24C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B264
adds r0, r0, r1
ldr r1, _0818B268
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x2a
bl SetMonData
b _0818B562
.align 2, 0
_0818B264: .4byte 0x02024190
_0818B268: .4byte 0x02023D08
_0818B26C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B284
adds r0, r0, r1
ldr r1, _0818B288
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x2b
bl SetMonData
b _0818B562
.align 2, 0
_0818B284: .4byte 0x02024190
_0818B288: .4byte 0x02023D08
_0818B28C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B2A4
adds r0, r0, r1
ldr r1, _0818B2A8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
_0818B29C:
movs r1, #0x2c
bl SetMonData
b _0818B562
.align 2, 0
_0818B2A4: .4byte 0x02024190
_0818B2A8: .4byte 0x02023D08
_0818B2AC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B2C4
adds r0, r0, r1
ldr r1, _0818B2C8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0
bl SetMonData
b _0818B562
.align 2, 0
_0818B2C4: .4byte 0x02024190
_0818B2C8: .4byte 0x02023D08
_0818B2CC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B2E4
adds r0, r0, r1
ldr r1, _0818B2E8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #9
bl SetMonData
b _0818B562
.align 2, 0
_0818B2E4: .4byte 0x02024190
_0818B2E8: .4byte 0x02023D08
_0818B2EC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B304
adds r0, r0, r1
ldr r1, _0818B308
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x37
bl SetMonData
b _0818B562
.align 2, 0
_0818B304: .4byte 0x02024190
_0818B308: .4byte 0x02023D08
_0818B30C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B324
adds r0, r0, r1
ldr r1, _0818B328
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x38
bl SetMonData
b _0818B562
.align 2, 0
_0818B324: .4byte 0x02024190
_0818B328: .4byte 0x02023D08
_0818B32C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B344
adds r0, r0, r1
ldr r1, _0818B348
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x39
bl SetMonData
b _0818B562
.align 2, 0
_0818B344: .4byte 0x02024190
_0818B348: .4byte 0x02023D08
_0818B34C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B364
adds r0, r0, r1
ldr r1, _0818B368
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x3a
bl SetMonData
b _0818B562
.align 2, 0
_0818B364: .4byte 0x02024190
_0818B368: .4byte 0x02023D08
_0818B36C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B384
adds r0, r0, r1
ldr r1, _0818B388
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x3b
bl SetMonData
b _0818B562
.align 2, 0
_0818B384: .4byte 0x02024190
_0818B388: .4byte 0x02023D08
_0818B38C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B3A4
adds r0, r0, r1
ldr r1, _0818B3A8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x3c
bl SetMonData
b _0818B562
.align 2, 0
_0818B3A4: .4byte 0x02024190
_0818B3A8: .4byte 0x02023D08
_0818B3AC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B3C4
adds r0, r0, r1
ldr r1, _0818B3C8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x3d
bl SetMonData
b _0818B562
.align 2, 0
_0818B3C4: .4byte 0x02024190
_0818B3C8: .4byte 0x02023D08
_0818B3CC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B3E4
adds r0, r0, r1
ldr r1, _0818B3E8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x3e
bl SetMonData
b _0818B562
.align 2, 0
_0818B3E4: .4byte 0x02024190
_0818B3E8: .4byte 0x02023D08
_0818B3EC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B404
adds r0, r0, r1
ldr r1, _0818B408
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x3f
bl SetMonData
b _0818B562
.align 2, 0
_0818B404: .4byte 0x02024190
_0818B408: .4byte 0x02023D08
_0818B40C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B424
adds r0, r0, r1
ldr r1, _0818B428
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x16
bl SetMonData
b _0818B562
.align 2, 0
_0818B424: .4byte 0x02024190
_0818B428: .4byte 0x02023D08
_0818B42C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B444
adds r0, r0, r1
ldr r1, _0818B448
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x17
bl SetMonData
b _0818B562
.align 2, 0
_0818B444: .4byte 0x02024190
_0818B448: .4byte 0x02023D08
_0818B44C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B464
adds r0, r0, r1
ldr r1, _0818B468
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x18
bl SetMonData
b _0818B562
.align 2, 0
_0818B464: .4byte 0x02024190
_0818B468: .4byte 0x02023D08
_0818B46C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B484
adds r0, r0, r1
ldr r1, _0818B488
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x21
bl SetMonData
b _0818B562
.align 2, 0
_0818B484: .4byte 0x02024190
_0818B488: .4byte 0x02023D08
_0818B48C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B4A4
adds r0, r0, r1
ldr r1, _0818B4A8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x2f
bl SetMonData
b _0818B562
.align 2, 0
_0818B4A4: .4byte 0x02024190
_0818B4A8: .4byte 0x02023D08
_0818B4AC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B4C4
adds r0, r0, r1
ldr r1, _0818B4C8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x30
bl SetMonData
b _0818B562
.align 2, 0
_0818B4C4: .4byte 0x02024190
_0818B4C8: .4byte 0x02023D08
_0818B4CC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B4E4
adds r0, r0, r1
ldr r1, _0818B4E8
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x32
bl SetMonData
b _0818B562
.align 2, 0
_0818B4E4: .4byte 0x02024190
_0818B4E8: .4byte 0x02023D08
_0818B4EC:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B504
adds r0, r0, r1
ldr r1, _0818B508
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x33
bl SetMonData
b _0818B562
.align 2, 0
_0818B504: .4byte 0x02024190
_0818B508: .4byte 0x02023D08
_0818B50C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B524
adds r0, r0, r1
ldr r1, _0818B528
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x34
bl SetMonData
b _0818B562
.align 2, 0
_0818B524: .4byte 0x02024190
_0818B528: .4byte 0x02023D08
_0818B52C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B544
adds r0, r0, r1
ldr r1, _0818B548
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x35
bl SetMonData
b _0818B562
.align 2, 0
_0818B544: .4byte 0x02024190
_0818B548: .4byte 0x02023D08
_0818B54C:
movs r0, #0x64
muls r0, r5, r0
ldr r1, _0818B58C
adds r0, r0, r1
ldr r1, _0818B590
ldrb r2, [r1]
lsls r2, r2, #9
adds r2, r2, r7
movs r1, #0x36
bl SetMonData
_0818B562:
ldr r2, _0818B594
ldr r0, _0818B590
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
movs r0, #0x64
muls r0, r2, r0
ldr r2, _0818B58C
adds r0, r0, r2
bl HandleLowHpMusicChange
add sp, #0x34
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0818B58C: .4byte 0x02024190
_0818B590: .4byte 0x02023D08
_0818B594: .4byte 0x02023D12
thumb_func_end SetRecordedPlayerMonData
thumb_func_start RecordedPlayerHandleSetRawMonData
RecordedPlayerHandleSetRawMonData: @ 0x0818B598
push {r4, r5, r6, r7, lr}
ldr r1, _0818B5FC
ldr r7, _0818B600
ldrb r2, [r7]
lsls r0, r2, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0x64
adds r3, r1, #0
muls r3, r0, r3
ldr r4, _0818B604
lsls r2, r2, #9
adds r0, r4, #1
adds r0, r2, r0
ldrb r0, [r0]
ldr r1, _0818B608
adds r0, r0, r1
adds r5, r3, r0
movs r3, #0
adds r0, r4, #2
adds r2, r2, r0
ldrb r2, [r2]
cmp r3, r2
bhs _0818B5F0
adds r6, r4, #0
adds r2, r7, #0
adds r4, r0, #0
_0818B5CE:
adds r1, r5, r3
ldrb r0, [r2]
lsls r0, r0, #9
adds r0, #3
adds r0, r3, r0
adds r0, r0, r6
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, #1
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldrb r0, [r2]
lsls r0, r0, #9
adds r0, r0, r4
ldrb r0, [r0]
cmp r3, r0
blo _0818B5CE
_0818B5F0:
bl RecordedPlayerBufferExecCompleted
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0818B5FC: .4byte 0x02023D12
_0818B600: .4byte 0x02023D08
_0818B604: .4byte 0x02022D08
_0818B608: .4byte 0x02024190
thumb_func_end RecordedPlayerHandleSetRawMonData
thumb_func_start RecordedPlayerHandleLoadMonSprite
RecordedPlayerHandleLoadMonSprite: @ 0x0818B60C
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
ldr r0, _0818B700
mov r8, r0
ldr r6, _0818B704
ldrb r1, [r6]
lsls r0, r1, #1
add r0, r8
ldrh r0, [r0]
movs r5, #0x64
muls r0, r5, r0
ldr r4, _0818B708
adds r0, r0, r4
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r6]
lsls r0, r0, #1
add r0, r8
ldrh r0, [r0]
muls r0, r5, r0
adds r0, r0, r4
movs r1, #0xb
bl GetMonData
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldrb r0, [r6]
bl GetBattlerPosition
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0818B70C
mov r8, r0
ldrb r0, [r6]
movs r1, #2
bl GetBattlerSpriteCoord
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
ldrb r0, [r6]
bl GetBattlerSpriteDefault_Y
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldrb r0, [r6]
bl GetBattlerSpriteSubpriority
adds r3, r0, #0
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
mov r0, r8
adds r1, r5, #0
adds r2, r4, #0
bl CreateSprite
ldr r4, _0818B710
ldrb r1, [r6]
adds r1, r1, r4
strb r0, [r1]
ldr r5, _0818B714
ldrb r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, _0818B718
strh r1, [r0, #0x24]
ldrb r2, [r6]
adds r0, r2, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
strh r2, [r0, #0x2e]
ldrb r3, [r6]
adds r0, r3, r4
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
lsls r3, r3, #4
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r3
strb r0, [r1, #5]
ldrb r2, [r6]
adds r4, r2, r4
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, _0818B71C
adds r2, r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
ldr r1, _0818B720
ldrb r0, [r6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818B724
str r1, [r0]
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818B700: .4byte 0x02023D12
_0818B704: .4byte 0x02023D08
_0818B708: .4byte 0x02024190
_0818B70C: .4byte 0x02024640
_0818B710: .4byte 0x02023E88
_0818B714: .4byte 0x020205AC
_0818B718: .4byte 0x0000FF10
_0818B71C: .4byte 0x02024188
_0818B720: .4byte 0x03005AC0
_0818B724: .4byte 0x08189D91
thumb_func_end RecordedPlayerHandleLoadMonSprite
thumb_func_start RecordedPlayerHandleSwitchInAnim
RecordedPlayerHandleSwitchInAnim: @ 0x0818B728
push {r4, r5, r6, lr}
ldr r5, _0818B780
ldrb r0, [r5]
ldr r4, _0818B784
lsls r1, r0, #9
adds r6, r4, #2
adds r1, r1, r6
ldrb r1, [r1]
bl ClearTemporarySpeciesSpriteData
ldr r2, _0818B788
ldrb r0, [r5]
lsls r1, r0, #1
adds r1, r1, r2
lsls r0, r0, #9
adds r4, #1
adds r0, r0, r4
ldrb r0, [r0]
strh r0, [r1]
ldrb r1, [r5]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
movs r0, #0x64
muls r0, r2, r0
ldr r2, _0818B78C
adds r0, r0, r2
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r5]
lsls r1, r0, #9
adds r1, r1, r6
ldrb r1, [r1]
bl sub_0818B798
ldr r1, _0818B790
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818B794
str r1, [r0]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818B780: .4byte 0x02023D08
_0818B784: .4byte 0x02022D08
_0818B788: .4byte 0x02023D12
_0818B78C: .4byte 0x02024190
_0818B790: .4byte 0x03005AC0
_0818B794: .4byte 0x0818A19D
thumb_func_end RecordedPlayerHandleSwitchInAnim
thumb_func_start sub_0818B798
sub_0818B798: @ 0x0818B798
push {r4, r5, r6, lr}
mov r6, sl
mov r5, sb
mov r4, r8
push {r4, r5, r6}
adds r6, r0, #0
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r6, #0
bl ClearTemporarySpeciesSpriteData
ldr r0, _0818B8EC
lsls r2, r6, #1
adds r2, r2, r0
ldr r0, _0818B8F0
lsls r1, r6, #9
adds r0, #1
adds r1, r1, r0
ldrb r0, [r1]
strh r0, [r2]
ldrh r1, [r2]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _0818B8F4
adds r0, r0, r1
movs r1, #0xb
bl GetMonData
mov r8, r0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
ldr r0, _0818B8F8
bl CreateInvisibleSpriteWithCallback
ldr r1, _0818B8FC
mov sb, r1
add sb, r6
mov r1, sb
strb r0, [r1]
adds r0, r6, #0
bl GetBattlerPosition
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
mov r0, r8
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0818B900
mov sl, r0
adds r0, r6, #0
movs r1, #2
bl GetBattlerSpriteCoord
adds r5, r0, #0
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
adds r0, r6, #0
bl GetBattlerSpriteDefault_Y
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
adds r0, r6, #0
bl GetBattlerSpriteSubpriority
adds r3, r0, #0
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
mov r0, sl
adds r1, r5, #0
adds r2, r4, #0
bl CreateSprite
ldr r4, _0818B904
adds r4, r6, r4
strb r0, [r4]
ldr r5, _0818B908
mov r0, sb
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrb r1, [r4]
strh r1, [r0, #0x30]
mov r0, sb
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
strh r6, [r0, #0x32]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
strh r6, [r0, #0x2e]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
mov r1, r8
strh r1, [r0, #0x32]
ldrb r0, [r4]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
lsls r3, r6, #4
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r3
strb r0, [r1, #5]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, _0818B90C
adds r6, r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
adds r0, #0x3e
ldrb r1, [r0]
movs r2, #4
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r5, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0818B910
str r1, [r0]
movs r0, #0
movs r1, #0xff
bl DoPokeballSendOutAnimation
mov r1, sb
ldrb r2, [r1]
lsls r1, r2, #4
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r5
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
strh r0, [r1, #0x2e]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818B8EC: .4byte 0x02023D12
_0818B8F0: .4byte 0x02022D08
_0818B8F4: .4byte 0x02024190
_0818B8F8: .4byte 0x0805D331
_0818B8FC: .4byte 0x03005ADC
_0818B900: .4byte 0x02024640
_0818B904: .4byte 0x02023E88
_0818B908: .4byte 0x020205AC
_0818B90C: .4byte 0x02024188
_0818B910: .4byte 0x08007141
thumb_func_end sub_0818B798
thumb_func_start RecordedPlayerHandleReturnMonToBall
RecordedPlayerHandleReturnMonToBall: @ 0x0818B914
push {r4, r5, r6, lr}
ldr r1, _0818B948
ldr r6, _0818B94C
ldrb r2, [r6]
lsls r0, r2, #9
adds r1, #1
adds r0, r0, r1
ldrb r3, [r0]
cmp r3, #0
bne _0818B95C
ldr r0, _0818B950
ldr r0, [r0]
ldr r1, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
strb r3, [r0, #4]
ldr r1, _0818B954
ldrb r0, [r6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818B958
str r1, [r0]
b _0818B992
.align 2, 0
_0818B948: .4byte 0x02022D08
_0818B94C: .4byte 0x02023D08
_0818B950: .4byte 0x02024174
_0818B954: .4byte 0x03005AC0
_0818B958: .4byte 0x0818B9A5
_0818B95C:
ldr r5, _0818B998
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0818B99C
adds r0, r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
bl DestroySprite
ldr r1, _0818B9A0
ldrb r0, [r6]
adds r0, r0, r1
ldrb r0, [r0]
bl SetHealthboxSpriteInvisible
bl RecordedPlayerBufferExecCompleted
_0818B992:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818B998: .4byte 0x02023E88
_0818B99C: .4byte 0x020205AC
_0818B9A0: .4byte 0x03005AD0
thumb_func_end RecordedPlayerHandleReturnMonToBall
thumb_func_start sub_0818B9A4
sub_0818B9A4: @ 0x0818B9A4
push {r4, r5, r6, lr}
ldr r6, _0818B9C4
ldr r4, [r6]
ldr r5, _0818B9C8
ldrb r2, [r5]
ldr r1, [r4, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r3, r0, r1
ldrb r0, [r3, #4]
cmp r0, #0
beq _0818B9CC
cmp r0, #1
beq _0818B9FA
b _0818BA22
.align 2, 0
_0818B9C4: .4byte 0x02024174
_0818B9C8: .4byte 0x02023D08
_0818B9CC:
ldr r1, [r4]
lsls r0, r2, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0818B9E6
adds r0, r2, #0
adds r1, r2, #0
movs r3, #5
bl InitAndLaunchSpecialAnimation
_0818B9E6:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #1
strb r1, [r0, #4]
b _0818BA22
_0818B9FA:
ldrb r1, [r3]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _0818BA22
strb r0, [r3, #4]
ldrb r2, [r5]
adds r0, r2, #0
adds r1, r2, #0
movs r3, #1
bl InitAndLaunchSpecialAnimation
ldr r1, _0818BA28
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818BA2C
str r1, [r0]
_0818BA22:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818BA28: .4byte 0x03005AC0
_0818BA2C: .4byte 0x08189EDD
thumb_func_end sub_0818B9A4
thumb_func_start RecordedPlayerHandleDrawTrainerPic
RecordedPlayerHandleDrawTrainerPic: @ 0x0818BA30
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, _0818BA58
ldr r1, [r0]
movs r0, #0x80
lsls r0, r0, #0x12
ands r0, r1
cmp r0, #0
beq _0818BA74
movs r0, #0x40
ands r1, r0
cmp r1, #0
beq _0818BA5C
bl GetActiveBattlerLinkPlayerGender
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
b _0818BA78
.align 2, 0
_0818BA58: .4byte 0x02022C90
_0818BA5C:
ldr r2, _0818BA6C
ldr r0, _0818BA70
ldrb r1, [r0]
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
b _0818BA76
.align 2, 0
_0818BA6C: .4byte 0x020226A0
_0818BA70: .4byte 0x0203C480
_0818BA74:
ldr r0, _0818BAB4
_0818BA76:
ldrb r4, [r0, #0x13]
_0818BA78:
ldr r0, _0818BAB8
ldr r1, [r0]
movs r2, #0x40
ands r1, r2
adds r5, r0, #0
cmp r1, #0
beq _0818BAC4
ldr r0, _0818BABC
ldrb r0, [r0]
bl GetBattlerPosition
movs r1, #2
ands r1, r0
movs r0, #0x20
mov sb, r0
cmp r1, #0
beq _0818BA9E
movs r1, #0x5a
mov sb, r1
_0818BA9E:
ldr r0, [r5]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _0818BAC8
movs r0, #0x5a
mov sb, r0
ldr r1, _0818BAC0
b _0818BACA
.align 2, 0
_0818BAB4: .4byte 0x020226A0
_0818BAB8: .4byte 0x02022C90
_0818BABC: .4byte 0x02023D08
_0818BAC0: .4byte 0x082D8D70
_0818BAC4:
movs r0, #0x50
mov sb, r0
_0818BAC8:
ldr r1, _0818BBE4
_0818BACA:
lsls r0, r4, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #8
subs r0, r0, r1
lsls r0, r0, #0x12
movs r1, #0xa0
lsls r1, r1, #0xf
adds r0, r0, r1
lsrs r7, r0, #0x10
ldr r0, [r5]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
bne _0818BAEC
b _0818BC08
_0818BAEC:
ldr r0, _0818BBE8
ldr r0, [r0]
ldrb r0, [r0, #8]
bl PlayerGenderToFrontTrainerPicId
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r5, r4, #0
ldr r6, _0818BBEC
ldrb r1, [r6]
adds r0, r5, #0
bl DecompressTrainerFrontPic
ldrb r0, [r6]
bl GetBattlerPosition
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r5, #0
bl SetMultiuseSpriteTemplateToTrainerFront
ldr r0, _0818BBF0
mov r8, r0
lsls r4, r7, #0x10
asrs r4, r4, #0x10
ldrb r0, [r6]
bl GetBattlerSpriteSubpriority
adds r3, r0, #0
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
mov r0, r8
mov r1, sb
adds r2, r4, #0
bl CreateSprite
ldr r4, _0818BBF4
ldrb r1, [r6]
adds r1, r1, r4
strb r0, [r1]
ldr r0, _0818BBF8
lsls r5, r5, #3
adds r5, r5, r0
ldrh r0, [r5, #4]
bl IndexOfSpritePaletteTag
ldr r5, _0818BBFC
ldrb r1, [r6]
adds r1, r1, r4
ldrb r1, [r1]
lsls r2, r1, #4
adds r2, r2, r1
lsls r2, r2, #2
adds r2, r2, r5
lsls r0, r0, #4
ldrb r3, [r2, #5]
movs r1, #0xf
ands r1, r3
orrs r1, r0
strb r1, [r2, #5]
ldrb r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #0xf0
strh r1, [r0, #0x24]
ldrb r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #0x30
strh r1, [r0, #0x26]
ldrb r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, _0818BC00
strh r1, [r0, #0x2e]
ldrb r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r5, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0818BC04
str r1, [r0]
ldrb r0, [r6]
adds r0, r0, r4
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r5
ldrb r2, [r1, #1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1, #1]
ldrb r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
adds r0, #0x3f
ldrb r1, [r0]
movs r2, #1
orrs r1, r2
strb r1, [r0]
b _0818BC9E
.align 2, 0
_0818BBE4: .4byte 0x082D95BC
_0818BBE8: .4byte 0x03005AF0
_0818BBEC: .4byte 0x02023D08
_0818BBF0: .4byte 0x02024640
_0818BBF4: .4byte 0x02023E88
_0818BBF8: .4byte 0x082D91CC
_0818BBFC: .4byte 0x020205AC
_0818BC00: .4byte 0x0000FFFE
_0818BC04: .4byte 0x0805D3C9
_0818BC08:
ldr r5, _0818BCB8
ldrb r1, [r5]
adds r0, r4, #0
bl DecompressTrainerBackPic
ldrb r0, [r5]
bl GetBattlerPosition
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl SetMultiuseSpriteTemplateToTrainerBack
ldr r6, _0818BCBC
mov r8, sb
lsls r4, r7, #0x10
asrs r4, r4, #0x10
ldrb r0, [r5]
bl GetBattlerSpriteSubpriority
adds r3, r0, #0
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
adds r0, r6, #0
mov r1, r8
adds r2, r4, #0
bl CreateSprite
ldr r6, _0818BCC0
ldrb r1, [r5]
adds r1, r1, r6
strb r0, [r1]
ldr r4, _0818BCC4
ldrb r3, [r5]
adds r0, r3, r6
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
lsls r3, r3, #4
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r3
strb r0, [r1, #5]
ldrb r0, [r5]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0xf0
strh r1, [r0, #0x24]
ldrb r0, [r5]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0818BCC8
strh r1, [r0, #0x2e]
ldrb r0, [r5]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r4, #0x1c
adds r0, r0, r4
ldr r1, _0818BCCC
str r1, [r0]
_0818BC9E:
ldr r1, _0818BCD0
ldr r0, _0818BCB8
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818BCD4
str r1, [r0]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0818BCB8: .4byte 0x02023D08
_0818BCBC: .4byte 0x02024640
_0818BCC0: .4byte 0x02023E88
_0818BCC4: .4byte 0x020205AC
_0818BCC8: .4byte 0x0000FFFE
_0818BCCC: .4byte 0x0805D3C9
_0818BCD0: .4byte 0x03005AC0
_0818BCD4: .4byte 0x081896E5
thumb_func_end RecordedPlayerHandleDrawTrainerPic
thumb_func_start RecordedPlayerHandleTrainerSlide
RecordedPlayerHandleTrainerSlide: @ 0x0818BCD8
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleTrainerSlide
thumb_func_start RecordedPlayerHandleTrainerSlideBack
RecordedPlayerHandleTrainerSlideBack: @ 0x0818BCE4
push {r4, r5, r6, lr}
ldr r6, _0818BD70
ldr r4, _0818BD74
ldrb r0, [r4]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r5, _0818BD78
adds r0, r0, r5
bl SetSpritePrimaryCoordsFromSecondaryCoords
ldrb r0, [r4]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
movs r1, #0x23
strh r1, [r0, #0x2e]
ldrb r0, [r4]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, _0818BD7C
strh r1, [r0, #0x32]
ldrb r0, [r4]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldrh r1, [r0, #0x22]
strh r1, [r0, #0x36]
ldrb r0, [r4]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r5, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0818BD80
str r1, [r0]
ldrb r0, [r4]
adds r0, r0, r6
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r5
ldr r1, _0818BD84
bl StoreSpriteCallbackInData6
ldr r1, _0818BD88
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818BD8C
str r1, [r0]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818BD70: .4byte 0x02023E88
_0818BD74: .4byte 0x02023D08
_0818BD78: .4byte 0x020205AC
_0818BD7C: .4byte 0x0000FFD8
_0818BD80: .4byte 0x080A67B5
_0818BD84: .4byte 0x08007141
_0818BD88: .4byte 0x03005AC0
_0818BD8C: .4byte 0x0818971D
thumb_func_end RecordedPlayerHandleTrainerSlideBack
thumb_func_start RecordedPlayerHandleFaintAnimation
RecordedPlayerHandleFaintAnimation: @ 0x0818BD90
push {r4, r5, r6, lr}
ldr r6, _0818BDDC
ldr r4, [r6]
ldr r5, _0818BDE0
ldrb r2, [r5]
ldr r0, [r4, #4]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r3, r1, r0
ldrb r0, [r3, #4]
cmp r0, #0
bne _0818BDE4
ldr r1, [r4]
lsls r0, r2, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0818BDC4
adds r0, r2, #0
adds r1, r2, #0
movs r3, #5
bl InitAndLaunchSpecialAnimation
_0818BDC4:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #4]
adds r1, #1
strb r1, [r0, #4]
b _0818BE5A
.align 2, 0
_0818BDDC: .4byte 0x02024174
_0818BDE0: .4byte 0x02023D08
_0818BDE4:
ldrb r1, [r3]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _0818BE5A
strb r4, [r3, #4]
ldr r2, _0818BE60
ldrb r1, [r5]
lsls r0, r1, #1
adds r0, r0, r2
ldrh r2, [r0]
movs r0, #0x64
muls r0, r2, r0
ldr r2, _0818BE64
adds r0, r0, r2
bl HandleLowHpMusicChange
movs r1, #0x40
rsbs r1, r1, #0
movs r0, #0x10
bl PlaySE12WithPanning
ldr r2, _0818BE68
ldr r3, _0818BE6C
ldrb r0, [r5]
adds r0, r0, r3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
strh r4, [r0, #0x30]
ldrb r0, [r5]
adds r0, r0, r3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #5
strh r1, [r0, #0x32]
ldrb r0, [r5]
adds r0, r0, r3
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r2, #0x1c
adds r0, r0, r2
ldr r1, _0818BE70
str r1, [r0]
ldr r1, _0818BE74
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818BE78
str r1, [r0]
_0818BE5A:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818BE60: .4byte 0x02023D12
_0818BE64: .4byte 0x02024190
_0818BE68: .4byte 0x020205AC
_0818BE6C: .4byte 0x02023E88
_0818BE70: .4byte 0x08039845
_0818BE74: .4byte 0x03005AC0
_0818BE78: .4byte 0x08189E41
thumb_func_end RecordedPlayerHandleFaintAnimation
thumb_func_start RecordedPlayerHandlePaletteFade
RecordedPlayerHandlePaletteFade: @ 0x0818BE7C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandlePaletteFade
thumb_func_start RecordedPlayerHandleTwoReturnValues
RecordedPlayerHandleTwoReturnValues: @ 0x0818BE88
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleTwoReturnValues
thumb_func_start RecordedPlayerHandleChoosePokemon
RecordedPlayerHandleChoosePokemon: @ 0x0818BE94
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleChoosePokemon
thumb_func_start RecordedPlayerHandlePause
RecordedPlayerHandlePause: @ 0x0818BEA0
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandlePause
thumb_func_start RecordedPlayerHandleMoveAnimation
RecordedPlayerHandleMoveAnimation: @ 0x0818BEAC
push {r4, r5, r6, lr}
ldr r6, _0818BF90
ldrb r0, [r6]
bl mplay_80342A4
lsls r0, r0, #0x18
cmp r0, #0
beq _0818BEBE
b _0818BFD2
_0818BEBE:
ldr r0, _0818BF94
mov ip, r0
ldrb r2, [r6]
lsls r2, r2, #9
adds r0, #1
adds r0, r2, r0
ldrb r0, [r0]
mov r1, ip
adds r1, #2
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, r1, #8
orrs r0, r1
ldr r5, _0818BF98
mov r1, ip
adds r1, #3
adds r2, r2, r1
ldrb r1, [r2]
strb r1, [r5]
ldr r4, _0818BF9C
ldrb r2, [r6]
lsls r2, r2, #9
mov r1, ip
adds r1, #4
adds r1, r2, r1
ldrb r3, [r1]
mov r1, ip
adds r1, #5
adds r2, r2, r1
ldrb r1, [r2]
lsls r1, r1, #8
orrs r3, r1
strh r3, [r4]
ldr r4, _0818BFA0
ldrb r2, [r6]
lsls r2, r2, #9
mov r1, ip
adds r1, #6
adds r1, r2, r1
ldrb r3, [r1]
mov r1, ip
adds r1, #7
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, r1, #8
orrs r3, r1
mov r1, ip
adds r1, #8
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, r1, #0x10
orrs r3, r1
mov r1, ip
adds r1, #9
adds r2, r2, r1
ldrb r1, [r2]
lsls r1, r1, #0x18
orrs r3, r1
str r3, [r4]
ldr r3, _0818BFA4
ldrb r1, [r6]
lsls r1, r1, #9
mov r2, ip
adds r2, #0xa
adds r1, r1, r2
ldrb r1, [r1]
strb r1, [r3]
ldr r4, _0818BFA8
ldrb r2, [r6]
lsls r2, r2, #9
mov r1, ip
adds r1, #0xc
adds r1, r2, r1
ldrb r3, [r1]
mov r1, ip
adds r1, #0xd
adds r2, r2, r1
ldrb r1, [r2]
lsls r1, r1, #8
orrs r3, r1
strh r3, [r4]
ldr r3, _0818BFAC
ldrb r2, [r6]
lsls r2, r2, #9
mov r1, ip
adds r1, #0x10
adds r2, r2, r1
str r2, [r3]
ldr r3, _0818BFB0
ldrb r1, [r6]
lsls r1, r1, #2
adds r1, r1, r3
ldr r2, [r2]
str r2, [r1]
ldrb r1, [r5]
bl IsMoveWithoutAnimation
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _0818BFB4
bl RecordedPlayerBufferExecCompleted
b _0818BFD2
.align 2, 0
_0818BF90: .4byte 0x02023D08
_0818BF94: .4byte 0x02022D08
_0818BF98: .4byte 0x020380D2
_0818BF9C: .4byte 0x020380A8
_0818BFA0: .4byte 0x020380A4
_0818BFA4: .4byte 0x020380BA
_0818BFA8: .4byte 0x020380BC
_0818BFAC: .4byte 0x020380A0
_0818BFB0: .4byte 0x02024160
_0818BFB4:
ldr r0, _0818BFD8
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
strb r3, [r0, #4]
ldr r1, _0818BFDC
ldrb r0, [r6]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818BFE0
str r1, [r0]
_0818BFD2:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818BFD8: .4byte 0x02024174
_0818BFDC: .4byte 0x03005AC0
_0818BFE0: .4byte 0x0818BFE5
thumb_func_end RecordedPlayerHandleMoveAnimation
thumb_func_start RecordedPlayerDoMoveAnimation
RecordedPlayerDoMoveAnimation: @ 0x0818BFE4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r2, _0818C030
ldr r6, _0818C034
ldrb r3, [r6]
lsls r1, r3, #9
adds r0, r2, #1
mov sl, r0
adds r0, r1, r0
ldrb r4, [r0]
adds r5, r2, #2
mov sb, r5
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, r0, #8
orrs r4, r0
adds r2, #0xb
adds r1, r1, r2
ldrb r1, [r1]
mov r8, r1
ldr r7, _0818C038
ldr r5, [r7]
ldr r1, [r5, #4]
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #2
adds r0, r0, r1
ldrb r2, [r0, #4]
cmp r2, #1
beq _0818C07C
cmp r2, #1
bgt _0818C03C
cmp r2, #0
beq _0818C046
b _0818C158
.align 2, 0
_0818C030: .4byte 0x02022D08
_0818C034: .4byte 0x02023D08
_0818C038: .4byte 0x02024174
_0818C03C:
cmp r2, #2
beq _0818C0A6
cmp r2, #3
beq _0818C11C
b _0818C158
_0818C046:
ldr r1, [r5]
lsls r0, r3, #2
adds r1, r0, r1
ldrb r2, [r1]
movs r0, #0xc
ands r0, r2
cmp r0, #4
bne _0818C068
movs r0, #8
orrs r0, r2
strb r0, [r1]
ldrb r2, [r6]
adds r0, r2, #0
adds r1, r2, #0
movs r3, #5
bl InitAndLaunchSpecialAnimation
_0818C068:
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #1
strb r1, [r0, #4]
b _0818C158
_0818C07C:
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _0818C158
movs r0, #0
bl sub_0805E7B8
adds r0, r4, #0
bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #2
strb r1, [r0, #4]
b _0818C158
_0818C0A6:
ldr r0, _0818C10C
ldr r0, [r0]
bl _call_via_r0
ldr r0, _0818C110
ldrb r0, [r0]
cmp r0, #0
bne _0818C158
movs r0, #1
bl sub_0805E7B8
ldr r0, [r7]
ldrb r2, [r6]
ldr r1, [r0]
lsls r0, r2, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0818C0F4
mov r0, r8
cmp r0, #1
bhi _0818C0F4
adds r0, r2, #0
adds r1, r2, #0
movs r3, #6
bl InitAndLaunchSpecialAnimation
ldr r0, [r7]
ldrb r1, [r6]
ldr r0, [r0]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1]
movs r0, #9
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
_0818C0F4:
ldr r0, _0818C114
ldr r2, [r0]
ldr r0, _0818C118
ldrb r1, [r0]
ldr r2, [r2, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #3
strb r1, [r0, #4]
b _0818C158
.align 2, 0
_0818C10C: .4byte 0x02038098
_0818C110: .4byte 0x0203809D
_0818C114: .4byte 0x02024174
_0818C118: .4byte 0x02023D08
_0818C11C:
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _0818C158
bl CopyAllBattleSpritesInvisibilities
ldrb r0, [r6]
lsls r2, r0, #9
mov r3, sl
adds r1, r2, r3
ldrb r1, [r1]
add r2, sb
ldrb r2, [r2]
lsls r2, r2, #8
orrs r1, r2
bl TrySetBehindSubstituteSpriteBit
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
strb r4, [r0, #4]
bl RecordedPlayerBufferExecCompleted
_0818C158:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerDoMoveAnimation
thumb_func_start RecordedPlayerHandlePrintString
RecordedPlayerHandlePrintString: @ 0x0818C168
push {r4, lr}
ldr r0, _0818C1A0
movs r1, #0
strh r1, [r0]
ldr r0, _0818C1A4
strh r1, [r0]
ldr r4, _0818C1A8
ldrb r0, [r4]
lsls r0, r0, #9
ldr r1, _0818C1AC
adds r0, r0, r1
ldrh r0, [r0]
bl BufferStringBattle
ldr r0, _0818C1B0
movs r1, #0
bl sub_0814FA04
ldr r1, _0818C1B4
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C1B8
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818C1A0: .4byte 0x02022AC8
_0818C1A4: .4byte 0x02022ACA
_0818C1A8: .4byte 0x02023D08
_0818C1AC: .4byte 0x02022D0A
_0818C1B0: .4byte 0x02022AE0
_0818C1B4: .4byte 0x03005AC0
_0818C1B8: .4byte 0x08189F4D
thumb_func_end RecordedPlayerHandlePrintString
thumb_func_start RecordedPlayerHandlePrintSelectionString
RecordedPlayerHandlePrintSelectionString: @ 0x0818C1BC
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandlePrintSelectionString
thumb_func_start ChooseActionInBattlePalace
ChooseActionInBattlePalace: @ 0x0818C1C8
push {lr}
ldr r1, _0818C1F8
ldr r0, _0818C1FC
ldrb r0, [r0]
ldrb r1, [r1, #4]
lsrs r0, r0, #1
cmp r1, r0
blo _0818C1F2
ldr r0, _0818C200
ldrb r0, [r0]
bl RecordedBattle_GetBattlerAction
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #1
movs r2, #0
bl BtlController_EmitTwoReturnValues
bl RecordedPlayerBufferExecCompleted
_0818C1F2:
pop {r0}
bx r0
.align 2, 0
_0818C1F8: .4byte 0x02023FD6
_0818C1FC: .4byte 0x02023D10
_0818C200: .4byte 0x02023D08
thumb_func_end ChooseActionInBattlePalace
thumb_func_start RecordedPlayerHandleChooseAction
RecordedPlayerHandleChooseAction: @ 0x0818C204
push {lr}
ldr r0, _0818C224
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #0xa
ands r0, r1
cmp r0, #0
beq _0818C234
ldr r1, _0818C228
ldr r0, _0818C22C
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C230
str r1, [r0]
b _0818C24E
.align 2, 0
_0818C224: .4byte 0x02022C90
_0818C228: .4byte 0x03005AC0
_0818C22C: .4byte 0x02023D08
_0818C230: .4byte 0x0818C1C9
_0818C234:
ldr r0, _0818C254
ldrb r0, [r0]
bl RecordedBattle_GetBattlerAction
adds r1, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
movs r0, #1
movs r2, #0
bl BtlController_EmitTwoReturnValues
bl RecordedPlayerBufferExecCompleted
_0818C24E:
pop {r0}
bx r0
.align 2, 0
_0818C254: .4byte 0x02023D08
thumb_func_end RecordedPlayerHandleChooseAction
thumb_func_start RecordedPlayerHandleUnknownYesNoBox
RecordedPlayerHandleUnknownYesNoBox: @ 0x0818C258
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleUnknownYesNoBox
thumb_func_start RecordedPlayerHandleChooseMove
RecordedPlayerHandleChooseMove: @ 0x0818C264
push {r4, r5, lr}
ldr r0, _0818C288
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #0xa
ands r0, r1
cmp r0, #0
beq _0818C28C
bl ChooseMoveAndTargetInBattlePalace
adds r2, r0, #0
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
movs r0, #1
movs r1, #0xa
bl BtlController_EmitTwoReturnValues
b _0818C2B0
.align 2, 0
_0818C288: .4byte 0x02022C90
_0818C28C:
ldr r5, _0818C2BC
ldrb r0, [r5]
bl RecordedBattle_GetBattlerAction
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldrb r0, [r5]
bl RecordedBattle_GetBattlerAction
adds r2, r0, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x10
orrs r2, r4
movs r0, #1
movs r1, #0xa
bl BtlController_EmitTwoReturnValues
_0818C2B0:
bl RecordedPlayerBufferExecCompleted
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0818C2BC: .4byte 0x02023D08
thumb_func_end RecordedPlayerHandleChooseMove
thumb_func_start RecordedPlayerHandleChooseItem
RecordedPlayerHandleChooseItem: @ 0x0818C2C0
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleChooseItem
thumb_func_start RecordedPlayerHandlePlaySE
RecordedPlayerHandlePlaySE: @ 0x0818C2CC
push {r4, lr}
ldr r4, _0818C300
ldrb r0, [r4]
bl RecordedBattle_GetBattlerAction
ldrb r1, [r4]
ldr r3, _0818C304
ldr r2, [r3]
adds r1, r1, r2
adds r1, #0x5c
strb r0, [r1]
ldrb r0, [r4]
ldr r1, [r3]
adds r0, r0, r1
adds r0, #0x5c
ldrb r1, [r0]
movs r0, #1
movs r2, #0
bl BtlController_EmitChosenMonReturnValue
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818C300: .4byte 0x02023D08
_0818C304: .4byte 0x02024140
thumb_func_end RecordedPlayerHandlePlaySE
thumb_func_start RecordedPlayerHandleCmd23
RecordedPlayerHandleCmd23: @ 0x0818C308
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleCmd23
thumb_func_start RecordedPlayerHandleHealthBarUpdate
RecordedPlayerHandleHealthBarUpdate: @ 0x0818C314
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
movs r0, #0
bl LoadBattleBarGfx
ldr r3, _0818C38C
ldr r0, _0818C390
mov sb, r0
ldrb r4, [r0]
lsls r2, r4, #9
adds r0, r3, #2
adds r0, r2, r0
ldrb r1, [r0]
adds r3, #3
adds r2, r2, r3
ldrb r0, [r2]
lsls r0, r0, #8
orrs r1, r0
lsls r1, r1, #0x10
asrs r7, r1, #0x10
ldr r0, _0818C394
cmp r7, r0
beq _0818C3A4
ldr r6, _0818C398
lsls r0, r4, #1
adds r0, r0, r6
ldrh r0, [r0]
movs r5, #0x64
muls r0, r5, r0
ldr r4, _0818C39C
adds r0, r0, r4
movs r1, #0x3a
bl GetMonData
mov r8, r0
mov r1, sb
ldrb r0, [r1]
lsls r0, r0, #1
adds r0, r0, r6
ldrh r0, [r0]
muls r0, r5, r0
adds r0, r0, r4
movs r1, #0x39
bl GetMonData
adds r3, r0, #0
mov r1, sb
ldrb r0, [r1]
ldr r1, _0818C3A0
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
bl SetBattleBarStruct
b _0818C3DE
.align 2, 0
_0818C38C: .4byte 0x02022D08
_0818C390: .4byte 0x02023D08
_0818C394: .4byte 0x00007FFF
_0818C398: .4byte 0x02023D12
_0818C39C: .4byte 0x02024190
_0818C3A0: .4byte 0x03005AD0
_0818C3A4:
ldr r1, _0818C3FC
lsls r0, r4, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _0818C400
adds r0, r0, r1
movs r1, #0x3a
bl GetMonData
adds r2, r0, #0
mov r1, sb
ldrb r0, [r1]
ldr r4, _0818C404
adds r1, r0, r4
ldrb r1, [r1]
str r7, [sp]
movs r3, #0
bl SetBattleBarStruct
mov r1, sb
ldrb r0, [r1]
adds r0, r0, r4
ldrb r0, [r0]
movs r1, #0
movs r2, #0
bl sub_080726F4
_0818C3DE:
ldr r1, _0818C408
ldr r0, _0818C40C
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C410
str r1, [r0]
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0818C3FC: .4byte 0x02023D12
_0818C400: .4byte 0x02024190
_0818C404: .4byte 0x03005AD0
_0818C408: .4byte 0x03005AC0
_0818C40C: .4byte 0x02023D08
_0818C410: .4byte 0x08189DD1
thumb_func_end RecordedPlayerHandleHealthBarUpdate
thumb_func_start RecordedPlayerHandleExpUpdate
RecordedPlayerHandleExpUpdate: @ 0x0818C414
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleExpUpdate
thumb_func_start RecordedPlayerHandleStatusIconUpdate
RecordedPlayerHandleStatusIconUpdate: @ 0x0818C420
push {r4, lr}
ldr r4, _0818C47C
ldrb r0, [r4]
bl mplay_80342A4
lsls r0, r0, #0x18
cmp r0, #0
bne _0818C474
ldr r0, _0818C480
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, _0818C484
lsls r1, r1, #1
adds r1, r1, r2
ldrh r2, [r1]
movs r1, #0x64
muls r1, r2, r1
ldr r2, _0818C488
adds r1, r1, r2
movs r2, #9
bl UpdateHealthboxAttribute
ldrb r2, [r4]
ldr r0, _0818C48C
ldr r0, [r0]
ldr r0, [r0, #4]
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
ldrb r2, [r1]
movs r0, #0x11
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, _0818C490
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C494
str r1, [r0]
_0818C474:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818C47C: .4byte 0x02023D08
_0818C480: .4byte 0x03005AD0
_0818C484: .4byte 0x02023D12
_0818C488: .4byte 0x02024190
_0818C48C: .4byte 0x02024174
_0818C490: .4byte 0x03005AC0
_0818C494: .4byte 0x0818A2B9
thumb_func_end RecordedPlayerHandleStatusIconUpdate
thumb_func_start RecordedPlayerHandleStatusAnimation
RecordedPlayerHandleStatusAnimation: @ 0x0818C498
push {r4, r5, lr}
ldr r5, _0818C4F0
ldrb r0, [r5]
bl mplay_80342A4
lsls r0, r0, #0x18
cmp r0, #0
bne _0818C4E8
ldr r4, _0818C4F4
ldrb r3, [r5]
lsls r3, r3, #9
adds r0, r4, #1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, #2
adds r1, r3, r1
ldrb r1, [r1]
adds r2, r4, #3
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, r2, #8
orrs r1, r2
adds r2, r4, #4
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, r2, #0x10
orrs r1, r2
adds r4, #5
adds r3, r3, r4
ldrb r2, [r3]
lsls r2, r2, #0x18
orrs r1, r2
bl InitAndLaunchChosenStatusAnimation
ldr r1, _0818C4F8
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C4FC
str r1, [r0]
_0818C4E8:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0818C4F0: .4byte 0x02023D08
_0818C4F4: .4byte 0x02022D08
_0818C4F8: .4byte 0x03005AC0
_0818C4FC: .4byte 0x0818A2B9
thumb_func_end RecordedPlayerHandleStatusAnimation
thumb_func_start RecordedPlayerHandleStatusXor
RecordedPlayerHandleStatusXor: @ 0x0818C500
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleStatusXor
thumb_func_start RecordedPlayerHandleDataTransfer
RecordedPlayerHandleDataTransfer: @ 0x0818C50C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleDataTransfer
thumb_func_start RecordedPlayerHandleDMA3Transfer
RecordedPlayerHandleDMA3Transfer: @ 0x0818C518
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleDMA3Transfer
thumb_func_start RecordedPlayerHandlePlayBGM
RecordedPlayerHandlePlayBGM: @ 0x0818C524
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandlePlayBGM
thumb_func_start RecordedPlayerHandleCmd32
RecordedPlayerHandleCmd32: @ 0x0818C530
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleCmd32
thumb_func_start sub_0818C53C
sub_0818C53C: @ 0x0818C53C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0818C53C
thumb_func_start sub_0818C548
sub_0818C548: @ 0x0818C548
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0818C548
thumb_func_start sub_0818C554
sub_0818C554: @ 0x0818C554
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end sub_0818C554
thumb_func_start RecordedPlayerHandleOneReturnValue_Duplicate
RecordedPlayerHandleOneReturnValue_Duplicate: @ 0x0818C560
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleOneReturnValue_Duplicate
thumb_func_start RecordedPlayerHandleCmd37
RecordedPlayerHandleCmd37: @ 0x0818C56C
push {lr}
ldr r2, _0818C584
ldrb r1, [r2]
movs r0, #0x80
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818C584: .4byte 0x020229C0
thumb_func_end RecordedPlayerHandleCmd37
thumb_func_start RecordedPlayerHandleCmd38
RecordedPlayerHandleCmd38: @ 0x0818C588
push {lr}
ldr r3, _0818C5B4
ldr r1, _0818C5B8
ldr r0, _0818C5BC
ldrb r0, [r0]
lsls r0, r0, #9
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
ldrb r2, [r3]
movs r0, #0x80
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818C5B4: .4byte 0x020229C0
_0818C5B8: .4byte 0x02022D08
_0818C5BC: .4byte 0x02023D08
thumb_func_end RecordedPlayerHandleCmd38
thumb_func_start RecordedPlayerHandleCmd39
RecordedPlayerHandleCmd39: @ 0x0818C5C0
push {lr}
ldr r2, _0818C5D4
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818C5D4: .4byte 0x020229C0
thumb_func_end RecordedPlayerHandleCmd39
thumb_func_start RecordedPlayerHandleCmd40
RecordedPlayerHandleCmd40: @ 0x0818C5D8
push {lr}
ldr r3, _0818C5FC
ldr r1, [r3]
lsls r1, r1, #0x18
lsrs r1, r1, #0x1f
movs r0, #1
eors r1, r0
lsls r1, r1, #7
ldrb r2, [r3]
movs r0, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818C5FC: .4byte 0x020229C0
thumb_func_end RecordedPlayerHandleCmd40
thumb_func_start sub_0818C600
sub_0818C600: @ 0x0818C600
push {r4, lr}
ldr r3, _0818C628
ldr r2, _0818C62C
ldr r4, _0818C630
ldrb r0, [r4]
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
adds r0, #0x3e
ldrb r0, [r0]
lsls r0, r0, #0x1d
cmp r0, #0
bge _0818C634
bl RecordedPlayerBufferExecCompleted
b _0818C65E
.align 2, 0
_0818C628: .4byte 0x020205AC
_0818C62C: .4byte 0x02023E88
_0818C630: .4byte 0x02023D08
_0818C634:
ldr r1, _0818C664
movs r0, #1
strb r0, [r1]
ldrb r0, [r4]
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r3
movs r1, #0
strh r1, [r0, #0x30]
ldrb r0, [r4]
bl DoHitAnimHealthboxEffect
ldr r1, _0818C668
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C66C
str r1, [r0]
_0818C65E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818C664: .4byte 0x0202415D
_0818C668: .4byte 0x03005AC0
_0818C66C: .4byte 0x08189F65
thumb_func_end sub_0818C600
thumb_func_start RecordedPlayerHandleCmd42
RecordedPlayerHandleCmd42: @ 0x0818C670
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleCmd42
thumb_func_start sub_0818C67C
sub_0818C67C: @ 0x0818C67C
push {r4, lr}
ldr r4, _0818C6B8
ldrb r0, [r4]
bl GetBattlerSide
lsls r0, r0, #0x18
movs r3, #0x3f
cmp r0, #0
bne _0818C690
movs r3, #0xc0
_0818C690:
ldr r2, _0818C6BC
ldrb r1, [r4]
lsls r1, r1, #9
adds r0, r2, #1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, #2
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #8
orrs r0, r1
lsls r1, r3, #0x18
asrs r1, r1, #0x18
bl PlaySE12WithPanning
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818C6B8: .4byte 0x02023D08
_0818C6BC: .4byte 0x02022D08
thumb_func_end sub_0818C67C
thumb_func_start RecordedPlayerHandlePlayFanfareOrBGM
RecordedPlayerHandlePlayFanfareOrBGM: @ 0x0818C6C0
push {r4, r5, lr}
ldr r4, _0818C6F4
ldr r5, _0818C6F8
ldrb r0, [r5]
lsls r3, r0, #9
adds r0, r4, #3
adds r0, r3, r0
ldrb r0, [r0]
cmp r0, #0
beq _0818C6FC
bl BattleStopLowHpSound
ldrb r1, [r5]
lsls r1, r1, #9
adds r0, r4, #1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, r4, #2
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #8
orrs r0, r1
bl PlayBGM
b _0818C710
.align 2, 0
_0818C6F4: .4byte 0x02022D08
_0818C6F8: .4byte 0x02023D08
_0818C6FC:
adds r0, r4, #1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, #2
adds r1, r3, r1
ldrb r1, [r1]
lsls r1, r1, #8
orrs r0, r1
bl PlayFanfare
_0818C710:
bl RecordedPlayerBufferExecCompleted
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandlePlayFanfareOrBGM
thumb_func_start RecordedPlayerHandleFaintingCry
RecordedPlayerHandleFaintingCry: @ 0x0818C71C
push {lr}
ldr r1, _0818C750
ldr r0, _0818C754
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _0818C758
adds r0, r0, r1
movs r1, #0xb
bl GetMonData
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x19
rsbs r1, r1, #0
movs r2, #5
bl PlayCry3
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818C750: .4byte 0x02023D12
_0818C754: .4byte 0x02023D08
_0818C758: .4byte 0x02024190
thumb_func_end RecordedPlayerHandleFaintingCry
thumb_func_start RecordedPlayerHandleIntroSlide
RecordedPlayerHandleIntroSlide: @ 0x0818C75C
push {lr}
ldr r1, _0818C784
ldr r0, _0818C788
ldrb r0, [r0]
lsls r0, r0, #9
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
bl HandleIntroSlide
ldr r2, _0818C78C
ldrh r0, [r2]
movs r1, #1
orrs r0, r1
strh r0, [r2]
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818C784: .4byte 0x02022D08
_0818C788: .4byte 0x02023D08
_0818C78C: .4byte 0x020240A0
thumb_func_end RecordedPlayerHandleIntroSlide
thumb_func_start RecordedPlayerHandleIntroTrainerBallThrow
RecordedPlayerHandleIntroTrainerBallThrow: @ 0x0818C790
push {r4, r5, r6, lr}
ldr r5, _0818C85C
ldr r6, _0818C860
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
ldr r4, _0818C864
adds r0, r0, r4
bl SetSpritePrimaryCoordsFromSecondaryCoords
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #0x32
strh r1, [r0, #0x2e]
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0818C868
strh r1, [r0, #0x32]
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldrh r1, [r0, #0x22]
strh r1, [r0, #0x36]
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x1c
adds r0, r0, r1
ldr r1, _0818C86C
str r1, [r0]
ldrb r2, [r6]
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
strh r2, [r0, #0x38]
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, _0818C870
bl StoreSpriteCallbackInData6
ldrb r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r4
movs r1, #1
bl StartSpriteAnim
ldr r0, _0818C874
bl AllocSpritePalette
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _0818C878
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #0x12
ands r0, r1
cmp r0, #0
beq _0818C880
ldr r4, _0818C87C
ldrb r0, [r6]
bl GetBattlerMultiplayerId
lsls r1, r0, #3
subs r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r4
ldrb r0, [r1, #0x13]
b _0818C886
.align 2, 0
_0818C85C: .4byte 0x02023E88
_0818C860: .4byte 0x02023D08
_0818C864: .4byte 0x020205AC
_0818C868: .4byte 0x0000FFD8
_0818C86C: .4byte 0x080A67B5
_0818C870: .4byte 0x0805C81D
_0818C874: .4byte 0x0000D6F9
_0818C878: .4byte 0x02022C90
_0818C87C: .4byte 0x020226A0
_0818C880:
ldr r0, _0818C920
ldr r0, [r0]
ldrb r0, [r0, #8]
_0818C886:
ldr r1, _0818C924
lsls r0, r0, #3
adds r0, r0, r1
ldr r0, [r0]
lsls r4, r5, #4
movs r2, #0x80
lsls r2, r2, #1
adds r1, r4, r2
movs r2, #0x20
bl LoadCompressedPalette
ldr r2, _0818C928
ldr r1, _0818C92C
ldr r5, _0818C930
ldrb r0, [r5]
adds r0, r0, r1
ldrb r0, [r0]
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r1, r1, r2
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
orrs r0, r4
strb r0, [r1, #5]
ldr r0, _0818C934
movs r1, #5
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r4, _0818C938
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r4
ldrb r0, [r5]
strh r0, [r1, #8]
ldr r3, _0818C93C
ldr r0, [r3]
ldrb r2, [r5]
ldr r1, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0818C900
ldr r0, _0818C940
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r4
ldr r1, _0818C944
str r1, [r0]
_0818C900:
ldr r0, [r3]
ldr r2, [r0, #8]
ldrb r0, [r2, #9]
movs r1, #1
orrs r0, r1
strb r0, [r2, #9]
ldr r1, _0818C948
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818C94C
str r1, [r0]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818C920: .4byte 0x03005AF0
_0818C924: .4byte 0x082D961C
_0818C928: .4byte 0x020205AC
_0818C92C: .4byte 0x02023E88
_0818C930: .4byte 0x02023D08
_0818C934: .4byte 0x0818C951
_0818C938: .4byte 0x03005B60
_0818C93C: .4byte 0x02024174
_0818C940: .4byte 0x02024158
_0818C944: .4byte 0x0807352D
_0818C948: .4byte 0x03005AC0
_0818C94C: .4byte 0x08189675
thumb_func_end RecordedPlayerHandleIntroTrainerBallThrow
thumb_func_start sub_0818C950
sub_0818C950: @ 0x0818C950
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
mov r8, r0
ldr r1, _0818C978
lsls r0, r0, #2
add r0, r8
lsls r0, r0, #3
adds r1, r0, r1
ldrh r2, [r1, #0xa]
movs r3, #0xa
ldrsh r0, [r1, r3]
cmp r0, #0x17
bgt _0818C97C
adds r0, r2, #1
strh r0, [r1, #0xa]
b _0818CA38
.align 2, 0
_0818C978: .4byte 0x03005B60
_0818C97C:
ldr r7, _0818C9BC
ldrb r0, [r7]
mov sb, r0
ldrh r0, [r1, #8]
strb r0, [r7]
bl IsDoubleBattle
lsls r0, r0, #0x18
cmp r0, #0
beq _0818C99C
ldr r0, _0818C9C0
ldr r0, [r0]
movs r1, #0x40
ands r0, r1
cmp r0, #0
beq _0818C9CC
_0818C99C:
ldr r0, _0818C9C4
ldrb r1, [r7]
lsls r2, r1, #9
adds r0, #1
adds r2, r2, r0
ldr r0, _0818C9C8
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
strb r0, [r2]
ldrb r0, [r7]
movs r1, #0
bl sub_0818B798
b _0818CA20
.align 2, 0
_0818C9BC: .4byte 0x02023D08
_0818C9C0: .4byte 0x02022C90
_0818C9C4: .4byte 0x02022D08
_0818C9C8: .4byte 0x02023D12
_0818C9CC:
ldr r4, _0818CA44
ldrb r0, [r7]
lsls r1, r0, #9
adds r4, #1
adds r1, r1, r4
ldr r5, _0818CA48
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, #0
bl sub_0818B798
ldrb r0, [r7]
movs r6, #2
eors r0, r6
strb r0, [r7]
ldrb r0, [r7]
lsls r1, r0, #9
adds r1, r1, r4
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
strb r0, [r1]
ldrb r1, [r7]
lsls r0, r1, #1
adds r0, r0, r5
ldrh r2, [r0]
movs r0, #0x64
muls r0, r2, r0
ldr r2, _0818CA4C
adds r0, r0, r2
bl BattleLoadPlayerMonSpriteGfx
ldrb r0, [r7]
movs r1, #0
bl sub_0818B798
ldrb r0, [r7]
eors r0, r6
strb r0, [r7]
_0818CA20:
ldr r1, _0818CA50
ldr r2, _0818CA54
ldrb r0, [r2]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818CA58
str r1, [r0]
mov r3, sb
strb r3, [r2]
mov r0, r8
bl DestroyTask
_0818CA38:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0818CA44: .4byte 0x02022D08
_0818CA48: .4byte 0x02023D12
_0818CA4C: .4byte 0x02024190
_0818CA50: .4byte 0x03005AC0
_0818CA54: .4byte 0x02023D08
_0818CA58: .4byte 0x08189A6D
thumb_func_end sub_0818C950
thumb_func_start RecordedPlayerHandleDrawPartyStatusSummary
RecordedPlayerHandleDrawPartyStatusSummary: @ 0x0818CA5C
push {r4, r5, r6, lr}
ldr r1, _0818CA84
ldr r0, _0818CA88
ldrb r2, [r0]
lsls r0, r2, #9
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq _0818CA8C
adds r0, r2, #0
bl GetBattlerSide
lsls r0, r0, #0x18
cmp r0, #0
bne _0818CA8C
bl RecordedPlayerBufferExecCompleted
b _0818CB00
.align 2, 0
_0818CA84: .4byte 0x02022D08
_0818CA88: .4byte 0x02023D08
_0818CA8C:
ldr r6, _0818CB08
ldr r0, [r6]
ldr r5, _0818CB0C
ldrb r1, [r5]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0]
movs r2, #1
orrs r1, r2
strb r1, [r0]
ldrb r0, [r5]
lsls r3, r0, #9
ldr r4, _0818CB10
adds r1, r3, r4
subs r2, r4, #3
adds r2, r3, r2
ldrb r2, [r2]
subs r4, #2
adds r3, r3, r4
ldrb r3, [r3]
bl CreatePartyStatusSummarySprites
ldr r2, _0818CB14
ldrb r1, [r5]
adds r1, r1, r2
movs r3, #0
strb r0, [r1]
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
strb r3, [r0, #5]
ldrb r2, [r5]
lsls r0, r2, #9
adds r0, r0, r4
ldrb r0, [r0]
cmp r0, #0
beq _0818CAF4
ldr r0, [r6]
ldr r1, [r0, #4]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #2
adds r0, r0, r1
movs r1, #0x5d
strb r1, [r0, #5]
_0818CAF4:
ldr r0, _0818CB18
ldrb r1, [r5]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, _0818CB1C
str r0, [r1]
_0818CB00:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818CB08: .4byte 0x02024174
_0818CB0C: .4byte 0x02023D08
_0818CB10: .4byte 0x02022D0C
_0818CB14: .4byte 0x02024158
_0818CB18: .4byte 0x03005AC0
_0818CB1C: .4byte 0x0818CB21
thumb_func_end RecordedPlayerHandleDrawPartyStatusSummary
thumb_func_start sub_0818CB20
sub_0818CB20: @ 0x0818CB20
push {r4, lr}
ldr r4, _0818CB60
ldr r0, [r4]
ldr r3, _0818CB64
ldrb r1, [r3]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #5]
adds r2, r1, #1
strb r2, [r0, #5]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0x5c
bls _0818CB58
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, #4]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
movs r1, #0
strb r1, [r0, #5]
bl RecordedPlayerBufferExecCompleted
_0818CB58:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818CB60: .4byte 0x02024174
_0818CB64: .4byte 0x02023D08
thumb_func_end sub_0818CB20
thumb_func_start RecordedPlayerHandleHidePartyStatusSummary
RecordedPlayerHandleHidePartyStatusSummary: @ 0x0818CB68
push {lr}
ldr r0, _0818CBA4
ldr r1, [r0]
ldr r0, _0818CBA8
ldrb r3, [r0]
ldr r1, [r1, #4]
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #2
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0818CB9A
ldr r2, _0818CBAC
ldr r0, _0818CBB0
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldr r1, _0818CBB4
str r1, [r0]
_0818CB9A:
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
_0818CBA4: .4byte 0x02024174
_0818CBA8: .4byte 0x02023D08
_0818CBAC: .4byte 0x03005B60
_0818CBB0: .4byte 0x02024158
_0818CBB4: .4byte 0x0807352D
thumb_func_end RecordedPlayerHandleHidePartyStatusSummary
thumb_func_start RecordedPlayerHandleEndBounceEffect
RecordedPlayerHandleEndBounceEffect: @ 0x0818CBB8
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleEndBounceEffect
thumb_func_start RecordedPlayerHandleSpriteInvisibility
RecordedPlayerHandleSpriteInvisibility: @ 0x0818CBC4
push {r4, lr}
ldr r4, _0818CC14
ldrb r0, [r4]
bl IsBattlerSpritePresent
lsls r0, r0, #0x18
cmp r0, #0
beq _0818CC0A
ldr r3, _0818CC18
ldr r0, _0818CC1C
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
lsls r2, r0, #4
adds r2, r2, r0
lsls r2, r2, #2
adds r2, r2, r3
ldr r0, _0818CC20
lsls r1, r1, #9
adds r0, #1
adds r1, r1, r0
adds r2, #0x3e
movs r0, #1
ldrb r1, [r1]
ands r1, r0
lsls r1, r1, #2
ldrb r3, [r2]
movs r0, #5
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4]
bl CopyBattleSpriteInvisibility
_0818CC0A:
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818CC14: .4byte 0x02023D08
_0818CC18: .4byte 0x020205AC
_0818CC1C: .4byte 0x02023E88
_0818CC20: .4byte 0x02022D08
thumb_func_end RecordedPlayerHandleSpriteInvisibility
thumb_func_start RecordedPlayerHandleBattleAnimation
RecordedPlayerHandleBattleAnimation: @ 0x0818CC24
push {r4, r5, r6, lr}
sub sp, #4
ldr r6, _0818CC68
ldrb r0, [r6]
bl mplay_80342A4
lsls r0, r0, #0x18
cmp r0, #0
bne _0818CC7C
ldr r5, _0818CC6C
ldrb r2, [r6]
lsls r1, r2, #9
adds r0, r5, #1
adds r0, r1, r0
ldrb r3, [r0]
adds r0, r5, #2
adds r0, r1, r0
ldrb r4, [r0]
adds r5, #3
adds r1, r1, r5
ldrb r0, [r1]
lsls r0, r0, #8
orrs r4, r0
str r4, [sp]
adds r0, r2, #0
adds r1, r2, #0
bl TryHandleLaunchBattleTableAnimation
lsls r0, r0, #0x18
cmp r0, #0
beq _0818CC70
bl RecordedPlayerBufferExecCompleted
b _0818CC7C
.align 2, 0
_0818CC68: .4byte 0x02023D08
_0818CC6C: .4byte 0x02022D08
_0818CC70:
ldr r0, _0818CC84
ldrb r1, [r6]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, _0818CC88
str r0, [r1]
_0818CC7C:
add sp, #4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0818CC84: .4byte 0x03005AC0
_0818CC88: .4byte 0x0818A2E9
thumb_func_end RecordedPlayerHandleBattleAnimation
thumb_func_start RecordedPlayerHandleLinkStandbyMsg
RecordedPlayerHandleLinkStandbyMsg: @ 0x0818CC8C
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleLinkStandbyMsg
thumb_func_start RecordedPlayerHandleResetActionMoveSelection
RecordedPlayerHandleResetActionMoveSelection: @ 0x0818CC98
push {lr}
bl RecordedPlayerBufferExecCompleted
pop {r0}
bx r0
.align 2, 0
thumb_func_end RecordedPlayerHandleResetActionMoveSelection
thumb_func_start RecordedPlayerHandleCmd55
RecordedPlayerHandleCmd55: @ 0x0818CCA4
push {r4, lr}
ldr r2, _0818CCDC
ldr r1, _0818CCE0
ldr r4, _0818CCE4
ldrb r0, [r4]
lsls r0, r0, #9
adds r1, #1
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r2]
movs r0, #5
bl FadeOutMapMusic
movs r0, #3
bl BeginFastPaletteFade
bl RecordedPlayerBufferExecCompleted
ldr r1, _0818CCE8
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, _0818CCEC
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0818CCDC: .4byte 0x02023FDE
_0818CCE0: .4byte 0x02022D08
_0818CCE4: .4byte 0x02023D08
_0818CCE8: .4byte 0x03005AC0
_0818CCEC: .4byte 0x080583C1
thumb_func_end RecordedPlayerHandleCmd55
thumb_func_start RecordedPlayerCmdEnd
RecordedPlayerCmdEnd: @ 0x0818CCF0
bx lr
.align 2, 0
thumb_func_end RecordedPlayerCmdEnd