summaryrefslogtreecommitdiff
path: root/asm/battle_controller_opponent.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_controller_opponent.s')
-rw-r--r--asm/battle_controller_opponent.s6736
1 files changed, 0 insertions, 6736 deletions
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
deleted file mode 100644
index 0c94035ee..000000000
--- a/asm/battle_controller_opponent.s
+++ /dev/null
@@ -1,6736 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_17
-nullsub_17: @ 8035A78
- bx lr
- thumb_func_end nullsub_17
-
- thumb_func_start sub_8035A7C
-sub_8035A7C: @ 8035A7C
- ldr r1, _08035A8C @ =gUnknown_3004FE0
- ldr r0, _08035A90 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035A94 @ =sub_8035A98
- str r1, [r0]
- bx lr
- .align 2, 0
-_08035A8C: .4byte gUnknown_3004FE0
-_08035A90: .4byte gActiveBattler
-_08035A94: .4byte sub_8035A98
- thumb_func_end sub_8035A7C
-
- thumb_func_start sub_8035A98
-sub_8035A98: @ 8035A98
- push {lr}
- ldr r2, _08035ACC @ =gUnknown_2023BC8
- ldr r1, _08035AD0 @ =gBitTable
- ldr r0, _08035AD4 @ =gActiveBattler
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08035AE4
- ldr r0, _08035AD8 @ =gUnknown_2022BC4
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08035AE0
- ldr r0, _08035ADC @ =gUnknown_8250A34
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08035AE4
- .align 2, 0
-_08035ACC: .4byte gUnknown_2023BC8
-_08035AD0: .4byte gBitTable
-_08035AD4: .4byte gActiveBattler
-_08035AD8: .4byte gUnknown_2022BC4
-_08035ADC: .4byte gUnknown_8250A34
-_08035AE0:
- bl OpponentBufferExecCompleted
-_08035AE4:
- pop {r0}
- bx r0
- thumb_func_end sub_8035A98
-
- thumb_func_start sub_8035AE8
-sub_8035AE8: @ 8035AE8
- push {lr}
- ldr r2, _08035B10 @ =gSprites
- ldr r1, _08035B14 @ =gBattlerSpriteIds
- ldr r0, _08035B18 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08035B1C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08035B0C
- bl OpponentBufferExecCompleted
-_08035B0C:
- pop {r0}
- bx r0
- .align 2, 0
-_08035B10: .4byte gSprites
-_08035B14: .4byte gBattlerSpriteIds
-_08035B18: .4byte gActiveBattler
-_08035B1C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8035AE8
-
- thumb_func_start sub_8035B20
-sub_8035B20: @ 8035B20
- push {lr}
- ldr r2, _08035B48 @ =gSprites
- ldr r1, _08035B4C @ =gBattlerSpriteIds
- ldr r0, _08035B50 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08035B54 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08035B44
- bl OpponentBufferExecCompleted
-_08035B44:
- pop {r0}
- bx r0
- .align 2, 0
-_08035B48: .4byte gSprites
-_08035B4C: .4byte gBattlerSpriteIds
-_08035B50: .4byte gActiveBattler
-_08035B54: .4byte SpriteCallbackDummy
- thumb_func_end sub_8035B20
-
- thumb_func_start sub_8035B58
-sub_8035B58: @ 8035B58
- push {r4-r6,lr}
- ldr r4, _08035BD0 @ =gSprites
- ldr r6, _08035BD4 @ =gBattlerSpriteIds
- ldr r5, _08035BD8 @ =gActiveBattler
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08035BDC @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08035BC8
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_803477C
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _08035BE0 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08035BE4 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl OpponentBufferExecCompleted
-_08035BC8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035BD0: .4byte gSprites
-_08035BD4: .4byte gBattlerSpriteIds
-_08035BD8: .4byte gActiveBattler
-_08035BDC: .4byte SpriteCallbackDummy
-_08035BE0: .4byte 0x000003ff
-_08035BE4: .4byte 0xfffffc00
- thumb_func_end sub_8035B58
-
- thumb_func_start sub_8035BE8
-sub_8035BE8: @ 8035BE8
- push {r4,lr}
- ldr r4, _08035C28 @ =gUnknown_2024018
- ldr r1, [r4]
- ldr r3, _08035C2C @ =gActiveBattler
- ldrb r0, [r3]
- ldr r2, [r1, 0x4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08035C20
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- bl OpponentBufferExecCompleted
-_08035C20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035C28: .4byte gUnknown_2024018
-_08035C2C: .4byte gActiveBattler
- thumb_func_end sub_8035BE8
-
- thumb_func_start sub_8035C30
-sub_8035C30: @ 8035C30
- push {r4-r7,lr}
- movs r6, 0
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _08035C54
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _08035C88
- ldr r0, _08035C74 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08035C88
-_08035C54:
- ldr r2, _08035C78 @ =gSprites
- ldr r1, _08035C7C @ =gUnknown_3004FF0
- ldr r0, _08035C80 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08035C84 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08035CBE
- b _08035CBC
- .align 2, 0
-_08035C74: .4byte gBattleTypeFlags
-_08035C78: .4byte gSprites
-_08035C7C: .4byte gUnknown_3004FF0
-_08035C80: .4byte gActiveBattler
-_08035C84: .4byte SpriteCallbackDummy
-_08035C88:
- ldr r2, _08035D84 @ =gSprites
- ldr r5, _08035D88 @ =gUnknown_3004FF0
- ldr r0, _08035D8C @ =gActiveBattler
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _08035D90 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _08035CBE
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _08035CBE
-_08035CBC:
- movs r6, 0x1
-_08035CBE:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08035CCA
- movs r6, 0
-_08035CCA:
- cmp r6, 0
- bne _08035CD0
- b _08035DD2
-_08035CD0:
- ldr r0, _08035D94 @ =gUnknown_2024018
- mov r12, r0
- ldr r0, [r0]
- ldr r7, _08035D8C @ =gActiveBattler
- ldrb r2, [r7]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r3
- ldrb r1, [r4, 0x1]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08035DD2
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08035DD2
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- mov r1, r12
- ldr r0, [r1]
- ldrb r2, [r7]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- mov r0, r12
- ldr r2, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- mov r1, r12
- ldr r2, [r1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _08035D98 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _08035D9C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08035DA4
- ldr r0, _08035DA0 @ =gMPlayInfo_BGM
- bl m4aMPlayContinue
- b _08035DB0
- .align 2, 0
-_08035D84: .4byte gSprites
-_08035D88: .4byte gUnknown_3004FF0
-_08035D8C: .4byte gActiveBattler
-_08035D90: .4byte SpriteCallbackDummy
-_08035D94: .4byte gUnknown_2024018
-_08035D98: .4byte 0x000027f9
-_08035D9C: .4byte gBattleTypeFlags
-_08035DA0: .4byte gMPlayInfo_BGM
-_08035DA4:
- ldr r0, _08035DD8 @ =gMPlayInfo_BGM
- ldr r1, _08035DDC @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08035DB0:
- ldr r0, _08035DE0 @ =gUnknown_2024018
- ldr r0, [r0]
- ldr r3, _08035DE4 @ =gActiveBattler
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08035DE8 @ =gUnknown_3004FE0
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035DEC @ =sub_8035BE8
- str r1, [r0]
-_08035DD2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08035DD8: .4byte gMPlayInfo_BGM
-_08035DDC: .4byte 0x0000ffff
-_08035DE0: .4byte gUnknown_2024018
-_08035DE4: .4byte gActiveBattler
-_08035DE8: .4byte gUnknown_3004FE0
-_08035DEC: .4byte sub_8035BE8
- thumb_func_end sub_8035C30
-
- thumb_func_start sub_8035DF0
-sub_8035DF0: @ 8035DF0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _08035FC0 @ =gUnknown_2024018
- ldr r0, [r4]
- ldr r1, _08035FC4 @ =gActiveBattler
- mov r9, r1
- ldrb r2, [r1]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r5, 0x88
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08035E2C
- ldr r0, _08035FC8 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08035FCC @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_08035E2C:
- ldr r1, [r4]
- mov r2, r9
- ldrb r0, [r2]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- ldr r1, [r1, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08035E60
- ldr r0, _08035FC8 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08035FCC @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_08035E60:
- ldr r0, [r4]
- mov r1, r9
- ldrb r2, [r1]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- movs r4, 0x8
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08035E7E
- b _08035FB4
-_08035E7E:
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08035E96
- b _08035FB4
-_08035E96:
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _08035F28
- ldr r0, _08035FD0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08035F28
- ldr r1, _08035FD4 @ =gUnknown_3004FFC
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08035FD8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _08035FDC @ =gUnknown_3004FF0
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08035FC8 @ =gBattlerPartyIndexes
- mov r8, r2
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- movs r6, 0x64
- muls r1, r6
- ldr r5, _08035FCC @ =gEnemyParty
- adds r1, r5
- movs r2, 0
- bl UpdateHealthboxAttribute
- mov r1, r9
- ldrb r0, [r1]
- eors r0, r7
- bl sub_804BD94
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- mov r1, r9
- ldrb r0, [r1]
- adds r4, r7, 0
- eors r4, r0
- lsls r0, r4, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl SetBankEnemyShadowSpriteCallback
-_08035F28:
- ldr r1, _08035FD4 @ =gUnknown_3004FFC
- ldr r5, _08035FC4 @ =gActiveBattler
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08035FD8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _08035FDC @ =gUnknown_3004FF0
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08035FC8 @ =gBattlerPartyIndexes
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08035FCC @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl UpdateHealthboxAttribute
- ldrb r0, [r5]
- bl sub_804BD94
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- ldrb r4, [r5]
- lsls r0, r4, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl SetBankEnemyShadowSpriteCallback
- ldr r0, _08035FC0 @ =gUnknown_2024018
- ldr r0, [r0]
- ldr r2, [r0, 0x8]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08035FE0 @ =gUnknown_3004FE0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035FE4 @ =sub_8035C30
- str r1, [r0]
-_08035FB4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08035FC0: .4byte gUnknown_2024018
-_08035FC4: .4byte gActiveBattler
-_08035FC8: .4byte gBattlerPartyIndexes
-_08035FCC: .4byte gEnemyParty
-_08035FD0: .4byte gBattleTypeFlags
-_08035FD4: .4byte gUnknown_3004FFC
-_08035FD8: .4byte gSprites
-_08035FDC: .4byte gUnknown_3004FF0
-_08035FE0: .4byte gUnknown_3004FE0
-_08035FE4: .4byte sub_8035C30
- thumb_func_end sub_8035DF0
-
- thumb_func_start sub_8035FE8
-sub_8035FE8: @ 8035FE8
- push {r4-r7,lr}
- ldr r2, _08036044 @ =gSprites
- ldr r0, _08036048 @ =gBattlerSpriteIds
- ldr r7, _0803604C @ =gActiveBattler
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _08036094
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _08036094
- ldr r6, _08036050 @ =gUnknown_2024018
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- adds r1, r0, r1
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _0803605C
- ldr r0, _08036054 @ =gBattlerPartyIndexes
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08036058 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_80F1720
- b _08036094
- .align 2, 0
-_08036044: .4byte gSprites
-_08036048: .4byte gBattlerSpriteIds
-_0803604C: .4byte gActiveBattler
-_08036050: .4byte gUnknown_2024018
-_08036054: .4byte gBattlerPartyIndexes
-_08036058: .4byte gEnemyParty
-_0803605C:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _08036094
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldr r0, [r6]
- ldrb r2, [r7]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0803609C @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl OpponentBufferExecCompleted
-_08036094:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803609C: .4byte 0x000027f9
- thumb_func_end sub_8035FE8
-
- thumb_func_start sub_80360A0
-sub_80360A0: @ 80360A0
- push {r4-r6,lr}
- ldr r6, _080360E0 @ =gActiveBattler
- ldrb r0, [r6]
- ldr r5, _080360E4 @ =gUnknown_3004FF0
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8049FD8
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080360E8
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_8048440
- b _08036124
- .align 2, 0
-_080360E0: .4byte gActiveBattler
-_080360E4: .4byte gUnknown_3004FF0
-_080360E8:
- movs r0, 0x1
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _08036120
- ldr r0, _08036114 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08036120
- movs r0, 0x1
- bl sub_80EB2F4
- ldr r0, _08036118 @ =gUnknown_3004FE0
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803611C @ =sub_80E8570
- str r0, [r1]
- b _08036124
- .align 2, 0
-_08036114: .4byte gBattleTypeFlags
-_08036118: .4byte gUnknown_3004FE0
-_0803611C: .4byte sub_80E8570
-_08036120:
- bl OpponentBufferExecCompleted
-_08036124:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80360A0
-
- thumb_func_start sub_803612C
-sub_803612C: @ 803612C
- push {lr}
- ldr r2, _08036160 @ =gSprites
- ldr r0, _08036164 @ =gBattlerSpriteIds
- ldr r1, _08036168 @ =gActiveBattler
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0803615A
- ldr r0, _0803616C @ =gUnknown_3004FF0
- adds r0, r3, r0
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl OpponentBufferExecCompleted
-_0803615A:
- pop {r0}
- bx r0
- .align 2, 0
-_08036160: .4byte gSprites
-_08036164: .4byte gBattlerSpriteIds
-_08036168: .4byte gActiveBattler
-_0803616C: .4byte gUnknown_3004FF0
- thumb_func_end sub_803612C
-
- thumb_func_start sub_8036170
-sub_8036170: @ 8036170
- push {r4-r6,lr}
- ldr r0, _080361D0 @ =gUnknown_2024018
- ldr r0, [r0]
- ldr r6, _080361D4 @ =gActiveBattler
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080361CA
- ldr r5, _080361D8 @ =gBattlerSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080361DC @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl EnemyShadowCallbackToSetInvisible
- ldr r1, _080361E0 @ =gUnknown_3004FF0
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl OpponentBufferExecCompleted
-_080361CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080361D0: .4byte gUnknown_2024018
-_080361D4: .4byte gActiveBattler
-_080361D8: .4byte gBattlerSpriteIds
-_080361DC: .4byte gSprites
-_080361E0: .4byte gUnknown_3004FF0
- thumb_func_end sub_8036170
-
- thumb_func_start sub_80361E4
-sub_80361E4: @ 80361E4
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080361F6
- bl OpponentBufferExecCompleted
-_080361F6:
- pop {r0}
- bx r0
- thumb_func_end sub_80361E4
-
- thumb_func_start sub_80361FC
-sub_80361FC: @ 80361FC
- push {r4,lr}
- ldr r1, _08036238 @ =gBattlerSpriteIds
- ldr r0, _0803623C @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08036240 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _08036248
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08036244 @ =gUnknown_2024005
- strb r3, [r0]
- bl OpponentBufferExecCompleted
- b _08036272
- .align 2, 0
-_08036238: .4byte gBattlerSpriteIds
-_0803623C: .4byte gActiveBattler
-_08036240: .4byte gSprites
-_08036244: .4byte gUnknown_2024005
-_08036248:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0803626C
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0803626C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08036272:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80361FC
-
- thumb_func_start sub_8036278
-sub_8036278: @ 8036278
- push {r4,lr}
- ldr r2, _080362CC @ =gSprites
- ldr r0, _080362D0 @ =gUnknown_3004FF0
- ldr r4, _080362D4 @ =gActiveBattler
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080362D8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080362C4
- ldr r0, _080362DC @ =gUnknown_2024018
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080362B8
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl InitAndLaunchSpecialAnimation
-_080362B8:
- ldr r0, _080362E0 @ =gUnknown_3004FE0
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080362E4 @ =sub_80362E8
- str r0, [r1]
-_080362C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080362CC: .4byte gSprites
-_080362D0: .4byte gUnknown_3004FF0
-_080362D4: .4byte gActiveBattler
-_080362D8: .4byte SpriteCallbackDummy
-_080362DC: .4byte gUnknown_2024018
-_080362E0: .4byte gUnknown_3004FE0
-_080362E4: .4byte sub_80362E8
- thumb_func_end sub_8036278
-
- thumb_func_start sub_80362E8
-sub_80362E8: @ 80362E8
- push {lr}
- ldr r0, _08036324 @ =gUnknown_2024018
- ldr r2, [r0]
- ldr r0, _08036328 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08036320
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _08036320
- ldr r0, _0803632C @ =gMPlayInfo_BGM
- ldr r1, _08036330 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl OpponentBufferExecCompleted
-_08036320:
- pop {r0}
- bx r0
- .align 2, 0
-_08036324: .4byte gUnknown_2024018
-_08036328: .4byte gActiveBattler
-_0803632C: .4byte gMPlayInfo_BGM
-_08036330: .4byte 0x0000ffff
- thumb_func_end sub_80362E8
-
- thumb_func_start sub_8036334
-sub_8036334: @ 8036334
- push {r4,r5,lr}
- ldr r3, _080363E0 @ =gUnknown_2024018
- ldr r0, [r3]
- ldr r5, _080363E4 @ =gActiveBattler
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080363D8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldrb r2, [r5]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080363E8 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _080363EC @ =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080363F0 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _080363F4 @ =gUnknown_3004FF0
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _080363F8 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080363FC @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
- ldrb r0, [r5]
- bl sub_804BD94
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- ldrb r0, [r5]
- bl CopyBattleSpriteInvisibility
- ldr r1, _08036400 @ =gUnknown_3004FE0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08036404 @ =sub_8036278
- str r1, [r0]
-_080363D8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080363E0: .4byte gUnknown_2024018
-_080363E4: .4byte gActiveBattler
-_080363E8: .4byte 0x000027f9
-_080363EC: .4byte gBattlerSpriteIds
-_080363F0: .4byte gSprites
-_080363F4: .4byte gUnknown_3004FF0
-_080363F8: .4byte gBattlerPartyIndexes
-_080363FC: .4byte gEnemyParty
-_08036400: .4byte gUnknown_3004FE0
-_08036404: .4byte sub_8036278
- thumb_func_end sub_8036334
-
- thumb_func_start sub_8036408
-sub_8036408: @ 8036408
- push {r4-r6,lr}
- ldr r6, _080364AC @ =gUnknown_2024018
- ldr r0, [r6]
- ldr r5, _080364B0 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0803643A
- ldr r0, _080364B4 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080364B8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_0803643A:
- ldr r4, _080364BC @ =gSprites
- ldr r0, _080364C0 @ =gUnknown_3004FFC
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _080364C4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080364A4
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080364A4
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _080364B4 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080364B8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl SetBankEnemyShadowSpriteCallback
- ldr r1, _080364C8 @ =gUnknown_3004FE0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080364CC @ =sub_8036334
- str r1, [r0]
-_080364A4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080364AC: .4byte gUnknown_2024018
-_080364B0: .4byte gActiveBattler
-_080364B4: .4byte gBattlerPartyIndexes
-_080364B8: .4byte gEnemyParty
-_080364BC: .4byte gSprites
-_080364C0: .4byte gUnknown_3004FFC
-_080364C4: .4byte SpriteCallbackDummy
-_080364C8: .4byte gUnknown_3004FE0
-_080364CC: .4byte sub_8036334
- thumb_func_end sub_8036408
-
- thumb_func_start sub_80364D0
-sub_80364D0: @ 80364D0
- push {lr}
- ldr r0, _080364F8 @ =gUnknown_2024018
- ldr r2, [r0]
- ldr r0, _080364FC @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080364F2
- bl OpponentBufferExecCompleted
-_080364F2:
- pop {r0}
- bx r0
- .align 2, 0
-_080364F8: .4byte gUnknown_2024018
-_080364FC: .4byte gActiveBattler
- thumb_func_end sub_80364D0
-
- thumb_func_start sub_8036500
-sub_8036500: @ 8036500
- push {lr}
- ldr r0, _08036528 @ =gUnknown_2024018
- ldr r2, [r0]
- ldr r0, _0803652C @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08036522
- bl OpponentBufferExecCompleted
-_08036522:
- pop {r0}
- bx r0
- .align 2, 0
-_08036528: .4byte gUnknown_2024018
-_0803652C: .4byte gActiveBattler
- thumb_func_end sub_8036500
-
- thumb_func_start OpponentBufferExecCompleted
-OpponentBufferExecCompleted: @ 8036530
- ldr r1, _08036554 @ =gUnknown_3004FE0
- ldr r2, _08036558 @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803655C @ =sub_8035A98
- str r1, [r0]
- ldr r3, _08036560 @ =gUnknown_2023BC8
- ldr r1, _08036564 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- bx lr
- .align 2, 0
-_08036554: .4byte gUnknown_3004FE0
-_08036558: .4byte gActiveBattler
-_0803655C: .4byte sub_8035A98
-_08036560: .4byte gUnknown_2023BC8
-_08036564: .4byte gBitTable
- thumb_func_end OpponentBufferExecCompleted
-
- thumb_func_start OpponentHandleGetAttributes
-OpponentHandleGetAttributes: @ 8036568
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08036594 @ =gUnknown_2022BC4
- ldr r0, _08036598 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080365A0
- ldr r0, _0803659C @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_80365DC
- adds r6, r0, 0
- b _080365C2
- .align 2, 0
-_08036594: .4byte gUnknown_2022BC4
-_08036598: .4byte gActiveBattler
-_0803659C: .4byte gBattlerPartyIndexes
-_080365A0:
- ldrb r4, [r1]
- movs r5, 0
-_080365A4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080365BA
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_80365DC
- adds r6, r0
-_080365BA:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080365A4
-_080365C2:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl EmitDataTransfer
- bl OpponentBufferExecCompleted
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end OpponentHandleGetAttributes
-
- thumb_func_start sub_80365DC
-sub_80365DC: @ 80365DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08036610 @ =gUnknown_2022BC4
- ldr r3, _08036614 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _08036606
- bl _08036D72
-_08036606:
- lsls r0, 2
- ldr r1, _08036618 @ =_0803661C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08036610: .4byte gUnknown_2022BC4
-_08036614: .4byte gActiveBattler
-_08036618: .4byte _0803661C
- .align 2, 0
-_0803661C:
- .4byte _0803670C
- .4byte _08036930
- .4byte _08036940
- .4byte _08036950
- .4byte _080369B8
- .4byte _080369B8
- .4byte _080369B8
- .4byte _080369B8
- .4byte _080369D4
- .4byte _08036A10
- .4byte _08036A10
- .4byte _08036A10
- .4byte _08036A10
- .4byte _08036D72
- .4byte _08036D72
- .4byte _08036D72
- .4byte _08036D72
- .4byte _08036A2C
- .4byte _08036A3C
- .4byte _08036A6C
- .4byte _08036A7C
- .4byte _08036A8C
- .4byte _08036A9C
- .4byte _08036AAC
- .4byte _08036ABC
- .4byte _08036ACC
- .4byte _08036ADC
- .4byte _08036AEC
- .4byte _08036AFC
- .4byte _08036B0C
- .4byte _08036B1C
- .4byte _08036B2C
- .4byte _08036B7C
- .4byte _08036B8C
- .4byte _08036B9C
- .4byte _08036BAC
- .4byte _08036BBC
- .4byte _08036BCC
- .4byte _08036BDC
- .4byte _08036BEC
- .4byte _08036BFC
- .4byte _08036C30
- .4byte _08036C40
- .4byte _08036C50
- .4byte _08036C60
- .4byte _08036C70
- .4byte _08036C80
- .4byte _08036C90
- .4byte _08036CA0
- .4byte _08036CC0
- .4byte _08036CD0
- .4byte _08036CE0
- .4byte _08036CF0
- .4byte _08036D00
- .4byte _08036D10
- .4byte _08036D20
- .4byte _08036D30
- .4byte _08036D40
- .4byte _08036D50
- .4byte _08036D60
-_0803670C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08036920 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_08036758:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08036758
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08036920 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08036924 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _08036928 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _0803692C @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08036910:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08036910
- b _08036D72
- .align 2, 0
-_08036920: .4byte gEnemyParty
-_08036924: .4byte 0xfffffc1f
-_08036928: .4byte 0xfff07fff
-_0803692C: .4byte 0xfffffe0f
-_08036930:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803693C @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _08036CAA
- .align 2, 0
-_0803693C: .4byte gEnemyParty
-_08036940:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803694C @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _08036CAA
- .align 2, 0
-_0803694C: .4byte gEnemyParty
-_08036950:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080369B4 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_08036966:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _08036966
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080369B4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080369A4:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080369A4
- b _08036D72
- .align 2, 0
-_080369B4: .4byte gEnemyParty
-_080369B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080369D0 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08036CAA
- .align 2, 0
-_080369D0: .4byte gEnemyParty
-_080369D4:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08036A0C @ =gEnemyParty
- mov r8, r2
-_080369E0:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080369E0
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A0C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08036D72
- .align 2, 0
-_08036A0C: .4byte gEnemyParty
-_08036A10:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A28 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08036D6A
- .align 2, 0
-_08036A28: .4byte gEnemyParty
-_08036A2C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A38 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _08036A46
- .align 2, 0
-_08036A38: .4byte gEnemyParty
-_08036A3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A68 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_08036A46:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08036D72
- .align 2, 0
-_08036A68: .4byte gEnemyParty
-_08036A6C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A78 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _08036D6A
- .align 2, 0
-_08036A78: .4byte gEnemyParty
-_08036A7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A88 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _08036D6A
- .align 2, 0
-_08036A88: .4byte gEnemyParty
-_08036A8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036A98 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _08036D6A
- .align 2, 0
-_08036A98: .4byte gEnemyParty
-_08036A9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036AA8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _08036D6A
- .align 2, 0
-_08036AA8: .4byte gEnemyParty
-_08036AAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036AB8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _08036D6A
- .align 2, 0
-_08036AB8: .4byte gEnemyParty
-_08036ABC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036AC8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _08036D6A
- .align 2, 0
-_08036AC8: .4byte gEnemyParty
-_08036ACC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036AD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _08036D6A
- .align 2, 0
-_08036AD8: .4byte gEnemyParty
-_08036ADC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036AE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _08036D6A
- .align 2, 0
-_08036AE8: .4byte gEnemyParty
-_08036AEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036AF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _08036D6A
- .align 2, 0
-_08036AF8: .4byte gEnemyParty
-_08036AFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036B08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _08036D6A
- .align 2, 0
-_08036B08: .4byte gEnemyParty
-_08036B0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036B18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _08036D6A
- .align 2, 0
-_08036B18: .4byte gEnemyParty
-_08036B1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036B28 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _08036D6A
- .align 2, 0
-_08036B28: .4byte gEnemyParty
-_08036B2C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08036B78 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08036D72
- .align 2, 0
-_08036B78: .4byte gEnemyParty
-_08036B7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036B88 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _08036D6A
- .align 2, 0
-_08036B88: .4byte gEnemyParty
-_08036B8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036B98 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _08036D6A
- .align 2, 0
-_08036B98: .4byte gEnemyParty
-_08036B9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036BA8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _08036D6A
- .align 2, 0
-_08036BA8: .4byte gEnemyParty
-_08036BAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036BB8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _08036D6A
- .align 2, 0
-_08036BB8: .4byte gEnemyParty
-_08036BBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036BC8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _08036D6A
- .align 2, 0
-_08036BC8: .4byte gEnemyParty
-_08036BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036BD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _08036D6A
- .align 2, 0
-_08036BD8: .4byte gEnemyParty
-_08036BDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036BE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _08036C06
- .align 2, 0
-_08036BE8: .4byte gEnemyParty
-_08036BEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036BF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _08036CAA
- .align 2, 0
-_08036BF8: .4byte gEnemyParty
-_08036BFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C2C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_08036C06:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08036D72
- .align 2, 0
-_08036C2C: .4byte gEnemyParty
-_08036C30:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C3C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _08036D6A
- .align 2, 0
-_08036C3C: .4byte gEnemyParty
-_08036C40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C4C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _08036CAA
- .align 2, 0
-_08036C4C: .4byte gEnemyParty
-_08036C50:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _08036CAA
- .align 2, 0
-_08036C5C: .4byte gEnemyParty
-_08036C60:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C6C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _08036CAA
- .align 2, 0
-_08036C6C: .4byte gEnemyParty
-_08036C70:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C7C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _08036CAA
- .align 2, 0
-_08036C7C: .4byte gEnemyParty
-_08036C80:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C8C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _08036CAA
- .align 2, 0
-_08036C8C: .4byte gEnemyParty
-_08036C90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036C9C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _08036CAA
- .align 2, 0
-_08036C9C: .4byte gEnemyParty
-_08036CA0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036CBC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_08036CAA:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08036D72
- .align 2, 0
-_08036CBC: .4byte gEnemyParty
-_08036CC0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036CCC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _08036D6A
- .align 2, 0
-_08036CCC: .4byte gEnemyParty
-_08036CD0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036CDC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _08036D6A
- .align 2, 0
-_08036CDC: .4byte gEnemyParty
-_08036CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036CEC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _08036D6A
- .align 2, 0
-_08036CEC: .4byte gEnemyParty
-_08036CF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036CFC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _08036D6A
- .align 2, 0
-_08036CFC: .4byte gEnemyParty
-_08036D00:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D0C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _08036D6A
- .align 2, 0
-_08036D0C: .4byte gEnemyParty
-_08036D10:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D1C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _08036D6A
- .align 2, 0
-_08036D1C: .4byte gEnemyParty
-_08036D20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D2C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _08036D6A
- .align 2, 0
-_08036D2C: .4byte gEnemyParty
-_08036D30:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D3C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _08036D6A
- .align 2, 0
-_08036D3C: .4byte gEnemyParty
-_08036D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D4C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _08036D6A
- .align 2, 0
-_08036D4C: .4byte gEnemyParty
-_08036D50:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _08036D6A
- .align 2, 0
-_08036D5C: .4byte gEnemyParty
-_08036D60:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08036D84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_08036D6A:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08036D72:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08036D84: .4byte gEnemyParty
- thumb_func_end sub_80365DC
-
- thumb_func_start OpponentHandlecmd1
-OpponentHandlecmd1: @ 8036D88
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _08036E00 @ =gBattlerPartyIndexes
- ldr r5, _08036E04 @ =gActiveBattler
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _08036E08 @ =gUnknown_2022BC4
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _08036E0C @ =gEnemyParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08036DDE
- adds r3, r0, 0
-_08036DC4:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _08036DC4
-_08036DDE:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl EmitDataTransfer
- bl OpponentBufferExecCompleted
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08036E00: .4byte gBattlerPartyIndexes
-_08036E04: .4byte gActiveBattler
-_08036E08: .4byte gUnknown_2022BC4
-_08036E0C: .4byte gEnemyParty
- thumb_func_end OpponentHandlecmd1
-
- thumb_func_start OpponentHandleSetAttributes
-OpponentHandleSetAttributes: @ 8036E10
- push {r4,r5,lr}
- ldr r1, _08036E34 @ =gUnknown_2022BC4
- ldr r0, _08036E38 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08036E40
- ldr r0, _08036E3C @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8036E68
- b _08036E5E
- .align 2, 0
-_08036E34: .4byte gUnknown_2022BC4
-_08036E38: .4byte gActiveBattler
-_08036E3C: .4byte gBattlerPartyIndexes
-_08036E40:
- ldrb r4, [r1]
- movs r5, 0
-_08036E44:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08036E52
- adds r0, r5, 0
- bl sub_8036E68
-_08036E52:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08036E44
-_08036E5E:
- bl OpponentBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end OpponentHandleSetAttributes
-
- thumb_func_start sub_8036E68
-sub_8036E68: @ 8036E68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08036EA0 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _08036EA4 @ =gUnknown_2022BC7
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _08036E96
- bl _08037774
-_08036E96:
- lsls r0, 2
- ldr r1, _08036EA8 @ =_08036EAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08036EA0: .4byte gActiveBattler
-_08036EA4: .4byte gUnknown_2022BC7
-_08036EA8: .4byte _08036EAC
- .align 2, 0
-_08036EAC:
- .4byte _08036F9C
- .4byte _08037134
- .4byte _08037150
- .4byte _0803716C
- .4byte _080371C0
- .4byte _080371C0
- .4byte _080371C0
- .4byte _080371C0
- .4byte _080371E0
- .4byte _08037248
- .4byte _08037248
- .4byte _08037248
- .4byte _08037248
- .4byte _08037774
- .4byte _08037774
- .4byte _08037774
- .4byte _08037774
- .4byte _08037270
- .4byte _0803728C
- .4byte _080372A8
- .4byte _080372C4
- .4byte _080372E0
- .4byte _080372FC
- .4byte _08037318
- .4byte _08037334
- .4byte _08037350
- .4byte _0803736C
- .4byte _08037388
- .4byte _080373A4
- .4byte _080373C0
- .4byte _080373DC
- .4byte _080373F8
- .4byte _0803746C
- .4byte _08037488
- .4byte _080374A4
- .4byte _080374C0
- .4byte _080374DC
- .4byte _080374F8
- .4byte _08037514
- .4byte _08037530
- .4byte _0803754C
- .4byte _08037568
- .4byte _08037584
- .4byte _080375A0
- .4byte _080375BC
- .4byte _080375D8
- .4byte _080375F4
- .4byte _08037610
- .4byte _0803762C
- .4byte _08037648
- .4byte _08037664
- .4byte _08037680
- .4byte _0803769C
- .4byte _080376B8
- .4byte _080376D4
- .4byte _080376F0
- .4byte _0803770C
- .4byte _08037728
- .4byte _08037744
- .4byte _08037760
-_08036F9C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08037130 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08037002:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08037002
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08037130 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r7, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037130: .4byte gEnemyParty
-_08037134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803714C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803714C: .4byte gEnemyParty
-_08037150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037168: .4byte gEnemyParty
-_0803716C:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080371BC @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08037184:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08037184
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080371BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08037774
- .align 2, 0
-_080371BC: .4byte gEnemyParty
-_080371C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080371D8 @ =gEnemyParty
- adds r0, r1
- ldr r3, _080371DC @ =gUnknown_2022BC4
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0803725E
- .align 2, 0
-_080371D8: .4byte gEnemyParty
-_080371DC: .4byte gUnknown_2022BC4
-_080371E0:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08037244 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037244: .4byte gEnemyParty
-_08037248:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037268 @ =gEnemyParty
- adds r0, r1
- ldr r3, _0803726C @ =gUnknown_2022BC4
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0803725E:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037268: .4byte gEnemyParty
-_0803726C: .4byte gUnknown_2022BC4
-_08037270:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037288 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037288: .4byte gEnemyParty
-_0803728C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080372A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _08037774
- .align 2, 0
-_080372A4: .4byte gEnemyParty
-_080372A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080372C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _08037774
- .align 2, 0
-_080372C0: .4byte gEnemyParty
-_080372C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080372DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _08037774
- .align 2, 0
-_080372DC: .4byte gEnemyParty
-_080372E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080372F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _08037774
- .align 2, 0
-_080372F8: .4byte gEnemyParty
-_080372FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037314 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037314: .4byte gEnemyParty
-_08037318:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037330 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037330: .4byte gEnemyParty
-_08037334:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803734C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803734C: .4byte gEnemyParty
-_08037350:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037368 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037368: .4byte gEnemyParty
-_0803736C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037384 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037384: .4byte gEnemyParty
-_08037388:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080373A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _08037774
- .align 2, 0
-_080373A0: .4byte gEnemyParty
-_080373A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080373BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _08037774
- .align 2, 0
-_080373BC: .4byte gEnemyParty
-_080373C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080373D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _08037774
- .align 2, 0
-_080373D8: .4byte gEnemyParty
-_080373DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080373F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _08037774
- .align 2, 0
-_080373F4: .4byte gEnemyParty
-_080373F8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08037468 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08037506
- .align 2, 0
-_08037468: .4byte gEnemyParty
-_0803746C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037484 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037484: .4byte gEnemyParty
-_08037488:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080374A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _08037774
- .align 2, 0
-_080374A0: .4byte gEnemyParty
-_080374A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080374BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _08037774
- .align 2, 0
-_080374BC: .4byte gEnemyParty
-_080374C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080374D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _08037774
- .align 2, 0
-_080374D8: .4byte gEnemyParty
-_080374DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080374F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _08037774
- .align 2, 0
-_080374F4: .4byte gEnemyParty
-_080374F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037510 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08037506:
- movs r1, 0x2C
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037510: .4byte gEnemyParty
-_08037514:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803752C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803752C: .4byte gEnemyParty
-_08037530:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037548 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037548: .4byte gEnemyParty
-_0803754C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037564 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037564: .4byte gEnemyParty
-_08037568:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037580 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037580: .4byte gEnemyParty
-_08037584:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803759C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803759C: .4byte gEnemyParty
-_080375A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080375B8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _08037774
- .align 2, 0
-_080375B8: .4byte gEnemyParty
-_080375BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080375D4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _08037774
- .align 2, 0
-_080375D4: .4byte gEnemyParty
-_080375D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080375F0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _08037774
- .align 2, 0
-_080375F0: .4byte gEnemyParty
-_080375F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803760C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803760C: .4byte gEnemyParty
-_08037610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037628 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037628: .4byte gEnemyParty
-_0803762C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037644 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037644: .4byte gEnemyParty
-_08037648:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037660 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037660: .4byte gEnemyParty
-_08037664:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803767C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803767C: .4byte gEnemyParty
-_08037680:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037698 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037698: .4byte gEnemyParty
-_0803769C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080376B4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _08037774
- .align 2, 0
-_080376B4: .4byte gEnemyParty
-_080376B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080376D0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _08037774
- .align 2, 0
-_080376D0: .4byte gEnemyParty
-_080376D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080376EC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _08037774
- .align 2, 0
-_080376EC: .4byte gEnemyParty
-_080376F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037708 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037708: .4byte gEnemyParty
-_0803770C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037724 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037724: .4byte gEnemyParty
-_08037728:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037740 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _08037774
- .align 2, 0
-_08037740: .4byte gEnemyParty
-_08037744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803775C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _08037774
- .align 2, 0
-_0803775C: .4byte gEnemyParty
-_08037760:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08037784 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_08037774:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037784: .4byte gEnemyParty
- thumb_func_end sub_8036E68
-
- thumb_func_start OpponentHandlecmd3
-OpponentHandlecmd3: @ 8037788
- push {r4-r7,lr}
- ldr r1, _080377EC @ =gBattlerPartyIndexes
- ldr r7, _080377F0 @ =gActiveBattler
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _080377F4 @ =gUnknown_2022BC4
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _080377F8 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _080377E0
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_080377BE:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _080377BE
-_080377E0:
- bl OpponentBufferExecCompleted
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080377EC: .4byte gBattlerPartyIndexes
-_080377F0: .4byte gActiveBattler
-_080377F4: .4byte gUnknown_2022BC4
-_080377F8: .4byte gEnemyParty
- thumb_func_end OpponentHandlecmd3
-
- thumb_func_start sub_80377FC
-sub_80377FC: @ 80377FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0803787C @ =gBattlerPartyIndexes
- ldr r4, _08037880 @ =gActiveBattler
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r6, _08037884 @ =gEnemyParty
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08037888 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _08037890
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r6
- bl sub_8034658
- ldrb r0, [r4]
- bl sub_8074900
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _0803788C @ =gUnknown_2024018
- ldr r0, [r3]
- ldrb r1, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r4]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- b _080378AA
- .align 2, 0
-_0803787C: .4byte gBattlerPartyIndexes
-_08037880: .4byte gActiveBattler
-_08037884: .4byte gEnemyParty
-_08037888: .4byte gBattleTypeFlags
-_0803788C: .4byte gUnknown_2024018
-_08037890:
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r6
- bl BattleLoadOpponentMonSpriteGfx
- ldrb r0, [r4]
- bl GetBankSpriteDefault_Y
- lsls r0, 24
- lsrs r5, r0, 24
-_080378AA:
- ldr r7, _0803799C @ =gActiveBattler
- ldrb r0, [r7]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl SetMultiuseSpriteTemplateToPokemon
- ldr r6, _080379A0 @ =gMultiuseSpriteTemplate
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8074480
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r7]
- bl sub_807685C
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl CreateSprite
- ldr r4, _080379A4 @ =gBattlerSpriteIds
- ldrb r1, [r7]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080379A8 @ =gSprites
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080379AC @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r7]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r3, [r7]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r7]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080379B0 @ =gBattleMonForms
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldr r0, _080379B4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _08037986
- ldrb r4, [r7]
- ldr r1, _080379B8 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080379BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl SetBankEnemyShadowSpriteCallback
-_08037986:
- ldr r0, _080379C0 @ =gUnknown_3004FE0
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080379C4 @ =sub_8035FE8
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803799C: .4byte gActiveBattler
-_080379A0: .4byte gMultiuseSpriteTemplate
-_080379A4: .4byte gBattlerSpriteIds
-_080379A8: .4byte gSprites
-_080379AC: .4byte 0x0000ff10
-_080379B0: .4byte gBattleMonForms
-_080379B4: .4byte gBattleTypeFlags
-_080379B8: .4byte gBattlerPartyIndexes
-_080379BC: .4byte gEnemyParty
-_080379C0: .4byte gUnknown_3004FE0
-_080379C4: .4byte sub_8035FE8
- thumb_func_end sub_80377FC
-
- thumb_func_start OpponentHandleSwitchInAnim
-OpponentHandleSwitchInAnim: @ 80379C8
- push {r4,lr}
- ldr r4, _08037A10 @ =gActiveBattler
- ldrb r0, [r4]
- ldr r1, _08037A14 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- movs r1, 0x6
- strb r1, [r0]
- ldr r1, _08037A18 @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08037A1C @ =gUnknown_2022BC4
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8037A28
- ldr r1, _08037A20 @ =gUnknown_3004FE0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037A24 @ =sub_8036408
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037A10: .4byte gActiveBattler
-_08037A14: .4byte gBattleStruct
-_08037A18: .4byte gBattlerPartyIndexes
-_08037A1C: .4byte gUnknown_2022BC4
-_08037A20: .4byte gUnknown_3004FE0
-_08037A24: .4byte sub_8036408
- thumb_func_end OpponentHandleSwitchInAnim
-
- thumb_func_start sub_8037A28
-sub_8037A28: @ 8037A28
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl ClearTemporarySpeciesSpriteData
- ldr r0, _08037B84 @ =gBattlerPartyIndexes
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08037B88 @ =gUnknown_2022BC4
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08037B8C @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08037B90 @ =sub_8033E3C
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _08037B94 @ =gUnknown_3004FFC
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl BattleLoadOpponentMonSpriteGfx
- adds r0, r6, 0
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl SetMultiuseSpriteTemplateToPokemon
- ldr r0, _08037B98 @ =gMultiuseSpriteTemplate
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8074480
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl GetBankSpriteDefault_Y
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_807685C
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08037B9C @ =gBattlerSpriteIds
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08037BA0 @ =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08037BA4 @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08037BA8 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl DoPokeballSendOutAnimation
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037B84: .4byte gBattlerPartyIndexes
-_08037B88: .4byte gUnknown_2022BC4
-_08037B8C: .4byte gEnemyParty
-_08037B90: .4byte sub_8033E3C
-_08037B94: .4byte gUnknown_3004FFC
-_08037B98: .4byte gMultiuseSpriteTemplate
-_08037B9C: .4byte gBattlerSpriteIds
-_08037BA0: .4byte gSprites
-_08037BA4: .4byte gBattleMonForms
-_08037BA8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8037A28
-
- thumb_func_start sub_8037BAC
-sub_8037BAC: @ 8037BAC
- push {r4-r6,lr}
- ldr r1, _08037BE0 @ =gUnknown_2022BC4
- ldr r6, _08037BE4 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _08037BF4
- ldr r0, _08037BE8 @ =gUnknown_2024018
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _08037BEC @ =gUnknown_3004FE0
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037BF0 @ =sub_8037C44
- str r1, [r0]
- b _08037C30
- .align 2, 0
-_08037BE0: .4byte gUnknown_2022BC4
-_08037BE4: .4byte gActiveBattler
-_08037BE8: .4byte gUnknown_2024018
-_08037BEC: .4byte gUnknown_3004FE0
-_08037BF0: .4byte sub_8037C44
-_08037BF4:
- ldr r5, _08037C38 @ =gBattlerSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08037C3C @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl EnemyShadowCallbackToSetInvisible
- ldr r1, _08037C40 @ =gUnknown_3004FF0
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl OpponentBufferExecCompleted
-_08037C30:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037C38: .4byte gBattlerSpriteIds
-_08037C3C: .4byte gSprites
-_08037C40: .4byte gUnknown_3004FF0
- thumb_func_end sub_8037BAC
-
- thumb_func_start sub_8037C44
-sub_8037C44: @ 8037C44
- push {r4-r6,lr}
- ldr r6, _08037C64 @ =gUnknown_2024018
- ldr r4, [r6]
- ldr r5, _08037C68 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r1, [r4, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08037C6C
- cmp r0, 0x1
- beq _08037C9A
- b _08037CC2
- .align 2, 0
-_08037C64: .4byte gUnknown_2024018
-_08037C68: .4byte gActiveBattler
-_08037C6C:
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037C86
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_08037C86:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _08037CC2
-_08037C9A:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08037CC2
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl InitAndLaunchSpecialAnimation
- ldr r1, _08037CC8 @ =gUnknown_3004FE0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037CCC @ =sub_8036170
- str r1, [r0]
-_08037CC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037CC8: .4byte gUnknown_3004FE0
-_08037CCC: .4byte sub_8036170
- thumb_func_end sub_8037C44
-
- thumb_func_start sub_8037CD0
-sub_8037CD0: @ 8037CD0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08037CEC @ =gTrainerBattleOpponent_A
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08037CF0
- bl GetSecretBaseTrainerPicIndex
- b _08037D26
- .align 2, 0
-_08037CEC: .4byte gTrainerBattleOpponent_A
-_08037CF0:
- ldr r0, _08037D04 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08037D08
- bl sub_80E6078
- b _08037D26
- .align 2, 0
-_08037D04: .4byte gBattleTypeFlags
-_08037D08:
- movs r0, 0x80
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _08037D18
- bl sub_815DA3C
- b _08037D26
-_08037D18:
- movs r0, 0x80
- lsls r0, 4
- ands r1, r0
- cmp r1, 0
- beq _08037D2C
- bl GetEreaderTrainerFrontSpriteId
-_08037D26:
- lsls r0, 24
- lsrs r0, 24
- b _08037D3A
-_08037D2C:
- ldr r2, _08037E6C @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08037D3A:
- mov r9, r0
- ldr r0, _08037E70 @ =gActiveBattler
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_80346C4
- mov r1, r8
- ldrb r0, [r1]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r5, _08037E74 @ =gMultiuseSpriteTemplate
- ldr r1, _08037E78 @ =gUnknown_823932C
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_807685C
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- movs r1, 0xB0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _08037E7C @ =gBattlerSpriteIds
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08037E80 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08037E84 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08037E88 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08037E8C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08037E90 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08037E94 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08037E98 @ =sub_8033EEC
- str r1, [r0]
- ldr r1, _08037E9C @ =gUnknown_3004FE0
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037EA0 @ =sub_8035AE8
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037E6C: .4byte gTrainers
-_08037E70: .4byte gActiveBattler
-_08037E74: .4byte gMultiuseSpriteTemplate
-_08037E78: .4byte gUnknown_823932C
-_08037E7C: .4byte gBattlerSpriteIds
-_08037E80: .4byte gSprites
-_08037E84: .4byte 0x0000ff10
-_08037E88: .4byte gTrainerFrontPicPaletteTable
-_08037E8C: .4byte gTrainerFrontPicTable
-_08037E90: .4byte 0x000003ff
-_08037E94: .4byte 0xfffffc00
-_08037E98: .4byte sub_8033EEC
-_08037E9C: .4byte gUnknown_3004FE0
-_08037EA0: .4byte sub_8035AE8
- thumb_func_end sub_8037CD0
-
- thumb_func_start sub_8037EA4
-sub_8037EA4: @ 8037EA4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08037EC0 @ =gTrainerBattleOpponent_A
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08037EC4
- bl GetSecretBaseTrainerPicIndex
- b _08037EFA
- .align 2, 0
-_08037EC0: .4byte gTrainerBattleOpponent_A
-_08037EC4:
- ldr r0, _08037ED8 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08037EDC
- bl sub_80E6078
- b _08037EFA
- .align 2, 0
-_08037ED8: .4byte gBattleTypeFlags
-_08037EDC:
- movs r0, 0x80
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _08037EEC
- bl sub_815DA3C
- b _08037EFA
-_08037EEC:
- movs r0, 0x80
- lsls r0, 4
- ands r1, r0
- cmp r1, 0
- beq _08037F00
- bl GetEreaderTrainerFrontSpriteId
-_08037EFA:
- lsls r0, 24
- lsrs r0, 24
- b _08037F0E
-_08037F00:
- ldr r2, _08038040 @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08037F0E:
- mov r9, r0
- ldr r0, _08038044 @ =gActiveBattler
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_80346C4
- mov r1, r8
- ldrb r0, [r1]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _08038048 @ =gMultiuseSpriteTemplate
- ldr r2, _0803804C @ =gUnknown_823932C
- mov r3, r9
- lsls r1, r3, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 14
- adds r2, r1
- asrs r2, 16
- movs r1, 0xB0
- movs r3, 0x1E
- bl CreateSprite
- ldr r5, _08038050 @ =gBattlerSpriteIds
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08038054 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x60
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- adds r1, 0x20
- strh r1, [r0, 0x20]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08038058 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldr r0, _0803805C @ =gTrainerFrontPicPaletteTable
- mov r3, r9
- lsls r6, r3, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08038060 @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08038064 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08038068 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x6]
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0803806C @ =sub_8033EEC
- str r1, [r0]
- ldr r1, _08038070 @ =gUnknown_3004FE0
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038074 @ =sub_8035B20
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08038040: .4byte gTrainers
-_08038044: .4byte gActiveBattler
-_08038048: .4byte gMultiuseSpriteTemplate
-_0803804C: .4byte gUnknown_823932C
-_08038050: .4byte gBattlerSpriteIds
-_08038054: .4byte gSprites
-_08038058: .4byte 0x0000fffe
-_0803805C: .4byte gTrainerFrontPicPaletteTable
-_08038060: .4byte gTrainerFrontPicTable
-_08038064: .4byte 0x000003ff
-_08038068: .4byte 0xfffffc00
-_0803806C: .4byte sub_8033EEC
-_08038070: .4byte gUnknown_3004FE0
-_08038074: .4byte sub_8035B20
- thumb_func_end sub_8037EA4
-
- thumb_func_start sub_8038078
-sub_8038078: @ 8038078
- push {r4-r6,lr}
- ldr r6, _08038108 @ =gBattlerSpriteIds
- ldr r4, _0803810C @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08038110 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08038114 @ =sub_8075590
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08038118 @ =SpriteCallbackDummy
- bl StoreSpriteCallbackInData6
- ldr r1, _0803811C @ =gUnknown_3004FE0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038120 @ =sub_8035B58
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08038108: .4byte gBattlerSpriteIds
-_0803810C: .4byte gActiveBattler
-_08038110: .4byte gSprites
-_08038114: .4byte sub_8075590
-_08038118: .4byte SpriteCallbackDummy
-_0803811C: .4byte gUnknown_3004FE0
-_08038120: .4byte sub_8035B58
- thumb_func_end sub_8038078
-
- thumb_func_start sub_8038124
-sub_8038124: @ 8038124
- push {r4-r6,lr}
- ldr r6, _08038170 @ =gUnknown_2024018
- ldr r4, [r6]
- ldr r5, _08038174 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r0, [r4, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _08038178
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08038158
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_08038158:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- adds r1, 0x1
- strb r1, [r0, 0x4]
- b _080381B4
- .align 2, 0
-_08038170: .4byte gUnknown_2024018
-_08038174: .4byte gActiveBattler
-_08038178:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080381B4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080381BC @ =gSprites
- ldr r1, _080381C0 @ =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080381C4 @ =sub_8011EA0
- str r1, [r0]
- ldr r1, _080381C8 @ =gUnknown_3004FE0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080381CC @ =sub_803612C
- str r1, [r0]
-_080381B4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080381BC: .4byte gSprites
-_080381C0: .4byte gBattlerSpriteIds
-_080381C4: .4byte sub_8011EA0
-_080381C8: .4byte gUnknown_3004FE0
-_080381CC: .4byte sub_803612C
- thumb_func_end sub_8038124
-
- thumb_func_start sub_80381D0
-sub_80381D0: @ 80381D0
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80381D0
-
- thumb_func_start sub_80381DC
-sub_80381DC: @ 80381DC
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80381DC
-
- thumb_func_start sub_80381E8
-sub_80381E8: @ 80381E8
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80381E8
-
- thumb_func_start sub_80381F4
-sub_80381F4: @ 80381F4
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80381F4
-
- thumb_func_start sub_8038200
-sub_8038200: @ 8038200
- push {r4-r6,lr}
- ldr r6, _080382E4 @ =gActiveBattler
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08038212
- b _08038326
-_08038212:
- ldr r0, _080382E8 @ =gUnknown_2022BC4
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _080382EC @ =gAnimMoveTurn
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _080382F0 @ =gUnknown_2037EEC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _080382F4 @ =gUnknown_2037EE8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _080382F8 @ =gUnknown_2037EFE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _080382FC @ =gUnknown_2037F00
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08038300 @ =gAnimDisableStructPtr
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08038304 @ =gUnknown_2024008
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl IsMoveWithoutAnimation
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _08038308
- bl OpponentBufferExecCompleted
- b _08038326
- .align 2, 0
-_080382E4: .4byte gActiveBattler
-_080382E8: .4byte gUnknown_2022BC4
-_080382EC: .4byte gAnimMoveTurn
-_080382F0: .4byte gUnknown_2037EEC
-_080382F4: .4byte gUnknown_2037EE8
-_080382F8: .4byte gUnknown_2037EFE
-_080382FC: .4byte gUnknown_2037F00
-_08038300: .4byte gAnimDisableStructPtr
-_08038304: .4byte gUnknown_2024008
-_08038308:
- ldr r0, _0803832C @ =gUnknown_2024018
- ldr r0, [r0]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x4]
- ldr r1, _08038330 @ =gUnknown_3004FE0
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038334 @ =sub_8038338
- str r1, [r0]
-_08038326:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803832C: .4byte gUnknown_2024018
-_08038330: .4byte gUnknown_3004FE0
-_08038334: .4byte sub_8038338
- thumb_func_end sub_8038200
-
- thumb_func_start sub_8038338
-sub_8038338: @ 8038338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08038384 @ =gUnknown_2022BC4
- ldr r6, _08038388 @ =gActiveBattler
- ldrb r3, [r6]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r10, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, r2, 0x2
- mov r9, r5
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- ldr r7, _0803838C @ =gUnknown_2024018
- ldr r5, [r7]
- ldr r1, [r5, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _080383D0
- cmp r2, 0x1
- bgt _08038390
- cmp r2, 0
- beq _0803839A
- b _080384AC
- .align 2, 0
-_08038384: .4byte gUnknown_2022BC4
-_08038388: .4byte gActiveBattler
-_0803838C: .4byte gUnknown_2024018
-_08038390:
- cmp r2, 0x2
- beq _080383FA
- cmp r2, 0x3
- beq _08038470
- b _080384AC
-_0803839A:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _080383BC
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r6]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_080383BC:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _080384AC
-_080383D0:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080384AC
- movs r0, 0
- bl sub_8035450
- adds r0, r4, 0
- bl DoMoveAnim
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x4]
- b _080384AC
-_080383FA:
- ldr r0, _08038460 @ =gUnknown_2037EDC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08038464 @ =gUnknown_2037EE1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080384AC
- movs r0, 0x1
- bl sub_8035450
- ldr r0, [r7]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08038448
- mov r0, r8
- cmp r0, 0x1
- bhi _08038448
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl InitAndLaunchSpecialAnimation
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_08038448:
- ldr r0, _08038468 @ =gUnknown_2024018
- ldr r2, [r0]
- ldr r0, _0803846C @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _080384AC
- .align 2, 0
-_08038460: .4byte gUnknown_2037EDC
-_08038464: .4byte gUnknown_2037EE1
-_08038468: .4byte gUnknown_2024018
-_0803846C: .4byte gActiveBattler
-_08038470:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080384AC
- bl CopyAllBattleSpritesInvisibilities
- ldrb r0, [r6]
- lsls r2, r0, 9
- mov r3, r10
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r9
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl TrySetBehindSubstituteSpriteBit
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r4, [r0, 0x4]
- bl OpponentBufferExecCompleted
-_080384AC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8038338
-
- thumb_func_start sub_80384BC
-sub_80384BC: @ 80384BC
- push {r4,lr}
- ldr r0, _080384F0 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080384F4 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, _080384F8 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- ldr r1, _080384FC @ =gUnknown_2022BC6
- adds r4, r0, r1
- ldrh r0, [r4]
- bl sub_80D7274
- ldrh r0, [r4]
- bl sub_80D89B0
- lsls r0, 24
- cmp r0, 0
- beq _08038504
- ldr r0, _08038500 @ =gDisplayedStringBattle
- movs r1, 0x40
- bl sub_80D87BC
- b _0803850C
- .align 2, 0
-_080384F0: .4byte gBattle_BG0_X
-_080384F4: .4byte gBattle_BG0_Y
-_080384F8: .4byte gActiveBattler
-_080384FC: .4byte gUnknown_2022BC6
-_08038500: .4byte gDisplayedStringBattle
-_08038504:
- ldr r0, _08038534 @ =gDisplayedStringBattle
- movs r1, 0
- bl sub_80D87BC
-_0803850C:
- ldr r0, _08038538 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08038568
- ldrh r1, [r4]
- cmp r1, 0xE3
- beq _0803854C
- ldr r0, _0803853C @ =0x0000017f
- cmp r1, r0
- bne _08038568
- ldr r1, _08038540 @ =gUnknown_3004FE0
- ldr r0, _08038544 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038548 @ =sub_80E85C0
- b _08038574
- .align 2, 0
-_08038534: .4byte gDisplayedStringBattle
-_08038538: .4byte gBattleTypeFlags
-_0803853C: .4byte 0x0000017f
-_08038540: .4byte gUnknown_3004FE0
-_08038544: .4byte gActiveBattler
-_08038548: .4byte sub_80E85C0
-_0803854C:
- ldr r1, _0803855C @ =gUnknown_3004FE0
- ldr r0, _08038560 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038564 @ =sub_80E8598
- b _08038574
- .align 2, 0
-_0803855C: .4byte gUnknown_3004FE0
-_08038560: .4byte gActiveBattler
-_08038564: .4byte sub_80E8598
-_08038568:
- ldr r1, _0803857C @ =gUnknown_3004FE0
- ldr r0, _08038580 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038584 @ =sub_80361E4
-_08038574:
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803857C: .4byte gUnknown_3004FE0
-_08038580: .4byte gActiveBattler
-_08038584: .4byte sub_80361E4
- thumb_func_end sub_80384BC
-
- thumb_func_start sub_8038588
-sub_8038588: @ 8038588
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038588
-
- thumb_func_start sub_8038594
-sub_8038594: @ 8038594
- push {lr}
- bl sub_8039C84
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038594
-
- thumb_func_start sub_80385A4
-sub_80385A4: @ 80385A4
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80385A4
-
- thumb_func_start sub_80385B0
-sub_80385B0: @ 80385B0
- push {r4-r6,lr}
- ldr r6, _080385E4 @ =gActiveBattler
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _080385E8 @ =gUnknown_2022BC8
- adds r5, r0, r1
- ldr r0, _080385EC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x93
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08038680
- bl BattleAI_SetupAIData
- bl BattleAI_GetAIActionToUse
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- beq _080385F0
- cmp r4, 0x5
- bne _080385FC
- movs r0, 0x1
- movs r1, 0x4
- b _080385F4
- .align 2, 0
-_080385E4: .4byte gActiveBattler
-_080385E8: .4byte gUnknown_2022BC8
-_080385EC: .4byte gBattleTypeFlags
-_080385F0:
- movs r0, 0x1
- movs r1, 0x3
-_080385F4:
- movs r2, 0
- bl EmitTwoReturnValues
- b _08038668
-_080385FC:
- ldr r3, _08038670 @ =gBattleMoves
- lsls r0, r4, 1
- adds r2, r5, r0
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _0803861C
- ldr r1, _08038674 @ =gBattlerTarget
- ldrb r0, [r6]
- strb r0, [r1]
-_0803861C:
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08038656
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r5, _08038674 @ =gBattlerTarget
- strb r0, [r5]
- ldr r0, _08038678 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0803867C @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08038656
- movs r0, 0x2
- bl GetBattlerAtPosition
- strb r0, [r5]
-_08038656:
- ldr r0, _08038674 @ =gBattlerTarget
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl EmitTwoReturnValues
-_08038668:
- bl OpponentBufferExecCompleted
- b _08038712
- .align 2, 0
-_08038670: .4byte gBattleMoves
-_08038674: .4byte gBattlerTarget
-_08038678: .4byte gAbsentBattlerFlags
-_0803867C: .4byte gBitTable
-_08038680:
- movs r6, 0x3
-_08038682:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- lsls r0, r4, 1
- adds r0, r5, r0
- ldrh r2, [r0]
- cmp r2, 0
- beq _08038682
- ldr r1, _080386BC @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _080386C4
- ldr r0, _080386C0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl EmitTwoReturnValues
- b _0803870E
- .align 2, 0
-_080386BC: .4byte gBattleMoves
-_080386C0: .4byte gActiveBattler
-_080386C4:
- ldr r0, _080386F4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080386F8
- bl Random
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl EmitTwoReturnValues
- b _0803870E
- .align 2, 0
-_080386F4: .4byte gBattleTypeFlags
-_080386F8:
- movs r0, 0
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl EmitTwoReturnValues
-_0803870E:
- bl OpponentBufferExecCompleted
-_08038712:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80385B0
-
- thumb_func_start sub_8038718
-sub_8038718: @ 8038718
- push {lr}
- ldr r0, _0803873C @ =gActiveBattler
- ldrb r0, [r0]
- lsrs r0, 1
- ldr r1, _08038740 @ =gBattleStruct
- ldr r1, [r1]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC0
- ldrb r1, [r0]
- movs r0, 0x1
- bl EmitOneReturnValue
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_0803873C: .4byte gActiveBattler
-_08038740: .4byte gBattleStruct
- thumb_func_end sub_8038718
-
- thumb_func_start sub_8038744
-sub_8038744: @ 8038744
- push {r4-r6,lr}
- ldr r6, _08038788 @ =gActiveBattler
- ldrb r0, [r6]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 25
- ldr r5, _0803878C @ =gBattleStruct
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x92
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _080387E4
- bl sub_8039E3C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _0803880A
- ldr r0, _08038790 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08038794
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _080387A8
- .align 2, 0
-_08038788: .4byte gActiveBattler
-_0803878C: .4byte gBattleStruct
-_08038790: .4byte gBattleTypeFlags
-_08038794:
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r5, r0, 24
-_080387A8:
- movs r4, 0
- b _080387AE
-_080387AC:
- adds r4, 0x1
-_080387AE:
- cmp r4, 0x5
- bgt _0803880A
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080387DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080387AC
- ldr r1, _080387E0 @ =gBattlerPartyIndexes
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _080387AC
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _080387AC
- b _0803880A
- .align 2, 0
-_080387DC: .4byte gEnemyParty
-_080387E0: .4byte gBattlerPartyIndexes
-_080387E4:
- ldrb r0, [r6]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 25
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x92
- ldrb r4, [r0]
- ldrb r0, [r6]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 25
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x92
- movs r1, 0x6
- strb r1, [r0]
-_0803880A:
- ldr r0, _08038830 @ =gActiveBattler
- ldrb r0, [r0]
- ldr r1, _08038834 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- strb r4, [r0]
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0
- bl EmitChosenMonReturnValue
- bl OpponentBufferExecCompleted
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08038830: .4byte gActiveBattler
-_08038834: .4byte gBattleStruct
- thumb_func_end sub_8038744
-
- thumb_func_start sub_8038838
-sub_8038838: @ 8038838
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038838
-
- thumb_func_start sub_8038844
-sub_8038844: @ 8038844
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl LoadBattleBarGfx
- ldr r3, _080388BC @ =gUnknown_2022BC4
- ldr r0, _080388C0 @ =gActiveBattler
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 8
- adds r3, 0x2
- adds r2, r3
- ldrb r0, [r2]
- orrs r0, r1
- lsls r0, 16
- asrs r7, r0, 16
- ldr r0, _080388C4 @ =0x00007fff
- cmp r7, r0
- beq _080388D4
- ldr r6, _080388C8 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080388CC @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _080388D0 @ =gUnknown_3004FF0
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl SetBattleBarStruct
- b _080388FE
- .align 2, 0
-_080388BC: .4byte gUnknown_2022BC4
-_080388C0: .4byte gActiveBattler
-_080388C4: .4byte 0x00007fff
-_080388C8: .4byte gBattlerPartyIndexes
-_080388CC: .4byte gEnemyParty
-_080388D0: .4byte gUnknown_3004FF0
-_080388D4:
- ldr r1, _0803891C @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08038920 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08038924 @ =gUnknown_3004FF0
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl SetBattleBarStruct
-_080388FE:
- ldr r1, _08038928 @ =gUnknown_3004FE0
- ldr r0, _0803892C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038930 @ =sub_80360A0
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803891C: .4byte gBattlerPartyIndexes
-_08038920: .4byte gEnemyParty
-_08038924: .4byte gUnknown_3004FF0
-_08038928: .4byte gUnknown_3004FE0
-_0803892C: .4byte gActiveBattler
-_08038930: .4byte sub_80360A0
- thumb_func_end sub_8038844
-
- thumb_func_start sub_8038934
-sub_8038934: @ 8038934
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038934
-
- thumb_func_start sub_8038940
-sub_8038940: @ 8038940
- push {r4,lr}
- ldr r4, _0803899C @ =gActiveBattler
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08038994
- ldr r0, _080389A0 @ =gUnknown_3004FF0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _080389A4 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080389A8 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl UpdateHealthboxAttribute
- ldrb r2, [r4]
- ldr r0, _080389AC @ =gUnknown_2024018
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _080389B0 @ =gUnknown_3004FE0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080389B4 @ =sub_80364D0
- str r1, [r0]
-_08038994:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803899C: .4byte gActiveBattler
-_080389A0: .4byte gUnknown_3004FF0
-_080389A4: .4byte gBattlerPartyIndexes
-_080389A8: .4byte gEnemyParty
-_080389AC: .4byte gUnknown_2024018
-_080389B0: .4byte gUnknown_3004FE0
-_080389B4: .4byte sub_80364D0
- thumb_func_end sub_8038940
-
- thumb_func_start sub_80389B8
-sub_80389B8: @ 80389B8
- push {r4,r5,lr}
- ldr r5, _08038A10 @ =gActiveBattler
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08038A08
- ldr r4, _08038A14 @ =gUnknown_2022BC4
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl InitAndLaunchChosenStatusAnimation
- ldr r1, _08038A18 @ =gUnknown_3004FE0
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038A1C @ =sub_80364D0
- str r1, [r0]
-_08038A08:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08038A10: .4byte gActiveBattler
-_08038A14: .4byte gUnknown_2022BC4
-_08038A18: .4byte gUnknown_3004FE0
-_08038A1C: .4byte sub_80364D0
- thumb_func_end sub_80389B8
-
- thumb_func_start sub_8038A20
-sub_8038A20: @ 8038A20
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A20
-
- thumb_func_start sub_8038A2C
-sub_8038A2C: @ 8038A2C
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A2C
-
- thumb_func_start sub_8038A38
-sub_8038A38: @ 8038A38
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A38
-
- thumb_func_start sub_8038A44
-sub_8038A44: @ 8038A44
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A44
-
- thumb_func_start sub_8038A50
-sub_8038A50: @ 8038A50
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A50
-
- thumb_func_start sub_8038A5C
-sub_8038A5C: @ 8038A5C
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A5C
-
- thumb_func_start sub_8038A68
-sub_8038A68: @ 8038A68
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A68
-
- thumb_func_start sub_8038A74
-sub_8038A74: @ 8038A74
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A74
-
- thumb_func_start sub_8038A80
-sub_8038A80: @ 8038A80
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038A80
-
- thumb_func_start OpponentHandlecmd37
-OpponentHandlecmd37: @ 8038A8C
- push {lr}
- ldr r2, _08038AA4 @ =gUnknown_2022870
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038AA4: .4byte gUnknown_2022870
- thumb_func_end OpponentHandlecmd37
-
- thumb_func_start OpponentHandlecmd38
-OpponentHandlecmd38: @ 8038AA8
- push {lr}
- ldr r3, _08038AD4 @ =gUnknown_2022870
- ldr r1, _08038AD8 @ =gUnknown_2022BC4
- ldr r0, _08038ADC @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038AD4: .4byte gUnknown_2022870
-_08038AD8: .4byte gUnknown_2022BC4
-_08038ADC: .4byte gActiveBattler
- thumb_func_end OpponentHandlecmd38
-
- thumb_func_start OpponentHandlecmd39
-OpponentHandlecmd39: @ 8038AE0
- push {lr}
- ldr r2, _08038AF4 @ =gUnknown_2022870
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038AF4: .4byte gUnknown_2022870
- thumb_func_end OpponentHandlecmd39
-
- thumb_func_start OpponentHandlecmd40
-OpponentHandlecmd40: @ 8038AF8
- push {lr}
- ldr r3, _08038B1C @ =gUnknown_2022870
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038B1C: .4byte gUnknown_2022870
- thumb_func_end OpponentHandlecmd40
-
- thumb_func_start OpponentHandleHitAnimation
-OpponentHandleHitAnimation: @ 8038B20
- push {r4,lr}
- ldr r3, _08038B48 @ =gSprites
- ldr r2, _08038B4C @ =gBattlerSpriteIds
- ldr r4, _08038B50 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08038B54
- bl OpponentBufferExecCompleted
- b _08038B7E
- .align 2, 0
-_08038B48: .4byte gSprites
-_08038B4C: .4byte gBattlerSpriteIds
-_08038B50: .4byte gActiveBattler
-_08038B54:
- ldr r1, _08038B84 @ =gUnknown_2024005
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl DoHitAnimHealthboxEffect
- ldr r1, _08038B88 @ =gUnknown_3004FE0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038B8C @ =sub_80361FC
- str r1, [r0]
-_08038B7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038B84: .4byte gUnknown_2024005
-_08038B88: .4byte gUnknown_3004FE0
-_08038B8C: .4byte sub_80361FC
- thumb_func_end OpponentHandleHitAnimation
-
- thumb_func_start sub_8038B90
-sub_8038B90: @ 8038B90
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8038B90
-
- thumb_func_start OpponentHandleEffectivenessSound
-OpponentHandleEffectivenessSound: @ 8038B9C
- push {r4,lr}
- ldr r4, _08038BD8 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08038BB0
- movs r3, 0xC0
-_08038BB0:
- ldr r2, _08038BDC @ =gUnknown_2022BC4
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl OpponentBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038BD8: .4byte gActiveBattler
-_08038BDC: .4byte gUnknown_2022BC4
- thumb_func_end OpponentHandleEffectivenessSound
-
- thumb_func_start OpponentHandlecmd44
-OpponentHandlecmd44: @ 8038BE0
- push {lr}
- ldr r2, _08038C08 @ =gUnknown_2022BC4
- ldr r0, _08038C0C @ =gActiveBattler
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038C08: .4byte gUnknown_2022BC4
-_08038C0C: .4byte gActiveBattler
- thumb_func_end OpponentHandlecmd44
-
- thumb_func_start OpponentHandleFaintingCry
-OpponentHandleFaintingCry: @ 8038C10
- push {lr}
- ldr r1, _08038C40 @ =gBattlerPartyIndexes
- ldr r0, _08038C44 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08038C48 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038C40: .4byte gBattlerPartyIndexes
-_08038C44: .4byte gActiveBattler
-_08038C48: .4byte gEnemyParty
- thumb_func_end OpponentHandleFaintingCry
-
- thumb_func_start OpponentHandleIntroSlide
-OpponentHandleIntroSlide: @ 8038C4C
- push {lr}
- ldr r1, _08038C74 @ =gUnknown_2022BC4
- ldr r0, _08038C78 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80BC3A0
- ldr r2, _08038C7C @ =gUnknown_2023F4C
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08038C74: .4byte gUnknown_2022BC4
-_08038C78: .4byte gActiveBattler
-_08038C7C: .4byte gUnknown_2023F4C
- thumb_func_end OpponentHandleIntroSlide
-
- thumb_func_start sub_8038C80
-sub_8038C80: @ 8038C80
- push {r4-r6,lr}
- ldr r5, _08038D60 @ =gBattlerSpriteIds
- ldr r6, _08038D64 @ =gActiveBattler
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08038D68 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08038D6C @ =sub_8075590
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08038D70 @ =sub_8038D90
- bl StoreSpriteCallbackInData6
- ldr r0, _08038D74 @ =sub_8038DC4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08038D78 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldr r3, _08038D7C @ =gUnknown_2024018
- ldr r0, [r3]
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08038D42
- ldr r0, _08038D80 @ =gUnknown_2024000
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08038D84 @ =sub_80491B0
- str r1, [r0]
-_08038D42:
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08038D88 @ =gUnknown_3004FE0
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038D8C @ =nullsub_17
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08038D60: .4byte gBattlerSpriteIds
-_08038D64: .4byte gActiveBattler
-_08038D68: .4byte gSprites
-_08038D6C: .4byte sub_8075590
-_08038D70: .4byte sub_8038D90
-_08038D74: .4byte sub_8038DC4
-_08038D78: .4byte gTasks
-_08038D7C: .4byte gUnknown_2024018
-_08038D80: .4byte gUnknown_2024000
-_08038D84: .4byte sub_80491B0
-_08038D88: .4byte gUnknown_3004FE0
-_08038D8C: .4byte nullsub_17
- thumb_func_end sub_8038C80
-
- thumb_func_start sub_8038D90
-sub_8038D90: @ 8038D90
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_803477C
- ldrh r0, [r4, 0x38]
- ldr r1, _08038DBC @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _08038DC0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038DBC: .4byte 0x000003ff
-_08038DC0: .4byte 0xfffffc00
- thumb_func_end sub_8038D90
-
- thumb_func_start sub_8038DC4
-sub_8038DC4: @ 8038DC4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _08038E1C @ =gActiveBattler
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _08038E20 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl sub_8075290
- lsls r0, 24
- cmp r0, 0
- beq _08038DFE
- ldr r0, _08038E24 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08038E30
-_08038DFE:
- ldr r0, _08038E28 @ =gUnknown_2022BC4
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08038E2C @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8037A28
- b _08038E70
- .align 2, 0
-_08038E1C: .4byte gActiveBattler
-_08038E20: .4byte gTasks
-_08038E24: .4byte gBattleTypeFlags
-_08038E28: .4byte gUnknown_2022BC4
-_08038E2C: .4byte gBattlerPartyIndexes
-_08038E30:
- ldr r4, _08038E94 @ =gUnknown_2022BC4
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _08038E98 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8037A28
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8037A28
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_08038E70:
- ldr r1, _08038E9C @ =gUnknown_3004FE0
- ldr r2, _08038EA0 @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08038EA4 @ =sub_8035DF0
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08038E94: .4byte gUnknown_2022BC4
-_08038E98: .4byte gBattlerPartyIndexes
-_08038E9C: .4byte gUnknown_3004FE0
-_08038EA0: .4byte gActiveBattler
-_08038EA4: .4byte sub_8035DF0
- thumb_func_end sub_8038DC4
-
- thumb_func_start sub_8038EA8
-sub_8038EA8: @ 8038EA8
- push {r4-r7,lr}
- ldr r1, _08038ED0 @ =gUnknown_2022BC4
- ldr r0, _08038ED4 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08038ED8
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08038ED8
- bl OpponentBufferExecCompleted
- b _08038FA2
- .align 2, 0
-_08038ED0: .4byte gUnknown_2022BC4
-_08038ED4: .4byte gActiveBattler
-_08038ED8:
- ldr r4, _08038F30 @ =gUnknown_2024018
- ldr r0, [r4]
- ldr r3, _08038F34 @ =gActiveBattler
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08038F38 @ =gUnknown_2022BC4
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r3, 0
- cmp r0, 0
- beq _08038F44
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _08038F3C
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _08038FA2
- .align 2, 0
-_08038F30: .4byte gUnknown_2024018
-_08038F34: .4byte gActiveBattler
-_08038F38: .4byte gUnknown_2022BC4
-_08038F3C:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_08038F44:
- adds r5, r7, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08038FA8 @ =gUnknown_2022BC8
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8048D14
- ldr r2, _08038FAC @ =gUnknown_2024000
- ldrb r1, [r5]
- adds r1, r2
- movs r3, 0
- strb r0, [r1]
- ldr r6, _08038FB0 @ =gUnknown_2024018
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08038F96
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08038F96:
- ldr r0, _08038FB4 @ =gUnknown_3004FE0
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08038FB8 @ =sub_8038FBC
- str r0, [r1]
-_08038FA2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08038FA8: .4byte gUnknown_2022BC8
-_08038FAC: .4byte gUnknown_2024000
-_08038FB0: .4byte gUnknown_2024018
-_08038FB4: .4byte gUnknown_3004FE0
-_08038FB8: .4byte sub_8038FBC
- thumb_func_end sub_8038EA8
-
- thumb_func_start sub_8038FBC
-sub_8038FBC: @ 8038FBC
- push {r4,lr}
- ldr r4, _08038FFC @ =gUnknown_2024018
- ldr r0, [r4]
- ldr r3, _08039000 @ =gActiveBattler
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08038FF4
- ldr r0, [r4]
- ldrb r1, [r3]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x5]
- bl OpponentBufferExecCompleted
-_08038FF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038FFC: .4byte gUnknown_2024018
-_08039000: .4byte gActiveBattler
- thumb_func_end sub_8038FBC
-
- thumb_func_start sub_8039004
-sub_8039004: @ 8039004
- push {lr}
- ldr r0, _08039040 @ =gUnknown_2024018
- ldr r1, [r0]
- ldr r0, _08039044 @ =gActiveBattler
- ldrb r3, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08039036
- ldr r2, _08039048 @ =gTasks
- ldr r0, _0803904C @ =gUnknown_2024000
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08039050 @ =sub_80491B0
- str r1, [r0]
-_08039036:
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08039040: .4byte gUnknown_2024018
-_08039044: .4byte gActiveBattler
-_08039048: .4byte gTasks
-_0803904C: .4byte gUnknown_2024000
-_08039050: .4byte sub_80491B0
- thumb_func_end sub_8039004
-
- thumb_func_start sub_8039054
-sub_8039054: @ 8039054
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8039054
-
- thumb_func_start sub_8039060
-sub_8039060: @ 8039060
- push {r4,lr}
- ldr r4, _080390B0 @ =gActiveBattler
- ldrb r0, [r4]
- bl sub_8075224
- lsls r0, 24
- cmp r0, 0
- beq _080390A6
- ldr r3, _080390B4 @ =gSprites
- ldr r0, _080390B8 @ =gBattlerSpriteIds
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _080390BC @ =gUnknown_2022BC4
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl CopyBattleSpriteInvisibility
-_080390A6:
- bl OpponentBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080390B0: .4byte gActiveBattler
-_080390B4: .4byte gSprites
-_080390B8: .4byte gBattlerSpriteIds
-_080390BC: .4byte gUnknown_2022BC4
- thumb_func_end sub_8039060
-
- thumb_func_start sub_80390C0
-sub_80390C0: @ 80390C0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08039104 @ =gActiveBattler
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039118
- ldr r5, _08039108 @ =gUnknown_2022BC4
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl TryHandleLaunchBattleTableAnimation
- lsls r0, 24
- cmp r0, 0
- beq _0803910C
- bl OpponentBufferExecCompleted
- b _08039118
- .align 2, 0
-_08039104: .4byte gActiveBattler
-_08039108: .4byte gUnknown_2022BC4
-_0803910C:
- ldr r0, _08039120 @ =gUnknown_3004FE0
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08039124 @ =sub_8036500
- str r0, [r1]
-_08039118:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039120: .4byte gUnknown_3004FE0
-_08039124: .4byte sub_8036500
- thumb_func_end sub_80390C0
-
- thumb_func_start sub_8039128
-sub_8039128: @ 8039128
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8039128
-
- thumb_func_start sub_8039134
-sub_8039134: @ 8039134
- push {lr}
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_8039134
-
- thumb_func_start OpponentHandleCmd55
-OpponentHandleCmd55: @ 8039140
- push {lr}
- ldr r0, _08039174 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _0803916A
- ldr r2, _08039178 @ =gMain
- ldr r0, _0803917C @ =0x00000439
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08039180 @ =gUnknown_3004F80
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0803916A:
- bl OpponentBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_08039174: .4byte gBattleTypeFlags
-_08039178: .4byte gMain
-_0803917C: .4byte 0x00000439
-_08039180: .4byte gUnknown_3004F80
- thumb_func_end OpponentHandleCmd55
-
- thumb_func_start nullsub_18
-nullsub_18: @ 8039184
- bx lr
- thumb_func_end nullsub_18
-
- .align 2, 0 @ Don't pad with nop.