summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_anim_80FE840.s52267
-rw-r--r--asm/battle_anim_815A0D4.s22
-rw-r--r--asm/battle_anim_8170478.s8
-rw-r--r--asm/battle_anim_effects_1.s9550
-rw-r--r--asm/battle_anim_effects_2.s7544
-rw-r--r--asm/battle_frontier_1.s178
-rw-r--r--asm/battle_frontier_2.s17602
-rw-r--r--asm/battle_intro.s2035
-rw-r--r--asm/battle_tower.s7552
-rw-r--r--asm/contest.s2
-rw-r--r--asm/contest_link_81D9DE4.s2
-rw-r--r--asm/dark.s2199
-rw-r--r--asm/easy_chat.s12
-rw-r--r--asm/electric.s2547
-rw-r--r--asm/field_player_avatar.s4180
-rw-r--r--asm/field_screen.s2
-rw-r--r--asm/fire.s2397
-rw-r--r--asm/fldeff_80F9BCC.s6
-rw-r--r--asm/flying.s2515
-rw-r--r--asm/fossil_specials.s111
-rw-r--r--asm/ghost.s3251
-rw-r--r--asm/ice.s2944
-rw-r--r--asm/international_string_util.s355
-rw-r--r--asm/link_rfu.s2021
-rw-r--r--asm/macros/battle_ai_script.inc170
-rw-r--r--asm/macros/battle_anim_script.inc118
-rw-r--r--asm/macros/battle_script.inc458
-rw-r--r--asm/macros/event.inc466
-rw-r--r--asm/macros/map.inc2
-rw-r--r--asm/party_menu.s40
-rw-r--r--asm/pokedex_area_screen.s1892
-rw-r--r--asm/pokedex_cry_screen.s1010
-rw-r--r--asm/pokemon_storage_system.s8
-rw-r--r--asm/pokenav.s16
-rw-r--r--asm/post_battle_event_funcs.s165
-rw-r--r--asm/psychic.s2172
-rw-r--r--asm/rom_8011DC0.s2370
-rw-r--r--asm/roulette.s4
-rw-r--r--asm/script_menu.s1883
-rw-r--r--asm/script_pokemon_util_80F87D8.s1667
-rw-r--r--asm/shop.s1821
-rw-r--r--asm/trade.s6
-rw-r--r--asm/use_pokeblock.s2
-rw-r--r--asm/water.s3607
44 files changed, 41480 insertions, 95699 deletions
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
deleted file mode 100644
index 620940730..000000000
--- a/asm/battle_anim_80FE840.s
+++ /dev/null
@@ -1,52267 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80FE840
-sub_80FE840: @ 80FE840
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080FE87C
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080FE87E
- .pool
-_080FE87C:
- ldrh r0, [r5, 0x8]
-_080FE87E:
- strh r0, [r4, 0x34]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, =sub_80FE898
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE840
-
- thumb_func_start sub_80FE898
-sub_80FE898: @ 80FE898
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080FE8D4
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080FE8DA
-_080FE8D4:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FE8DA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE898
-
- thumb_func_start sub_80FE8E0
-sub_80FE8E0: @ 80FE8E0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE8E0
-
- thumb_func_start sub_80FE930
-sub_80FE930: @ 80FE930
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r5, =gBattleAnimArgs
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE930
-
- thumb_func_start sub_80FE988
-sub_80FE988: @ 80FE988
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, =sub_80FE9E4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE988
-
- thumb_func_start sub_80FE9E4
-sub_80FE9E4: @ 80FE9E4
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _080FE9FA
- adds r0, r4, 0
- bl DestroySprite
- b _080FEA4E
-_080FE9FA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080FEA14
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- adds r0, 0x1
- b _080FEA1E
- .pool
-_080FEA14:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- adds r0, 0x6
-_080FEA1E:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0xF
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080FEA4E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE9E4
-
- thumb_func_start sub_80FEA58
-sub_80FEA58: @ 80FEA58
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- movs r2, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080FEAB2
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, =gBattleAnimArgs
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, =gUnknown_08592210
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl CreateSpriteAndAnimate
-_080FEAB2:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080FEAC0
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080FEAC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEA58
-
- thumb_func_start sub_80FEAD8
-sub_80FEAD8: @ 80FEAD8
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80A68D4
- ldr r0, =sub_80FEB28
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEAD8
-
- thumb_func_start sub_80FEB28
-sub_80FEB28: @ 80FEB28
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _080FEB3C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FEB3C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEB28
-
- thumb_func_start sub_80FEB44
-sub_80FEB44: @ 80FEB44
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random2
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080FEB90
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080FEB94
- .pool
-_080FEB90:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080FEB94:
- strh r0, [r5, 0x20]
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- adds r0, 0x40
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80A7160
- bl Random2
- movs r1, 0xFF
- ands r1, r0
- strh r1, [r5, 0x38]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- strh r0, [r5, 0x3A]
- ldr r1, =sub_80FEBFC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEB44
-
- thumb_func_start sub_80FEBFC
-sub_80FEBFC: @ 80FEBFC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A70E8
- lsls r0, 24
- cmp r0, 0
- beq _080FEC12
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080FEC42
-_080FEC12:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _080FEC2E
- ldrh r0, [r4, 0x3A]
- b _080FEC32
-_080FEC2E:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080FEC32:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x18
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080FEC42:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEBFC
-
- thumb_func_start sub_80FEC48
-sub_80FEC48: @ 80FEC48
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080FEC68
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080FEC68:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80A68D4
- ldr r0, =sub_80FECB8
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEC48
-
- thumb_func_start sub_80FECB8
-sub_80FECB8: @ 80FECB8
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _080FECE2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =sub_80FECF0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_080FECE2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FECB8
-
- thumb_func_start sub_80FECF0
-sub_80FECF0: @ 80FECF0
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FECF0
-
- thumb_func_start sub_80FED28
-sub_80FED28: @ 80FED28
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r5, =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080FED52
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080FED52:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, =sub_80FED74
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FED28
-
- thumb_func_start sub_80FED74
-sub_80FED74: @ 80FED74
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x32]
- adds r1, 0x18
- strh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080FEDC8
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _080FEDEC
- .pool
-_080FEDC8:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080FEDDC
- movs r2, 0x3
-_080FEDDC:
- movs r0, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
-_080FEDEC:
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080FEE10
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FEE10:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FED74
-
- thumb_func_start sub_80FEE1C
-sub_80FEE1C: @ 80FEE1C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080FEE36
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _080FEE3E
-_080FEE36:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080FEE70
-_080FEE3E:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FEE60
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- b _080FEE6A
- .pool
-_080FEE60:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
-_080FEE6A:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080FEE70:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEE1C
-
- thumb_func_start sub_80FEE78
-sub_80FEE78: @ 80FEE78
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, =sub_80FEECC
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEE78
-
- thumb_func_start sub_80FEECC
-sub_80FEECC: @ 80FEECC
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _080FEF38
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080FEF18
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- subs r0, 0x1
- b _080FEF22
- .pool
-_080FEF18:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- adds r0, 0x1
-_080FEF22:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080FEF3E
- .pool
-_080FEF38:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FEF3E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEECC
-
- thumb_func_start sub_80FEF44
-sub_80FEF44: @ 80FEF44
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, =sub_80FEF98
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEF44
-
- thumb_func_start sub_80FEF98
-sub_80FEF98: @ 80FEF98
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _080FEFF0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x3B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080FEFD0
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080FEFE4
-_080FEFD0:
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- eors r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080FEFE4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080FEFF6
-_080FEFF0:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FEFF6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEF98
-
- thumb_func_start sub_80FEFFC
-sub_80FEFFC: @ 80FEFFC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, =sub_80FF044
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FEFFC
-
- thumb_func_start sub_80FF044
-sub_80FF044: @ 80FF044
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080FF078
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080FF066
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080FF06C
-_080FF066:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080FF06C:
- ldr r0, =sub_80FF090
- str r0, [r1, 0x1C]
- b _080FF08C
- .pool
-_080FF078:
- subs r0, 0x1
- strh r0, [r1, 0x32]
- ldrh r0, [r1, 0x2E]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
-_080FF08C:
- pop {r0}
- bx r0
- thumb_func_end sub_80FF044
-
- thumb_func_start sub_80FF090
-sub_80FF090: @ 80FF090
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080FF0B4
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080FF0BE
- .pool
-_080FF0B4:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080FF0BE:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080FF0DE
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080FF0DE:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080FF0EC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FF0EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF090
-
- thumb_func_start sub_80FF0F4
-sub_80FF0F4: @ 80FF0F4
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080FF114
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080FF114:
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080FF154
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080FF174
- .pool
-_080FF154:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl SetAverageBattlerPositions
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
-_080FF174:
- strh r0, [r5, 0x36]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80A68D4
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080FF1AC
- movs r0, 0x1
- b _080FF1AE
- .pool
-_080FF1AC:
- movs r0, 0
-_080FF1AE:
- strh r0, [r5, 0x2E]
- ldr r0, =sub_80FF1C0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF0F4
-
- thumb_func_start sub_80FF1C0
-sub_80FF1C0: @ 80FF1C0
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl TranslateAnimArc
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080FF1F2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080FF1F2
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080FF1F8
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080FF1F2:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080FF22A
-_080FF1F8:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080FF22A
- adds r3, r6, 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]
- ldrh r0, [r6, 0x6]
- adds r0, 0x1
- strh r0, [r6, 0x6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080FF22A
- movs r7, 0x1
-_080FF22A:
- movs r2, 0x20
- ldrsh r0, [r6, r2]
- movs r2, 0x24
- ldrsh r1, [r6, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080FF254
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080FF254
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080FF256
-_080FF254:
- movs r7, 0x1
-_080FF256:
- cmp r7, 0
- beq _080FF260
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080FF260:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF1C0
-
- thumb_func_start sub_80FF268
-sub_80FF268: @ 80FF268
- push {r4,lr}
- adds r4, r0, 0
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF28A
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl SetAverageBattlerPositions
-_080FF28A:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x36]
- ldr r0, =sub_80FF2BC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF268
-
- thumb_func_start sub_80FF2BC
-sub_80FF2BC: @ 80FF2BC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080FF2D2
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080FF2E0
-_080FF2D2:
- cmp r0, 0
- ble _080FF2E0
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080FF2E0:
- ldrh r3, [r4, 0x32]
- ldrh r5, [r4, 0x38]
- adds r2, r3, r5
- strh r2, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r5, 0x36
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080FF2F8
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080FF2F8:
- ldrh r1, [r4, 0x38]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r5, 0x38
- ldrsh r0, [r4, r5]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080FF338
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080FF346
- .pool
-_080FF338:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080FF346:
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080FF36A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FF36A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF2BC
-
- thumb_func_start sub_80FF374
-sub_80FF374: @ 80FF374
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80A6980
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, =sub_80FF3B0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF374
-
- thumb_func_start sub_80FF3B0
-sub_80FF3B0: @ 80FF3B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _080FF3DA
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80FF3EC
- str r0, [r4, 0x1C]
-_080FF3DA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF3B0
-
- thumb_func_start sub_80FF3EC
-sub_80FF3EC: @ 80FF3EC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FF404
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080FF408
-_080FF404:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080FF408:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080FF424
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080FF424:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FF452
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080FF44C
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080FF452
-_080FF44C:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FF452:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF3EC
-
- thumb_func_start sub_80FF458
-sub_80FF458: @ 80FF458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, =gSprites
- mov r10, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r2, r10
- adds r7, r0, r2
- adds r0, r7, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080FF498
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080FF51C
- .pool
-_080FF498:
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_80A7270
- ldr r0, =gTasks
- lsls r6, r4, 2
- adds r6, r4
- lsls r6, 3
- adds r6, r0
- ldrb r0, [r7, 0x5]
- lsls r0, 28
- lsrs r0, 30
- strh r0, [r6, 0x24]
- ldr r0, =gBattleAnimTarget
- mov r9, r0
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- mov r8, r1
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- movs r0, 0x3
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- add r4, r10
- ldrb r0, [r4, 0x5]
- lsls r0, 28
- lsrs r0, 30
- strh r0, [r6, 0x26]
- mov r2, r9
- ldrb r1, [r2]
- movs r0, 0x2
- eors r0, r1
- bl sub_80A8328
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r0, [r4, 0x5]
- ands r5, r0
- orrs r5, r1
- strb r5, [r4, 0x5]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r6, 0x8]
- ldrh r0, [r1, 0x2]
- strh r0, [r6, 0xA]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r6, 0x1E]
- ldr r0, =sub_80FF53C
- str r0, [r6]
-_080FF51C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF458
-
- thumb_func_start sub_80FF53C
-sub_80FF53C: @ 80FF53C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0
- strh r1, [r4, 0x1C]
- ldr r2, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r2
- lsls r1, 16
- asrs r1, 24
- strh r1, [r5, 0x24]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _080FF586
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080FF586:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x10
- strh r0, [r4, 0x1E]
- movs r0, 0x1E
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r6, 0
- bl sub_80A7E6C
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080FF5B4
- strh r0, [r4, 0x8]
- ldr r0, =sub_80FF5CC
- str r0, [r4]
-_080FF5B4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF53C
-
- thumb_func_start sub_80FF5CC
-sub_80FF5CC: @ 80FF5CC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _080FF660
- ldr r0, =gTasks
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r7, r1, r0
- movs r1, 0x8
- ldrsh r5, [r7, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080FF674
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80A7344
- ldr r6, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r6
- strh r5, [r1, 0x24]
- strh r5, [r1, 0x26]
- movs r5, 0x3
- ldrh r2, [r7, 0x24]
- ands r2, r5
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x3
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x26]
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r1, 0x5]
- ands r4, r2
- orrs r4, r0
- strb r4, [r1, 0x5]
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _080FF68E
- .pool
-_080FF660:
- ldr r1, =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _080FF68E
-_080FF674:
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080FF68E
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080FF68E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF5CC
-
- thumb_func_start sub_80FF698
-sub_80FF698: @ 80FF698
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080FF6AA
- cmp r0, 0x1
- beq _080FF704
- b _080FF756
-_080FF6AA:
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080FF6C2
- ldr r1, =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080FF6C2:
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080FF756
- .pool
-_080FF704:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FF756
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A70C0
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_080FF756:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF698
-
- thumb_func_start sub_80FF768
-sub_80FF768: @ 80FF768
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080FF7D4
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080FF7D4
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080FF7D4:
- ldr r0, =sub_80FF8DC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF768
-
- thumb_func_start sub_80FF7EC
-sub_80FF7EC: @ 80FF7EC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, =sub_80FF8DC
- str r0, [r1, 0x1C]
- ldr r1, =gUnknown_0203A0F8
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF7EC
-
- thumb_func_start sub_80FF8DC
-sub_80FF8DC: @ 80FF8DC
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080FF91C
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080FF91C:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080FF92E
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080FF92E:
- pop {r0}
- bx r0
- thumb_func_end sub_80FF8DC
-
- thumb_func_start sub_80FF934
-sub_80FF934: @ 80FF934
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080FF974
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080FF974:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080FF9AA
- adds r0, r6, 0
- bl DestroyAnimSprite
-_080FF9AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FF934
-
- thumb_func_start sub_80FF9B8
-sub_80FF9B8: @ 80FF9B8
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF9B8
-
- thumb_func_start sub_80FF9E0
-sub_80FF9E0: @ 80FF9E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- ldrh r0, [r0, 0x38]
- lsrs r1, r0, 8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- ldrh r0, [r1, 0x3A]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r1, [r1, 0x3C]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0xFF
- ands r3, r1
- cmp r2, 0
- bne _080FFA1A
- movs r2, 0x20
- negs r2, r2
- b _080FFA22
-_080FFA1A:
- cmp r2, 0xFF
- bne _080FFA22
- movs r2, 0x88
- lsls r2, 1
-_080FFA22:
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r10
- subs r0, r2, r1
- lsls r5, r3, 16
- asrs r5, 16
- muls r0, r5
- lsls r1, r6, 16
- asrs r7, r1, 16
- adds r1, r7, 0
- bl __divsi3
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r5
- adds r1, r7, 0
- bl __divsi3
- add r6, r10
- mov r1, r8
- strh r6, [r1, 0x20]
- add r0, r9
- strh r0, [r1, 0x22]
- adds r5, 0x1
- lsls r5, 16
- lsrs r3, r5, 16
- asrs r5, 16
- cmp r5, r7
- beq _080FFA74
- lsls r1, r7, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r1
- mov r1, r8
- strh r0, [r1, 0x3C]
- movs r0, 0
- b _080FFA76
-_080FFA74:
- movs r0, 0x1
-_080FFA76:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FF9E0
-
- thumb_func_start sub_80FFA84
-sub_80FFA84: @ 80FFA84
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080FFA98
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080FFA98:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080FFAAC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FFAAC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FFA84
-
- thumb_func_start sub_80FFAB4
-sub_80FFAB4: @ 80FFAB4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080FFADE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080FFADE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80FF9E0
- lsls r0, 24
- cmp r0, 0
- beq _080FFB0E
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, =sub_80FFA84
- str r0, [r4, 0x1C]
-_080FFB0E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFAB4
-
- thumb_func_start sub_80FFB18
-sub_80FFB18: @ 80FFB18
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gBattleAnimAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080FFB68
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80FF9B8
- movs r0, 0x1
- b _080FFB7A
- .pool
-_080FFB68:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80FF9B8
- movs r0, 0x3
-_080FFB7A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, =sub_80FFAB4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFB18
-
- thumb_func_start sub_80FFB90
-sub_80FFB90: @ 80FFB90
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080FFBBA
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080FFBBA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80FF9E0
- lsls r0, 24
- cmp r0, 0
- beq _080FFBEC
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FFBEC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FFB90
-
- thumb_func_start sub_80FFBF4
-sub_80FFBF4: @ 80FFBF4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080FFC38
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80FF9B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, =sub_80FFAB4
- b _080FFC62
- .pool
-_080FFC38:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080FFC50
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080FFC50:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80FF9B8
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, =sub_80FFB90
-_080FFC62:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFBF4
-
- thumb_func_start sub_80FFC70
-sub_80FFC70: @ 80FFC70
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FFC8A
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A6980
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080FFC8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- muls r0, r1
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080FFCAA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FFCAA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFC70
-
- thumb_func_start sub_80FFCB4
-sub_80FFCB4: @ 80FFCB4
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80A6980
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080FFD04
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80FF9B8
- movs r0, 0x1
- b _080FFD16
- .pool
-_080FFD04:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80FF9B8
- movs r0, 0x3
-_080FFD16:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, =sub_80FFD2C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFCB4
-
- thumb_func_start sub_80FFD2C
-sub_80FFD2C: @ 80FFD2C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080FFD56
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080FFD56:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _080FFD8A
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080FFD8A:
- adds r0, r4, 0
- bl sub_80FF9E0
- lsls r0, 24
- cmp r0, 0
- beq _080FFDB2
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, =sub_80FFA84
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080FFDB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFD2C
-
- thumb_func_start sub_80FFDBC
-sub_80FFDBC: @ 80FFDBC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FFE50
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080FFDE4
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080FFE06
- .pool
-_080FFDE4:
- ldr r0, =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r3, [r0, r1]
- adds r1, r3, 0
- subs r1, 0x20
- adds r2, r1, 0
- adds r5, r0, 0
- cmp r1, 0
- bge _080FFDFA
- adds r2, r3, 0
- adds r2, 0xDF
-_080FFDFA:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080FFE06:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x32]
- movs r0, 0x14
- strh r0, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- ldr r0, =sub_80FFE58
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080FFE48
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080FFE4E
- .pool
-_080FFE48:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080FFE4E:
- strb r0, [r1]
-_080FFE50:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FFDBC
-
- thumb_func_start sub_80FFE58
-sub_80FFE58: @ 80FFE58
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080FFE6A
- cmp r0, 0x1
- beq _080FFE9A
- b _080FFEBA
-_080FFE6A:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080FFE82
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080FFEBA
-_080FFE82:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- adds r0, r5, r0
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- adds r1, 0x3
- strh r1, [r4, 0x36]
- strh r0, [r4, 0x22]
- b _080FFEBA
-_080FFE9A:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080FFEBA
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FFEBA
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, =sub_80FFEC4
- str r0, [r4, 0x1C]
-_080FFEBA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFE58
-
- thumb_func_start sub_80FFEC4
-sub_80FFEC4: @ 80FFEC4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, =gUnknown_08592700
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r3, r0, r1
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrh r2, [r4, 0x32]
- movs r6, 0x32
- ldrsh r1, [r4, r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080FFF10
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080FFEFC
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80FFF7C
- str r0, [r4, 0x1C]
-_080FFEFC:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080FFF76
- .pool
-_080FFF10:
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r0, r5
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080FFF5E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080FFF56
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080FFF5C
-_080FFF56:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080FFF5C:
- strb r0, [r1]
-_080FFF5E:
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
-_080FFF76:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80FFEC4
-
- thumb_func_start sub_80FFF7C
-sub_80FFF7C: @ 80FFF7C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080FFF8E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080FFF8E:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FFF7C
-
- thumb_func_start sub_80FFFC0
-sub_80FFFC0: @ 80FFFC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_80A861C
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_80A861C
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0x1
- bne _08100028
- movs r1, 0x1
-_08100028:
- strh r1, [r5, 0x12]
- movs r3, 0x12
- ldrsh r0, [r5, r3]
- lsls r0, 6
- movs r1, 0x38
- subs r1, r0
- strh r1, [r5, 0x1A]
- ldrh r0, [r5, 0x16]
- subs r0, r1
- ldrh r1, [r5, 0x14]
- adds r0, r1
- strh r0, [r5, 0x18]
- ldr r0, =gUnknown_08592778
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- movs r3, 0x1A
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- cmp r0, 0x40
- bne _08100060
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08100060:
- ldr r4, =gSprites
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x18]
- strh r1, [r0, 0x30]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- muls r1, r0
- ldrh r0, [r5, 0x14]
- subs r0, r1
- strh r0, [r2, 0x32]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x1A]
- strh r1, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r2, [r5, r3]
- muls r0, r2
- ldrh r2, [r5, 0x16]
- adds r0, r2
- strh r0, [r1, 0x36]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_8100504
- movs r1, 0xC
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x38]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80A68D4
- ldr r0, =sub_8100128
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FFFC0
-
- thumb_func_start sub_8100128
-sub_8100128: @ 8100128
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _08100150
- b _08100380
-_08100150:
- cmp r5, 0x7
- bgt _0810019E
- cmp r5, 0x3
- bne _0810015A
- b _08100272
-_0810015A:
- cmp r5, 0x3
- bgt _08100174
- cmp r5, 0x1
- beq _08100204
- cmp r5, 0x1
- bgt _08100254
- cmp r5, 0
- beq _081001E6
- b _081004FC
- .pool
-_08100174:
- cmp r5, 0x5
- bne _0810017A
- b _081002E8
-_0810017A:
- cmp r5, 0x5
- ble _08100180
- b _08100362
-_08100180:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- bne _08100196
- b _081004FC
-_08100196:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _081004FA
-_0810019E:
- cmp r5, 0xB
- bne _081001A4
- b _08100464
-_081001A4:
- cmp r5, 0xB
- bgt _081001D2
- cmp r5, 0x9
- bne _081001AE
- b _081003D2
-_081001AE:
- cmp r5, 0x9
- ble _081001B4
- b _08100448
-_081001B4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- bne _081001CA
- b _081004FC
-_081001CA:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _081004FA
-_081001D2:
- cmp r5, 0xD
- bne _081001D8
- b _081004D6
-_081001D8:
- cmp r5, 0xD
- bge _081001DE
- b _081004B6
-_081001DE:
- cmp r5, 0xFF
- bne _081001E4
- b _081004E6
-_081001E4:
- b _081004FC
-_081001E6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- bne _081001FC
- b _081004FC
-_081001FC:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _081004FA
-_08100204:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8100504
- strh r0, [r4, 0x38]
- ldrh r0, [r6, 0x10]
- adds r0, 0x2
- strh r0, [r6, 0x10]
- strh r5, [r6, 0xE]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80A68D4
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_08100254:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- bne _0810026A
- b _081004FC
-_0810026A:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _081004FA
-_08100272:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r1, r0
- ldrh r0, [r6, 0x16]
- subs r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8100504
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80A68D4
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_081002E8:
- ldrh r1, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r1, r3
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r2, 0x1E
- ldrsh r0, [r6, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x16]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8100504
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x3
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80A68D4
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_08100362:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- bne _08100378
- b _081004FC
-_08100378:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _081004FA
-_08100380:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8100504
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- adds r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x4
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80A68D4
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_081003D2:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r0, r1
- ldrh r3, [r6, 0x16]
- adds r0, r3
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8100504
- strh r0, [r4, 0x38]
- movs r0, 0x5
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80A68D4
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_08100448:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _081004FC
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _081004FA
-_08100464:
- ldrh r2, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r2, r0
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x18]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x1A]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8100504
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x6
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80A68D4
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_081004B6:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_8100524
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _081004FC
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _081004FA
-_081004D6:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081004FC
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _081004FC
-_081004E6:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _081004FC
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_081004FA:
- strh r0, [r6, 0x8]
-_081004FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8100128
-
- thumb_func_start sub_8100504
-sub_8100504: @ 8100504
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _0810051A
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_0810051A:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8100504
-
- thumb_func_start sub_8100524
-sub_8100524: @ 8100524
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _081005BA
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, =gSprites
- mov r8, r0
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- ldrh r2, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r0
- ldr r0, =gUnknown_08592778
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r3, [r6, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081005BA
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r0, r8
- adds r4, r5, r0
- strh r7, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x3C]
- ldr r0, =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldrh r2, [r6, 0x22]
- movs r0, 0x1
- ands r0, r2
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r6, 0x10]
- adds r4, 0x43
- strb r0, [r4]
- mov r0, r8
- adds r0, 0x1C
- adds r5, r0
- ldr r0, =sub_81005D4
- str r0, [r5]
-_081005BA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100524
-
- thumb_func_start sub_81005D4
-sub_81005D4: @ 81005D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08100636
- movs r0, 0
- strh r0, [r4, 0x2E]
- 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]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08100636
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_08100636:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81005D4
-
- thumb_func_start sub_8100640
-sub_8100640: @ 8100640
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810065C
- ldr r0, =gBattleAnimAttacker
- b _0810065E
- .pool
-_0810065C:
- ldr r0, =gBattleAnimTarget
-_0810065E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08100688
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, =0x0000fff0
- b _08100698
- .pool
-_08100688:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_08100698:
- strh r0, [r4, 0x20]
- adds r7, r1, 0
- adds r5, r7, 0
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x34]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _081006CE
- cmp r0, 0x1
- bgt _081006C0
- cmp r0, 0
- beq _081006CA
- b _08100738
- .pool
-_081006C0:
- cmp r0, 0x2
- beq _081006D4
- cmp r0, 0x3
- beq _08100700
- b _08100738
-_081006CA:
- ldrh r0, [r5]
- b _081006E4
-_081006CE:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _0810071A
-_081006D4:
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_081006E4:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _08100738
-_08100700:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
-_0810071A:
- adds r0, r6, 0
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_08100738:
- ldr r0, =sub_810074C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100640
-
- thumb_func_start sub_810074C
-sub_810074C: @ 810074C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r3, [r4, r0]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- ldr r1, =gSineTable
- movs r5, 0x2E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r0, 8
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- muls r0, r3
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r0, [r4, r5]
- muls r0, r3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081007A4
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _081007BC
- b _081007B6
- .pool
-_081007A4:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _081007BC
-_081007B6:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_081007BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810074C
-
- thumb_func_start sub_81007C4
-sub_81007C4: @ 81007C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081007E8
- cmp r0, 0x1
- beq _0810081C
- b _08100876
- .pool
-_081007E8:
- ldr r0, =0x0000274f
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2, 0
- adds r0, r4
- strh r0, [r5, 0x18]
- ldr r0, =0x000027b0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _08100876
- .pool
-_0810081C:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _08100876
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, =gUnknown_08592878
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x20]
- ldrb r2, [r5, 0x1C]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- bne _08100876
- strh r7, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bne _08100876
- strh r7, [r5, 0x1E]
-_08100876:
- ldr r0, =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0810088A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0810088A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81007C4
-
- thumb_func_start sub_8100898
-sub_8100898: @ 8100898
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, =gBattleAnimArgs
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _081008B4
- adds r0, r6, 0
- bl DestroyAnimSprite
- b _0810098E
- .pool
-_081008B4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081008C4
- ldr r4, =gBattleAnimAttacker
- b _081008C6
- .pool
-_081008C4:
- ldr r4, =gBattleAnimTarget
-_081008C6:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _08100908
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x20]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x38]
- strh r2, [r6, 0x3A]
- b _08100918
- .pool
-_08100908:
- strh r5, [r6, 0x20]
- strh r2, [r6, 0x22]
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x38]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x3A]
-_08100918:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810097A
- ldr r1, =0xffff8000
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0810097A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_80A73E0
- ldr r0, =sub_81009A0
- str r0, [r6, 0x1C]
-_0810098E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100898
-
- thumb_func_start sub_81009A0
-sub_81009A0: @ 81009A0
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _081009D0
- ldrh r0, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r0, r4
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r4, [r2, 0x32]
- adds r1, r4
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x2E]
- b _081009D6
-_081009D0:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_081009D6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81009A0
-
- thumb_func_start sub_81009DC
-sub_81009DC: @ 81009DC
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081009F2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081009F2:
- pop {r0}
- bx r0
- thumb_func_end sub_81009DC
-
- thumb_func_start sub_81009F8
-sub_81009F8: @ 81009F8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08100A20
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _08100A2C
- .pool
-_08100A20:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_08100A2C:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81009F8
-
- thumb_func_start sub_8100A50
-sub_8100A50: @ 8100A50
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08100A6A
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_08100A6A:
- ldr r0, =sub_81009DC
- str r0, [r5, 0x1C]
- ldr r4, =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_80A6864
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100A50
-
- thumb_func_start sub_8100A94
-sub_8100A94: @ 8100A94
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A66DC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100A94
-
- thumb_func_start sub_8100AE0
-sub_8100AE0: @ 8100AE0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08100B14
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_08100B14:
- ldr r0, =sub_8100CCC
- str r0, [r5, 0x1C]
- ldr r0, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _08100B3C
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _08100B50
- .pool
-_08100B3C:
- ldrh r0, [r5, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r5, 0x20]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08100B50:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r5, 0x30]
- adds r1, r0, r2
- strh r1, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08100B7E
- negs r0, r1
- strh r0, [r5, 0x30]
-_08100B7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100AE0
-
- thumb_func_start sub_8100B88
-sub_8100B88: @ 8100B88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _08100BA8
- cmp r0, 0x1
- ble _08100C24
- cmp r0, 0x2
- beq _08100BC8
- b _08100C24
- .pool
-_08100BA8:
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _08100C34
- .pool
-_08100BC8:
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08100C3E
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- lsrs r7, r0, 1
- ldrb r0, [r5]
- mov r1, r8
- eors r0, r1
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _08100C3E
- .pool
-_08100C24:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_08100C34:
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r4, r0, 24
-_08100C3E:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08100C56
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_08100C56:
- ldr r0, =sub_8100CCC
- str r0, [r6, 0x1C]
- ldr r0, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _08100C7C
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _08100C90
- .pool
-_08100C7C:
- ldrh r0, [r6, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r6, 0x20]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08100C90:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r6, 0x30]
- adds r1, r0, r2
- strh r1, [r6, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r6, 0x32]
- adds r0, r2
- strh r0, [r6, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08100CBE
- negs r0, r1
- strh r0, [r6, 0x30]
-_08100CBE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100B88
-
- thumb_func_start sub_8100CCC
-sub_8100CCC: @ 8100CCC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08100CEE
- adds r0, r1, 0
- adds r0, 0x18
- b _08100CF2
-_08100CEE:
- adds r0, r1, 0
- subs r0, 0x18
-_08100CF2:
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- subs r0, 0x18
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _08100D28
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
-_08100D28:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100CCC
-
- thumb_func_start sub_8100D38
-sub_8100D38: @ 8100D38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _08100DDC
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08100D94
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3]
- ldr r4, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r3, [r0]
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _08100DCA
- .pool
-_08100D94:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
-_08100DCA:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _08100DE0
- .pool
-_08100DDC:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_08100DE0:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _08100E10
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyAnimSprite
-_08100E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100D38
-
- thumb_func_start sub_8100E1C
-sub_8100E1C: @ 8100E1C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08100E44
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _08100E4A
- .pool
-_08100E44:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_08100E4A:
- strh r0, [r5, 0x20]
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, =sub_8100E80
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100E1C
-
- thumb_func_start sub_8100E80
-sub_8100E80: @ 8100E80
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _08100EAC
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _08100EB2
-_08100EAC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_08100EB2:
- strb r0, [r1]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x82
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08100EE8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08100EE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8100E80
-
- thumb_func_start sub_8100EF0
-sub_8100EF0: @ 8100EF0
- push {r4-r6,lr}
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08100F06
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_08100F06:
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08100F44
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08100F6C
-_08100F44:
- ldrb r0, [r6]
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- b _08100F84
- .pool
-_08100F6C:
- ldrb r0, [r6]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_08100F84:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, =0x00002828
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r5, 0x32]
- movs r4, 0x10
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x3C]
- lsls r1, r0, 8
- subs r4, r0
- orrs r1, r4
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =sub_8100FD4
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100EF0
-
- thumb_func_start sub_8100FD4
-sub_8100FD4: @ 8100FD4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x60
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08101032
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, =gPlttBufferFaded
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- movs r2, 0
- adds r6, r1, 0
- adds r3, r6, 0
-_0810100C:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- adds r2, 0x1
- adds r0, r2
- lsls r1, r0, 1
- adds r1, r3
- adds r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- cmp r2, 0x5
- ble _0810100C
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_08101032:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _0810106C
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _08101080
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810106C
- movs r0, 0
- strh r0, [r4, 0x3A]
- subs r2, 0x1
- strh r2, [r4, 0x3C]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_0810106C:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08101080
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _081010C2
- .pool
-_08101080:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081010C2
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r2, 0x1
- strh r2, [r4, 0x3C]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081010C2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_80A67F4
- str r0, [r4, 0x1C]
-_081010C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8100FD4
-
- thumb_func_start sub_81010CC
-sub_81010CC: @ 81010CC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =0x0000ffe8
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- strh r5, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x3C]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =sub_8101138
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81010CC
-
- thumb_func_start sub_8101138
-sub_8101138: @ 8101138
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08101146
- b _08101290
-_08101146:
- lsls r0, 2
- ldr r1, =_08101154
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08101154:
- .4byte _08101168
- .4byte _081011CC
- .4byte _081011E8
- .4byte _08101266
- .4byte _0810127A
-_08101168:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _08101176
- b _08101290
-_08101176:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08101198
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _081011A6
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _081011A6
-_08101198:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _081011A6
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_081011A6:
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _08101290
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08101290
- strh r0, [r4, 0x30]
- b _08101272
-_081011CC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08101290
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08101272
-_081011E8:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_8101298
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810120A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_0810120A:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _08101290
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08101230
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0810123E
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _0810123E
-_08101230:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _0810123E
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_0810123E:
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r0, [r4, 0x3A]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _08101290
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _08101290
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _08101272
-_08101266:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08101272:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08101290
-_0810127A:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08101290:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101138
-
- thumb_func_start sub_8101298
-sub_8101298: @ 8101298
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _081012AA
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_081012AA:
- ldrh r5, [r4, 0x34]
- adds r0, r5, 0
- subs r0, 0x12
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- cmp r0, 0x17
- bhi _081012C0
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_081012C0:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _081012CE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_081012CE:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x9
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bge _081012F4
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_081012F4:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08101304
- movs r0, 0
- strh r0, [r4, 0x34]
-_08101304:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8101298
-
- thumb_func_start sub_810130C
-sub_810130C: @ 810130C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08101320
- adds r0, r4, 0
- bl sub_80A6838
-_08101320:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_80A6864
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A656C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810130C
-
- thumb_func_start sub_810135C
-sub_810135C: @ 810135C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08101378
- ldr r0, =gBattleAnimAttacker
- b _0810137A
- .pool
-_08101378:
- ldr r0, =gBattleAnimTarget
-_0810137A:
- ldrb r6, [r0]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _081013C4
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _081013C4
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl SetAverageBattlerPositions
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_80A6864
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _08101414
- .pool
-_081013C4:
- ldr r4, =gBattleAnimArgs
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081013E8
- adds r0, r6, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _081013FA
- .pool
-_081013E8:
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_081013FA:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_80A6864
-_08101414:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A656C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810135C
-
- thumb_func_start sub_8101440
-sub_8101440: @ 8101440
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08101474
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _0810148E
- .pool
-_08101474:
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0810148E:
- ldr r0, =sub_81014A0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101440
-
- thumb_func_start sub_81014A0
-sub_81014A0: @ 81014A0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _081014D8
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x1E
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r4, 0x26]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 18
- asrs r0, 16
- movs r1, 0x3
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_081014D8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081014EC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081014EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81014A0
-
- thumb_func_start sub_81014F4
-sub_81014F4: @ 81014F4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810152C
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- b _0810154A
- .pool
-_0810152C:
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0810154A:
- ldr r0, =sub_8101560
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81014F4
-
- thumb_func_start sub_8101560
-sub_8101560: @ 8101560
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _081015A4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_081015A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101560
-
- thumb_func_start sub_81015AC
-sub_81015AC: @ 81015AC
- push {lr}
- ldrh r1, [r0, 0x20]
- subs r1, 0x20
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x22]
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldr r1, =sub_80A64B0
- str r1, [r0, 0x1C]
- ldr r1, =sub_81015D4
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81015AC
-
- thumb_func_start sub_81015D4
-sub_81015D4: @ 81015D4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r6, [r5, 0x38]
- movs r1, 0x1
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _081015EA
- cmp r0, 0x1
- beq _08101604
- b _0810166A
-_081015EA:
- strh r1, [r5, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r5, 0x1C]
- ldr r1, =sub_81015D4
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _0810166A
- .pool
-_08101604:
- ldrh r3, [r5, 0x24]
- ldrh r0, [r5, 0x20]
- adds r3, r0
- movs r0, 0
- strh r3, [r5, 0x20]
- ldrh r4, [r5, 0x26]
- ldrh r1, [r5, 0x22]
- adds r4, r1
- strh r4, [r5, 0x22]
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r2, =gUnknown_08592CD0
- lsls r0, r6, 16
- asrs r0, 24
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r3, r1
- strh r3, [r5, 0x32]
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r0
- strh r4, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =sub_8101684
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xD2
- bl PlaySE12WithPanning
-_0810166A:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81015D4
-
- thumb_func_start sub_8101684
-sub_8101684: @ 8101684
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _081016AC
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r2, 0x1C]
- ldr r1, =sub_81016B8
- adds r0, r2, 0
- bl StoreSpriteCallbackInData6
- b _081016B0
- .pool
-_081016AC:
- ldr r0, =sub_81015D4
- str r0, [r2, 0x1C]
-_081016B0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101684
-
- thumb_func_start sub_81016B8
-sub_81016B8: @ 81016B8
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _081016E0
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, =sub_80A64B0
- str r0, [r5, 0x1C]
- ldr r1, =sub_8101774
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- b _08101760
- .pool
-_081016E0:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _08101700
- cmp r0, 0x2
- bgt _081016F0
- cmp r0, 0x1
- beq _081016F6
- b _08101714
-_081016F0:
- cmp r0, 0x3
- beq _08101708
- b _08101714
-_081016F6:
- ldr r6, =0x0000fff8
- adds r7, r6, 0
- b _08101718
- .pool
-_08101700:
- ldr r7, =0x0000fff8
- b _08101716
- .pool
-_08101708:
- movs r7, 0x8
- ldr r6, =0x0000fff8
- b _08101718
- .pool
-_08101714:
- movs r7, 0x8
-_08101716:
- movs r6, 0x8
-_08101718:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =sub_8101820
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_08101760:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81016B8
-
- thumb_func_start sub_8101774
-sub_8101774: @ 8101774
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08101794
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _081017A4
- movs r0, 0x10
- b _081017A2
-_08101794:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _081017A4
- movs r0, 0
-_081017A2:
- strh r0, [r4, 0x30]
-_081017A4:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80A75AC
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =0x00007fff
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _0810180C
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, =gPlttBufferUnfaded + 0x210
- adds r0, r2
- lsls r1, 4
- ldr r3, =0x00000101
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- b _08101814
- .pool
-_0810180C:
- cmp r0, 0
- bne _08101814
- ldr r0, =sub_8101820
- str r0, [r4, 0x1C]
-_08101814:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101774
-
- thumb_func_start sub_8101820
-sub_8101820: @ 8101820
- push {lr}
- adds r2, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08101838
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, =sub_8101848
- str r0, [r2, 0x1C]
-_08101838:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101820
-
- thumb_func_start sub_8101848
-sub_8101848: @ 8101848
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0810187C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- 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]
-_0810187C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _08101890
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08101890:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101848
-
- thumb_func_start sub_8101898
-sub_8101898: @ 8101898
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081018BC
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _0810190E
- .pool
-_081018BC:
- cmp r0, 0x2
- bne _081018D8
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- b _0810190A
-_081018D8:
- cmp r0, 0x3
- bne _081018F4
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- b _0810190A
-_081018F4:
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
-_0810190A:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_0810190E:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, =sub_81015AC
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101898
-
- thumb_func_start sub_8101940
-sub_8101940: @ 8101940
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _0810197C
- cmp r0, 0x1
- bgt _0810196C
- cmp r0, 0
- beq _08101972
- b _0810198C
- .pool
-_0810196C:
- cmp r0, 0x2
- beq _08101984
- b _0810198C
-_08101972:
- ldr r0, =sub_8101998
- b _0810198E
- .pool
-_0810197C:
- ldr r0, =sub_8101A74
- b _0810198E
- .pool
-_08101984:
- ldr r0, =sub_8101AC4
- b _0810198E
- .pool
-_0810198C:
- ldr r0, =sub_8101B84
-_0810198E:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101940
-
- thumb_func_start sub_8101998
-sub_8101998: @ 8101998
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _081019B6
- movs r1, 0x2
-_081019B6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, =sub_81019E8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A6630
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101998
-
- thumb_func_start sub_81019E8
-sub_81019E8: @ 81019E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _08101A24
- ldr r1, =gBattlerSpriteIds
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl sub_80A7270
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, =0xfffffd00
- adds r1, r2, 0
- cmp r0, 0
- beq _08101A20
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_08101A20:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_08101A24:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08101A5E
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, =sub_8101B84
- str r0, [r5, 0x1C]
-_08101A5E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81019E8
-
- thumb_func_start sub_8101A74
-sub_8101A74: @ 8101A74
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _08101A92
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_08101A92:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, =sub_8101B84
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A6630
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101A74
-
- thumb_func_start sub_8101AC4
-sub_8101AC4: @ 8101AC4
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08101ADE
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, =sub_8101AE8
- str r0, [r1, 0x1C]
-_08101ADE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101AC4
-
- thumb_func_start sub_8101AE8
-sub_8101AE8: @ 8101AE8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08101B38
- ldr r1, =gBattlerSpriteIds
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08101B2C
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _08101B36
- .pool
-_08101B2C:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_08101B36:
- strh r0, [r5, 0x38]
-_08101B38:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08101B78
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7344
- ldr r0, =sub_8101B84
- str r0, [r5, 0x1C]
-_08101B78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101AE8
-
- thumb_func_start sub_8101B84
-sub_8101B84: @ 8101B84
- push {lr}
- bl DestroyAnimSprite
- pop {r0}
- bx r0
- thumb_func_end sub_8101B84
-
- thumb_func_start sub_8101B90
-sub_8101B90: @ 8101B90
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, =sub_8101BA0
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8101B90
-
- thumb_func_start sub_8101BA0
-sub_8101BA0: @ 8101BA0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _08101BFA
- cmp r5, 0x1
- bgt _08101BB6
- cmp r5, 0
- beq _08101BBC
- b _08101C8E
-_08101BB6:
- cmp r5, 0x2
- beq _08101C4C
- b _08101C8E
-_08101BBC:
- strh r5, [r4, 0x30]
- ldr r1, =gBattlerSpriteIds
- ldr r2, =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldr r2, =0xfffffe00
- adds r1, r2, 0
- cmp r0, 0
- beq _08101BE4
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_08101BE4:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80A7270
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08101BFA:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08101C8E
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08101C8E
- .pool
-_08101C4C:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A73A0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08101C8E
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7344
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08101C8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8101BA0
-
- thumb_func_start sub_8101C94
-sub_8101C94: @ 8101C94
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, =gBattlerSpriteIds
- ldr r2, =gBattleAnimAttacker
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrb r0, [r2]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r5, 0xA]
- strh r4, [r5, 0xC]
- ldr r0, =gBattleAnimArgs
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _08101CE8
- cmp r1, 0x1
- beq _08101D04
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _08101D22
- .pool
-_08101CE8:
- strh r1, [r5, 0xC]
- movs r0, 0x8
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r0, 0x3
- strh r0, [r5, 0x12]
- cmp r2, 0
- bne _08101CFC
- negs r0, r0
- strh r0, [r5, 0x12]
-_08101CFC:
- ldr r0, =sub_8101D2C
- b _08101D20
- .pool
-_08101D04:
- movs r0, 0x8
- strh r0, [r5, 0xE]
- movs r0, 0xC0
- lsls r0, 3
- strh r0, [r5, 0x10]
- movs r1, 0xC0
- strh r1, [r5, 0x12]
- cmp r2, 0
- bne _08101D1E
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_08101D1E:
- ldr r0, =sub_8101EEC
-_08101D20:
- str r0, [r5]
-_08101D22:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101C94
-
- thumb_func_start sub_8101D2C
-sub_8101D2C: @ 8101D2C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08101D46
- b _08101EE6
-_08101D46:
- lsls r0, 2
- ldr r1, =_08101D58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08101D58:
- .4byte _08101D6C
- .4byte _08101D9E
- .4byte _08101DF8
- .4byte _08101E70
- .4byte _08101EB4
-_08101D6C:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08101D7C
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _08101EC2
-_08101D7C:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0xC0
- cmp r0, 0
- bne _08101D92
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_08101D92:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl sub_80A7270
- b _08101EA8
-_08101D9E:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08101DC4
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80A73A0
- b _08101ED4
-_08101DC4:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08101DEA
- movs r1, 0x2
-_08101DEA:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _08101EA8
- .pool
-_08101DF8:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08101E54
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08101E12
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _08101EE6
-_08101E12:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08101E34
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r4, 0x10]
- adds r1, r2
- b _08101E48
- .pool
-_08101E34:
- ldr r2, =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0x12]
- subs r1, r2
-_08101E48:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _08101ED4
- .pool
-_08101E54:
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x24]
- movs r0, 0xC
- strh r0, [r4, 0xE]
- b _08101EA8
- .pool
-_08101E70:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08101E80
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08101EE6
-_08101E80:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08101EA6
- movs r1, 0x8
-_08101EA6:
- strh r1, [r4, 0x12]
-_08101EA8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08101EE6
- .pool
-_08101EB4:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08101EE0
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_08101EC2:
- strh r2, [r4, 0x10]
- ldr r3, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_08101ED4:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _08101EE6
- .pool
-_08101EE0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08101EE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101D2C
-
- thumb_func_start sub_8101EEC
-sub_8101EEC: @ 8101EEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08101F2C
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80A73A0
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _08101F38
- .pool
-_08101F2C:
- ldrb r0, [r4, 0x8]
- bl sub_80A7344
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08101F38:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8101EEC
-
- thumb_func_start sub_8101F40
-sub_8101F40: @ 8101F40
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08101F5C
- ldr r4, =gBattleAnimAttacker
- b _08101F5E
- .pool
-_08101F5C:
- ldr r4, =gBattleAnimTarget
-_08101F5E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldr r1, =sub_810208C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101F40
-
- thumb_func_start sub_8101FA8
-sub_8101FA8: @ 8101FA8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =0x0000ffd0
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, =sub_8102044
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101FA8
-
- thumb_func_start sub_8101FF0
-sub_8101FF0: @ 8101FF0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleAnimArgs
- ldr r2, =0x0000ffd0
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- strh r6, [r4, 0x30]
- ldr r0, =sub_810208C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8101FF0
-
- thumb_func_start sub_8102044
-sub_8102044: @ 8102044
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0810206E
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, =sub_810207C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A653C
- str r0, [r4, 0x1C]
-_0810206E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102044
-
- thumb_func_start sub_810207C
-sub_810207C: @ 810207C
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, =sub_810208C
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_810207C
-
- thumb_func_start sub_810208C
-sub_810208C: @ 810208C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081020D4
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081020D4
- adds r0, r3, 0
- bl DestroyAnimSprite
-_081020D4:
- pop {r0}
- bx r0
- thumb_func_end sub_810208C
-
- thumb_func_start sub_81020D8
-sub_81020D8: @ 81020D8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081020F4
- ldr r4, =gBattleAnimAttacker
- b _081020F6
- .pool
-_081020F4:
- ldr r4, =gBattleAnimTarget
-_081020F6:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, =sub_810213C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81020D8
-
- thumb_func_start sub_810213C
-sub_810213C: @ 810213C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _0810215C
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_0810215C:
- ldrh r0, [r2, 0x22]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x22]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08102178
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08102178:
- pop {r0}
- bx r0
- thumb_func_end sub_810213C
-
- thumb_func_start sub_810217C
-sub_810217C: @ 810217C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- movs r0, 0x2
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- subs r0, 0x42
- bl BattleAnimAdjustPanning
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, =sub_81021CC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810217C
-
- thumb_func_start sub_81021CC
-sub_81021CC: @ 81021CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _08102238
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0810221E
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810221E
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC2
- bl PlaySE12WithPanning
-_0810221E:
- movs r1, 0
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08102238
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08102238:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08102262
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _08102262
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08102262
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08102262:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81021CC
-
- thumb_func_start sub_8102268
-sub_8102268: @ 8102268
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081022B2
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r5, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _081022AC
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_081022AC:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_081022B2:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081022C2
- adds r0, r6, 0
- bl DestroyAnimSprite
-_081022C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102268
-
- thumb_func_start sub_81022D4
-sub_81022D4: @ 81022D4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08102300
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x0000ffff
- strh r0, [r1, 0xE]
- b _0810233E
- .pool
-_08102300:
- cmp r0, 0x2
- bne _0810230C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _08102344
-_0810230C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08102344
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r2, [r4, 0xA]
- adds r2, 0x1
- strh r2, [r4, 0xA]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _08102344
-_0810233E:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_08102344:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81022D4
-
- thumb_func_start sub_810234C
-sub_810234C: @ 810234C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A6980
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, =sub_810237C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810234C
-
- thumb_func_start sub_810237C
-sub_810237C: @ 810237C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08102390
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _081023CC
-_08102390:
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_081023CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810237C
-
- thumb_func_start sub_81023E0
-sub_81023E0: @ 81023E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08102428
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _08102428
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08102428:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81023E0
-
- thumb_func_start sub_8102434
-sub_8102434: @ 8102434
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08102490
- ldr r6, =gBattleAnimArgs
- ldr r5, =gHealthboxSpriteIds
-_08102448:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _08102464
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08102464
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_08102464:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _08102482
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08102482
- adds r0, r4, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
-_08102482:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _08102448
-_08102490:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102434
-
- thumb_func_start sub_81024A8
-sub_81024A8: @ 81024A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _081024C2
-_081024B2:
- ldr r0, =gHealthboxSpriteIds
- adds r0, r4, r0
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081024C2:
- ldr r0, =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _081024B2
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81024A8
-
- thumb_func_start sub_81024E0
-sub_81024E0: @ 81024E0
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _081024F6
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _081024FE
-_081024F6:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_081024FE:
- strh r0, [r4, 0x22]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, =sub_8102528
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81024E0
-
- thumb_func_start sub_8102528
-sub_8102528: @ 8102528
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0810253A
- adds r0, r1, 0
- bl DestroyAnimSprite
-_0810253A:
- pop {r0}
- bx r0
- thumb_func_end sub_8102528
-
- thumb_func_start sub_8102540
-sub_8102540: @ 8102540
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r2, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r0, =sub_8102584
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102540
-
- thumb_func_start sub_8102584
-sub_8102584: @ 8102584
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081025AE
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _081025AE
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_081025AE:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _081025BC
- adds r0, r1, 0
- bl DestroyAnimSprite
-_081025BC:
- pop {r0}
- bx r0
- thumb_func_end sub_8102584
-
- thumb_func_start sub_81025C0
-sub_81025C0: @ 81025C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A75AC
- mov r8, r0
- ldr r0, =0x0000ffff
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, =gTasks
- mov r9, r0
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r6, r5, r0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0xA]
- strh r4, [r6, 0xC]
- strh r1, [r6, 0xE]
- strh r4, [r6, 0x10]
- strh r4, [r6, 0x12]
- strh r4, [r6, 0x14]
- movs r0, 0xD
- strh r0, [r6, 0x16]
- movs r0, 0xE
- strh r0, [r6, 0x18]
- movs r0, 0xF
- strh r0, [r6, 0x1A]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80A76C4
- mov r10, r0
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- movs r0, 0x8
- add r9, r0
- add r5, r9
- adds r0, r5, 0
- adds r0, 0x1C
- adds r5, 0x1E
- adds r1, r5, 0
- mov r2, r8
- bl sub_80A8048
- ldr r0, =0x000027d2
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- mov r0, r10
- orrs r0, r1
- mov r10, r0
- ldr r0, =0x000027d3
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, =0x00007fbb
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =sub_81026A8
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81025C0
-
- thumb_func_start sub_81026A8
-sub_81026A8: @ 81026A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _08102794
- cmp r1, 0x1
- bgt _081026D4
- cmp r1, 0
- beq _081026E2
- b _08102832
- .pool
-_081026D4:
- cmp r1, 0x2
- bne _081026DA
- b _081027EC
-_081026DA:
- cmp r1, 0x3
- bne _081026E0
- b _08102820
-_081026E0:
- b _08102832
-_081026E2:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _081026F0
- b _08102832
-_081026F0:
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0810273C
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r2, [r4, 0x18]
- ldrh r3, [r4, 0x12]
- adds r2, r3
- strh r2, [r4, 0x12]
- ldrh r1, [r4, 0x1A]
- ldrh r5, [r4, 0x14]
- adds r1, r5
- strh r1, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r2, 11
- orrs r0, r2
- lsrs r1, 6
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- b _08102746
-_0810273C:
- ldr r7, =0x00007fbb
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08102746:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_0810274C:
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- ands r0, r2
- lsls r5, r2, 17
- adds r6, r3, 0
- adds r6, 0x10
- adds r1, 0x1
- mov r8, r1
- cmp r0, 0
- beq _08102778
- movs r1, 0x1
- ldr r2, =gPlttBufferFaded
-_08102764:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r2
- mov r7, r12
- strh r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08102764
-_08102778:
- lsrs r2, r5, 16
- lsls r0, r6, 16
- lsrs r3, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _0810274C
- b _08102832
- .pool
-_08102794:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08102832
- movs r2, 0
- ldr r3, =gSprites
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, =gUnknown_08592EBC
- mov r8, r7
- ldr r6, =gBattleAnimSpriteTemplate_8592EEC
- movs r5, 0x1
-_081027B2:
- lsls r0, r2, 4
- adds r0, r2
- lsls r1, r0, 2
- mov r7, r12
- adds r0, r1, r7
- ldr r0, [r0]
- cmp r0, r8
- beq _081027C6
- cmp r0, r6
- bne _081027CA
-_081027C6:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_081027CA:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _081027B2
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08102814
- .pool
-_081027EC:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08102832
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl sub_80A8050
- ldr r1, =0x00007fbb
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08102814:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08102832
- .pool
-_08102820:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08102832
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08102832:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81026A8
-
- thumb_func_start sub_8102844
-sub_8102844: @ 8102844
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _08102856
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_08102856:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _08102862
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_08102862:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r1, [r5, 0x20]
- strh r1, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _081028D4
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, =0xffffec00
- b _081028FA
- .pool
-_081028D4:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810291C
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 5
-_081028FA:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, =0xfffff600
- bl __divsi3
- strh r0, [r5, 0x38]
- b _08102958
- .pool
-_0810291C:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- subs r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, =0xffffec00
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 4
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r5, 0x3]
-_08102958:
- ldr r0, =sub_810296C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102844
-
- thumb_func_start sub_810296C
-sub_810296C: @ 810296C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081029A2
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_081029A2:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081029B0
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081029B0:
- pop {r0}
- bx r0
- thumb_func_end sub_810296C
-
- thumb_func_start sub_81029B4
-sub_81029B4: @ 81029B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- movs r5, 0x1
- ldr r2, =gPlttBufferUnfaded
-_08102A0C:
- adds r1, r3, r5
- lsls r1, 1
- adds r1, r2
- adds r0, r4, r5
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _08102A0C
- adds r0, r3, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0
- bl BlendPalette
- movs r0, 0
- strh r0, [r6, 0xE]
- movs r5, 0
- ldr r7, =gSprites
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _08102A88
- .pool
-_08102A54:
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r6, 0xA]
- lsls r1, 4
- ldrb r3, [r4, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0
- strh r0, [r4, 0x2E]
- lsls r0, r5, 7
- strh r0, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x32]
- add r2, r9
- ldr r0, =sub_8102B3C
- str r0, [r2]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08102A88:
- cmp r5, 0x1
- bhi _08102A9A
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102A54
-_08102A9A:
- ldr r0, =sub_8102AE0
- str r0, [r6]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08102AC8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl ClearGpuRegBits
- b _08102AD2
- .pool
-_08102AC8:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl ClearGpuRegBits
-_08102AD2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81029B4
-
- thumb_func_start sub_8102AE0
-sub_8102AE0: @ 8102AE0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102B32
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08102B1C
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _08102B26
- .pool
-_08102B1C:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_08102B26:
- ldr r0, =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08102B32:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102AE0
-
- thumb_func_start sub_8102B3C
-sub_8102B3C: @ 8102B3C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08102B58
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_08102B58:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _08102B80
- ldr r2, =gTasks
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xE]
- subs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r5, 0
- bl obj_delete_but_dont_free_vram
- b _08102BC2
- .pool
-_08102B80:
- ldr r4, =gSineTable
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r5, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xD
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrh r1, [r5, 0x30]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
-_08102BC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102B3C
-
- thumb_func_start sub_8102BCC
-sub_8102BCC: @ 8102BCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102BCC
-
- thumb_func_start sub_8102BE8
-sub_8102BE8: @ 8102BE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, =gUnknown_08593020
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _08102C2C
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, =gPlttBufferFaded
-_08102C14:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r5
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _08102C14
-_08102C2C:
- movs r4, 0x1
- ldr r0, =gUnknown_08593020
- mov r8, r0
-_08102C32:
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 2
- mov r1, r8
- adds r0, r5, r1
- ldrh r0, [r0]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, 0x1
- mov r12, r4
- cmp r3, 0xFF
- beq _08102C7A
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, =gPlttBufferFaded
- ldr r6, =gUnknown_08593020
- adds r4, r5, 0
-_08102C60:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r7
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _08102C60
-_08102C7A:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08102C32
- mov r0, r9
- bl DestroyAnimVisualTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102BE8
-
- thumb_func_start sub_8102CA0
-sub_8102CA0: @ 8102CA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, =gUnknown_08593020
-_08102CAA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08102CAA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102CA0
-
- thumb_func_start sub_8102CD4
-sub_8102CD4: @ 8102CD4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_80A6838
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, =gUnknown_08593020
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08102D10
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_08102D10:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08102D34
- movs r6, 0x30
- movs r3, 0x28
- b _08102D4E
- .pool
-_08102D34:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r3, r0, 24
-_08102D4E:
- ldrh r0, [r5, 0x20]
- lsls r1, r0, 4
- strh r1, [r5, 0x36]
- ldrh r1, [r5, 0x22]
- lsls r2, r1, 4
- strh r2, [r5, 0x38]
- subs r0, r6, r0
- lsls r0, 16
- asrs r0, 16
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- adds r2, r5, 0
- adds r2, 0x3A
- adds r3, r5, 0
- adds r3, 0x3C
- movs r4, 0x28
- str r4, [sp]
- bl sub_8102D8C
- ldr r0, =sub_8102DE4
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102CD4
-
- thumb_func_start sub_8102D8C
-sub_8102D8C: @ 8102D8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x18]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bge _08102DAE
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_08102DAE:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _08102DC2
- movs r4, 0x1
-_08102DC2:
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- strh r0, [r7]
- lsls r0, r6, 16
- asrs r0, 8
- adds r1, r4, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8102D8C
-
- thumb_func_start sub_8102DE4
-sub_8102DE4: @ 8102DE4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r1, r0, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _08102E00
- adds r0, 0xFF
-_08102E00:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x38]
- adds r2, r3
- strh r2, [r4, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xF
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bhi _08102E4E
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _08102E4E
- cmp r1, 0x80
- ble _08102E56
-_08102E4E:
- adds r0, r4, 0
- bl move_anim_8074EE0
- b _08102EA6
-_08102E56:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08102EA6
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _08102EA6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08102E7E
- strh r5, [r4, 0x30]
-_08102E7E:
- ldr r2, =gUnknown_08593020
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08102EA6
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_08102EA6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102DE4
-
- thumb_func_start sub_8102EB0
-sub_8102EB0: @ 8102EB0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, =gBattleAnimAttacker
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08102ECE
- ldr r1, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_08102ECE:
- ldrb r0, [r7]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r7]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x32]
- strh r5, [r6, 0x34]
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r6, 0x38]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3A]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- lsls r0, 7
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3C]
- ldr r0, =sub_8102F40
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102EB0
-
- thumb_func_start sub_8102F40
-sub_8102F40: @ 8102F40
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x22]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _08102F9E
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08102F9E
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x12
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x12
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08102F9E
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_08102F9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _08102FB2
- adds r0, r4, 0
- bl move_anim_8074EE0
-_08102FB2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8102F40
-
- thumb_func_start sub_8102FB8
-sub_8102FB8: @ 8102FB8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _08102FDC
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
- movs r6, 0x10
- b _08102FDE
- .pool
-_08102FDC:
- ldr r6, =0x0000fff0
-_08102FDE:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8102FB8
-
- thumb_func_start sub_8103028
-sub_8103028: @ 8103028
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, =gBattleAnimArgs
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, =gUnknown_08593020
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08103068
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_08103068:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _08103074
- ldr r2, =0x0000ffe0
-_08103074:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, =sub_81030B0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103028
-
- thumb_func_start sub_81030B0
-sub_81030B0: @ 81030B0
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _08103100
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r4, 0x24]
- movs r3, 0x24
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _081030DC
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_081030DC:
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _08103106
-_08103100:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08103106:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81030B0
-
- thumb_func_start sub_810310C
-sub_810310C: @ 810310C
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810312C
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A861C
- adds r0, 0x8
- b _08103136
-_0810312C:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A861C
- subs r0, 0x8
-_08103136:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A861C
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08103158
- adds r0, 0x3
-_08103158:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810310C
-
- thumb_func_start sub_8103164
-sub_8103164: @ 8103164
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08103180
- ldr r0, =gBattleAnimAttacker
- b _08103182
- .pool
-_08103180:
- ldr r0, =gBattleAnimTarget
-_08103182:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_810310C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0x2E]
- adds r0, r1, 0x2
- strh r0, [r5, 0x30]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, =sub_81031D0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103164
-
- thumb_func_start sub_81031D0
-sub_81031D0: @ 81031D0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _081031F8
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
-_081031F8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81031D0
-
- thumb_func_start sub_8103208
-sub_8103208: @ 8103208
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08103224
- ldr r0, =gBattleAnimAttacker
- b _08103226
- .pool
-_08103224:
- ldr r0, =gBattleAnimTarget
-_08103226:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_810310C
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, =sub_8103250
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103208
-
- thumb_func_start sub_8103250
-sub_8103250: @ 8103250
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08103276
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
-_08103276:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103250
-
- thumb_func_start sub_8103284
-sub_8103284: @ 8103284
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081032A0
- ldr r0, =gBattleAnimAttacker
- b _081032A2
- .pool
-_081032A0:
- ldr r0, =gBattleAnimTarget
-_081032A2:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_80A861C
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _081032CA
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_081032CA:
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r6, [r4, 0x30]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- strh r0, [r4, 0x32]
- ldrb r0, [r1]
- adds r0, 0x4
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x36]
- ldr r1, =sub_8103300
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103284
-
- thumb_func_start sub_8103300
-sub_8103300: @ 8103300
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _08103316
- ldr r0, =sub_8103320
- str r0, [r1, 0x1C]
-_08103316:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103300
-
- thumb_func_start sub_8103320
-sub_8103320: @ 8103320
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x4
- strh r1, [r2, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFE
- ble _08103352
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _0810334C
- strh r0, [r2, 0x24]
- ldr r0, =sub_8103250
- str r0, [r2, 0x1C]
- b _08103388
- .pool
-_0810334C:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_08103352:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _08103362
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_08103362:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _08103372
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_08103372:
- ldr r1, =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- asrs r1, r0, 1
- adds r0, r1
- strh r0, [r2, 0x24]
-_08103388:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103320
-
- thumb_func_start sub_8103390
-sub_8103390: @ 8103390
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081033AC
- ldr r0, =gBattleAnimAttacker
- b _081033AE
- .pool
-_081033AC:
- ldr r0, =gBattleAnimTarget
-_081033AE:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_810310C
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _081033D4
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _081033DE
- .pool
-_081033D4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_081033DE:
- strh r0, [r5, 0x2E]
- ldr r0, =sub_81033F0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103390
-
- thumb_func_start sub_81033F0
-sub_81033F0: @ 81033F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _0810341E
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, =sub_810342C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
-_0810341E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81033F0
-
- thumb_func_start sub_810342C
-sub_810342C: @ 810342C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _08103444
- adds r0, r1, 0
- bl DestroyAnimSprite
-_08103444:
- pop {r0}
- bx r0
- thumb_func_end sub_810342C
-
- thumb_func_start sub_8103448
-sub_8103448: @ 8103448
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r5, =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_80A6864
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x36]
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, =sub_80A6450
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103448
-
- thumb_func_start sub_8103498
-sub_8103498: @ 8103498
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081034B4
- ldr r0, =gBattleAnimAttacker
- b _081034B6
- .pool
-_081034B4:
- ldr r0, =gBattleAnimTarget
-_081034B6:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_810310C
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, =sub_81034D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103498
-
- thumb_func_start sub_81034D8
-sub_81034D8: @ 81034D8
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _0810350A
- cmp r0, 0x1
- bgt _081034EE
- cmp r0, 0
- beq _081034F4
- b _08103538
-_081034EE:
- cmp r0, 0x2
- beq _08103524
- b _08103538
-_081034F4:
- ldrh r0, [r1, 0x26]
- subs r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08103538
- b _0810351C
-_0810350A:
- ldrh r0, [r1, 0x26]
- adds r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _08103538
-_0810351C:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08103538
-_08103524:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _08103538
- adds r0, r1, 0
- bl DestroyAnimSprite
-_08103538:
- pop {r0}
- bx r0
- thumb_func_end sub_81034D8
-
- thumb_func_start sub_810353C
-sub_810353C: @ 810353C
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, =gSprites
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x30]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _0810357A
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_8074EE0
-_0810357A:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810353C
-
- thumb_func_start sub_810358C
-sub_810358C: @ 810358C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081035E4
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _081035EE
- .pool
-_081035E4:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_081035EE:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- strh r6, [r5, 0x32]
- ldr r0, =sub_810353C
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810358C
-
- thumb_func_start sub_8103620
-sub_8103620: @ 8103620
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x38]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =sub_8103658
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103620
-
- thumb_func_start sub_8103658
-sub_8103658: @ 8103658
- push {lr}
- ldrh r1, [r0, 0x30]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0xF
- strh r1, [r0, 0x36]
- ldr r1, =sub_80A6EEC
- str r1, [r0, 0x1C]
- ldr r1, =sub_8103680
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103658
-
- thumb_func_start sub_8103680
-sub_8103680: @ 8103680
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08103696
- adds r0, r1, 0
- bl DestroyAnimSprite
- b _0810369A
-_08103696:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_0810369A:
- pop {r0}
- bx r0
- thumb_func_end sub_8103680
-
- thumb_func_start sub_81036A0
-sub_81036A0: @ 81036A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_80A7270
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81036DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81036A0
-
- thumb_func_start sub_81036DC
-sub_81036DC: @ 81036DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08103718
- ldr r1, =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r6, r2, 0
- b _08103726
- .pool
-_08103718:
- ldr r2, =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_08103726:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldr r1, =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08103760
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _0810378A
- .pool
-_08103760:
- cmp r0, 0x1
- bne _08103776
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _081037D0
- movs r0, 0x2
- b _081037CE
-_08103776:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_0810378A:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl sub_80A73A0
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- movs r0, 0xF2
- lsls r0, 4
- cmp r2, r0
- beq _081037AA
- cmp r2, 0
- bne _081037D0
-_081037AA:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _081037CC
- adds r0, r4, 0
- bl sub_80A7344
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _081037D0
- .pool
-_081037CC:
- adds r0, r2, 0x1
-_081037CE:
- strh r0, [r1, 0xA]
-_081037D0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81036DC
-
- thumb_func_start sub_81037D8
-sub_81037D8: @ 81037D8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08103804
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _08103810
- .pool
-_08103804:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r5, r1, 0
-_08103810:
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810384C
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x1
- adds r2, r0, 0
- orrs r2, r1
- strb r2, [r3]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08103860
- movs r0, 0x2
- orrs r2, r0
- strb r2, [r3]
- b _08103860
- .pool
-_0810384C:
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08103860
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_08103860:
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81037D8
-
- thumb_func_start sub_810387C
-sub_810387C: @ 810387C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
- ldr r1, =sub_81038A0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810387C
-
- thumb_func_start sub_81038A0
-sub_81038A0: @ 81038A0
- push {lr}
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x36]
- ldr r1, =sub_80A6EEC
- str r1, [r0, 0x1C]
- ldr r1, =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81038A0
-
- thumb_func_start sub_81038C8
-sub_81038C8: @ 81038C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _081038EC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _0810390E
- .pool
-_081038EC:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810390E
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_0810390E:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r6, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08103980
- ldr r2, =0xffffa000
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_08103980:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_80A73E0
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81038C8
-
- thumb_func_start sub_81039CC
-sub_81039CC: @ 81039CC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _081039F6
- ldr r2, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- adds r0, r3, 0
- bl DestroySprite
-_081039F6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81039CC
-
- thumb_func_start sub_8103A00
-sub_8103A00: @ 8103A00
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _08103A34
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- adds r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x36]
- ldrh r3, [r2, 0x3A]
- adds r0, r3
- b _08103A42
- .pool
-_08103A34:
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x34]
- subs r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- subs r0, r1
-_08103A42:
- strh r0, [r2, 0x3A]
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x30]
- adds r3, r0, r1
- strh r3, [r2, 0x30]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08103A66
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _08103A6A
-_08103A66:
- lsls r0, r3, 16
- lsrs r0, 24
-_08103A6A:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08103A7E
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _08103A82
-_08103A7E:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_08103A82:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _08103A98
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, =sub_81039CC
- str r0, [r2, 0x1C]
-_08103A98:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103A00
-
- thumb_func_start sub_8103AA4
-sub_8103AA4: @ 8103AA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, =gTasks
- adds r6, r0, r1
- ldrh r2, [r6, 0x16]
- movs r1, 0x2
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- ldrh r3, [r7, 0x30]
- adds r2, r0, r3
- strh r2, [r7, 0x30]
- ldrh r0, [r6, 0x18]
- ands r1, r0
- ldrh r0, [r7, 0x32]
- adds r1, r0
- strh r1, [r7, 0x32]
- ldrh r1, [r6, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08103AEC
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _08103AF0
- .pool
-_08103AEC:
- lsls r0, r2, 16
- lsrs r0, 24
-_08103AF0:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08103B04
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _08103B08
-_08103B04:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_08103B08:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _08103BD4
- movs r4, 0
- movs r0, 0x8
- strh r0, [r7, 0x2E]
- movs r0, 0x4
- strh r0, [r6, 0x12]
- movs r0, 0x80
- lsls r0, 5
- bl sub_8151624
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r2, r0, r1
- strh r2, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r3, [r7, 0x22]
- adds r0, r3
- strh r0, [r7, 0x22]
- strh r4, [r7, 0x26]
- strh r4, [r7, 0x24]
- ldrh r3, [r6, 0x1E]
- movs r0, 0x1E
- ldrsh r1, [r6, r0]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- blt _08103B52
- subs r0, r3, r2
- b _08103B54
-_08103B52:
- subs r0, r2, r3
-_08103B54:
- lsls r0, 24
- lsrs r4, r0, 16
- ldrh r3, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r7, 0x22]
- movs r6, 0x22
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _08103B6C
- subs r0, r3, r2
- b _08103B6E
-_08103B6C:
- subs r0, r2, r3
-_08103B6E:
- lsls r0, 24
- lsrs r0, 16
- mov r8, r0
- movs r0, 0
- strh r0, [r7, 0x32]
- strh r0, [r7, 0x30]
- strh r0, [r7, 0x3A]
- strh r0, [r7, 0x38]
- lsls r0, r4, 16
- asrs r0, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r5, 0
- bl sub_8151534
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_8151624
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8151534
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_8151534
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_8151624
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8151534
- strh r0, [r7, 0x36]
- ldr r0, =sub_8103A00
- str r0, [r7, 0x1C]
-_08103BD4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103AA4
-
- thumb_func_start sub_8103BE4
-sub_8103BE4: @ 8103BE4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08103C02
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08103C02:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103BE4
-
- thumb_func_start sub_8103C0C
-sub_8103C0C: @ 8103C0C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r1, r0, 0x1
- strh r1, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bgt _08103CE0
- ldr r0, =gUnknown_085933B0
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- movs r3, 0x1C
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0xC]
- ldrb r4, [r5, 0xA]
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r0, 4
- add r0, r12
- lsls r0, 2
- ldr r1, =gSprites
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08103C6C
- cmp r0, 0x2
- beq _08103C82
- b _08103C90
- .pool
-_08103C6C:
- ldrb r2, [r6, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x3]
- b _08103C90
-_08103C82:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_08103C90:
- ldr r3, =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r4, r2, r3
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x14]
- subs r0, r1
- strh r0, [r6, 0x2E]
- strh r7, [r6, 0x3C]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xD
- lsls r0, 1
- adds r0, r2
- adds r3, 0x8
- adds r0, r3
- mov r2, r12
- strh r2, [r0]
- ldrh r0, [r4, 0xE]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0x3F
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9A
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _08103CE0
- ldr r0, =sub_8103BE4
- str r0, [r4]
-_08103CE0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103C0C
-
- thumb_func_start sub_8103CF0
-sub_8103CF0: @ 8103CF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- mov r0, sp
- mov r1, r9
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- bl IsContest
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _08103D5C
- ldr r1, =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, =gBattleAnimArgs
- ldrh r0, [r3]
- negs r0, r0
- strh r0, [r3]
- ldrh r1, [r3, 0x4]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _08103D54
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _08103DB6
- .pool
-_08103D54:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _08103DB6
-_08103D5C:
- ldr r1, =gBattlerPositions
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0
- bne _08103DB6
- ldr r1, =gTasks
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2]
- negs r0, r0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- negs r0, r0
- strh r0, [r2, 0x2]
- ldrh r1, [r2, 0x4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08103DB0
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _08103DB4
- .pool
-_08103DB0:
- movs r0, 0x1
- orrs r0, r1
-_08103DB4:
- strh r0, [r2, 0x4]
-_08103DB6:
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- ldr r1, =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- adds r6, r0, 0
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08103E20
- ldr r4, =gBattleAnimTarget
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08103E20
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl SetAverageBattlerPositions
- b _08103E42
- .pool
-_08103E20:
- mov r5, sp
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_08103E42:
- mov r4, sp
- ldr r0, =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, =gBattleAnimArgs
- ldrh r0, [r3]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r1, 0x1E]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- mov r3, r10
- ldrh r3, [r3]
- adds r0, r3
- strh r0, [r1, 0x20]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- cmp r0, r1
- blt _08103E88
- subs r0, r2, r1
- b _08103E8A
- .pool
-_08103E88:
- subs r0, r1, r2
-_08103E8A:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, =gBattleAnimArgs
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_8151624
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8151534
- ldr r2, =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r6, r1, r2
- strh r0, [r6, 0x12]
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- movs r1, 0x80
- bl sub_8151534
- strh r0, [r6, 0x14]
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x16]
- mov r2, r10
- ldrh r1, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- mov r4, r9
- cmp r0, r4
- blt _08103F08
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_8151624
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8151534
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _08103F28
- .pool
-_08103F08:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_8151624
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8151534
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_08103F28:
- ldr r1, =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103F78
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _08103FA0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =0x0000ffc0
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _08103FB0
- .pool
-_08103F78:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _08103FA0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =0x0000ffc0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _08103FB0
- .pool
-_08103FA0:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_08103FB0:
- strh r0, [r5, 0xC]
- ldr r0, =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _08103FC8
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_08103FC8:
- ldr r0, =sub_8103C0C
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103CF0
-
- thumb_func_start sub_8103FE8
-sub_8103FE8: @ 8103FE8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r0, =gUnknown_085934A0
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldr r0, =sub_8104018
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8103FE8
-
- thumb_func_start sub_8104018
-sub_8104018: @ 8104018
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0810407C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, =gPlttBufferFaded
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- adds r6, r1, 0
- adds r1, r5, 0
- adds r1, 0x9
- lsls r0, r5, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- movs r3, 0x7
- lsls r1, 1
- adds r1, r6
-_08104050:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08104050
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _0810407C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810407C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104018
-
- thumb_func_start sub_8104088
-sub_8104088: @ 8104088
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081040CC
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_081040CC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_80A73E0
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, =sub_80A7000
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104088
-
- thumb_func_start sub_810413C
-sub_810413C: @ 810413C
- ldr r1, =0x0000fff0
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, =sub_8104154
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_810413C
-
- thumb_func_start sub_8104154
-sub_8104154: @ 8104154
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08104178
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_08104178:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _081041B8
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _081041B8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081041B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104154
-
- thumb_func_start sub_81041C4
-sub_81041C4: @ 81041C4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, =sub_810421C
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81041C4
-
- thumb_func_start sub_810421C
-sub_810421C: @ 810421C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA6
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- movs r2, 0
- movs r1, 0x7
- adds r0, r4, 0
- adds r0, 0x3C
-_08104250:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08104250
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, =0x0000fff4
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, =sub_81042A0
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810421C
-
- thumb_func_start sub_81042A0
-sub_81042A0: @ 81042A0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x2E]
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 24
- strh r2, [r4, 0x24]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081042BE
- negs r0, r2
- strh r0, [r4, 0x24]
-_081042BE:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _081042FE
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081042FE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081042FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81042A0
-
- thumb_func_start sub_8104304
-sub_8104304: @ 8104304
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08104322
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_08104322:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, =sub_80A62EC
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104304
-
- thumb_func_start sub_8104364
-sub_8104364: @ 8104364
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, =0x0000ffe0
- movs r0, 0x10
- mov r8, r0
- ldr r6, =0x0000fff0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08104390
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_08104390:
- lsls r0, r7, 16
- asrs r0, 16
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =sub_81043F8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104364
-
- thumb_func_start sub_81043F8
-sub_81043F8: @ 81043F8
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810440E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0810440E:
- pop {r0}
- bx r0
- thumb_func_end sub_81043F8
-
- thumb_func_start sub_8104414
-sub_8104414: @ 8104414
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x20
- mov r8, r0
- ldr r4, =0x0000ffe0
- movs r2, 0x10
- mov r9, r2
- ldr r6, =0x0000fff0
- ldr r7, =gBattleAnimArgs
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _08104448
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_08104448:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- add r0, r9
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, =sub_81044BC
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104414
-
- thumb_func_start sub_81044BC
-sub_81044BC: @ 81044BC
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08104520
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08104520
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- ldr r0, =0x0000fffe
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- eors r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x34]
- ldr r0, =sub_8104530
- str r0, [r4, 0x1C]
-_08104520:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81044BC
-
- thumb_func_start sub_8104530
-sub_8104530: @ 8104530
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08104548
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_08104548:
- ldrh r0, [r4, 0x34]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _0810458A
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- movs r1, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_8104594
- str r0, [r4, 0x1C]
-_0810458A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104530
-
- thumb_func_start sub_8104594
-sub_8104594: @ 8104594
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _081045A8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081045A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104594
-
- thumb_func_start sub_81045B0
-sub_81045B0: @ 81045B0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A7270
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_80A750C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, =sub_8104614
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81045B0
-
- thumb_func_start sub_8104614
-sub_8104614: @ 8104614
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08104664
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80A7344
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0x1
- bl sub_80A750C
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08104664:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104614
-
- thumb_func_start sub_8104674
-sub_8104674: @ 8104674
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl sub_80A7270
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, =sub_81046CC
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104674
-
- thumb_func_start sub_81046CC
-sub_81046CC: @ 81046CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _081046E6
- b _081047F6
-_081046E6:
- lsls r0, 2
- ldr r1, =_081046F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081046F8:
- .4byte _08104710
- .4byte _08104758
- .4byte _0810478E
- .4byte _08104794
- .4byte _081047A4
- .4byte _081047D8
-_08104710:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08104720
- cmp r0, 0x3
- beq _08104720
- cmp r0, 0x6
- bne _08104728
-_08104720:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8104800
-_08104728:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x28
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80A7E6C
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _081047F6
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _081047D0
-_08104758:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081047F6
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _0810476E
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _081047F6
-_0810476E:
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80A7E6C
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _081047F6
-_0810478E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _081047F6
-_08104794:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _081047F6
- b _081047CC
-_081047A4:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- subs r0, 0x50
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_80A7E6C
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _081047F6
-_081047CC:
- movs r0, 0
- strh r0, [r4, 0xC]
-_081047D0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _081047F6
-_081047D8:
- ldrb r0, [r4, 0x8]
- bl sub_80A7344
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_081047F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81046CC
-
- thumb_func_start sub_8104800
-sub_8104800: @ 8104800
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _081048DA
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _08104844
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _081048DA
- .pool
-_08104844:
- ldr r5, =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r4, r3, r5
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrb r0, [r7, 0x16]
- ldrb r1, [r7, 0xE]
- subs r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r7, 0xE]
- adds r0, 0x1
- strh r0, [r7, 0xE]
- ldrh r0, [r7, 0x14]
- adds r0, 0x1
- strh r0, [r7, 0x14]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- movs r0, 0x6
- strh r0, [r4, 0x32]
- adds r5, 0x1C
- adds r3, r5
- ldr r0, =sub_81048F0
- str r0, [r3]
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x10
- ldrsh r2, [r7, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r0, 0x1
- orrs r3, r0
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_081048DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104800
-
- thumb_func_start sub_81048F0
-sub_81048F0: @ 81048F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0810492E
- ldr r3, =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_0810492E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81048F0
-
- thumb_func_start sub_8104938
-sub_8104938: @ 8104938
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldr r5, =gBattleAnimArgs
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08104964
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _0810498A
- .pool
-_08104964:
- ldrb r0, [r5]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r4, 0x8]
- strh r2, [r4, 0xA]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r2, [r4, 0x10]
- ldr r2, =gUnknown_085935E8
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_8104998
- str r0, [r4]
-_0810498A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104938
-
- thumb_func_start sub_8104998
-sub_8104998: @ 8104998
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _08104A00
- cmp r5, 0x1
- bgt _081049C0
- cmp r5, 0
- beq _081049CA
- b _08104AA8
- .pool
-_081049C0:
- cmp r5, 0x2
- beq _08104A34
- cmp r5, 0x3
- beq _08104A64
- b _08104AA8
-_081049CA:
- adds r0, r4, 0
- bl sub_80A7D34
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08104AA8
- strh r5, [r4, 0xE]
- b _08104A5C
- .pool
-_08104A00:
- adds r0, r4, 0
- bl sub_80A7D34
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08104AA8
- movs r0, 0
- strh r0, [r4, 0xE]
- b _08104A5C
- .pool
-_08104A34:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08104A5C
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x10]
- subs r0, 0x2
- strh r0, [r4, 0x10]
- b _08104AA8
- .pool
-_08104A5C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08104AA8
-_08104A64:
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08104AA8
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _08104A9C
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _08104AA8
- .pool
-_08104A9C:
- ldrb r1, [r4, 0x8]
- ldr r2, =gUnknown_085935E8
- adds r0, r4, 0
- bl sub_80A7CFC
- strh r5, [r4, 0xA]
-_08104AA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104998
-
- thumb_func_start sub_8104AB4
-sub_8104AB4: @ 8104AB4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_08593608
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_8104AF0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104AB4
-
- thumb_func_start sub_8104AF0
-sub_8104AF0: @ 8104AF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _08104B10
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08104B10:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104AF0
-
- thumb_func_start sub_8104B1C
-sub_8104B1C: @ 8104B1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08104B50
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _08104B6A
- .pool
-_08104B50:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, =0x0000ffc0
-_08104B6A:
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r0, 0x34
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- strh r1, [r4, 0x36]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A656C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104B1C
-
- thumb_func_start sub_8104BAC
-sub_8104BAC: @ 8104BAC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08104BC8
- ldr r0, =gBattleAnimAttacker
- b _08104BCA
- .pool
-_08104BC8:
- ldr r0, =gBattleAnimTarget
-_08104BCA:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08104BE4
- ldr r1, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_08104BE4:
- adds r0, r5, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x4]
- adds r0, r4
- strh r0, [r6, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _08104C16
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_08104C16:
- ldr r1, =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104BAC
-
- thumb_func_start sub_8104C38
-sub_8104C38: @ 8104C38
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, =gUnknown_085936A4
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_8104C78
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104C38
-
- thumb_func_start sub_8104C78
-sub_8104C78: @ 8104C78
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _08104C98
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08104C98:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104C78
-
- thumb_func_start sub_8104CA4
-sub_8104CA4: @ 8104CA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- movs r0, 0x4
- strh r0, [r4, 0xC]
- movs r0, 0x7
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x10]
- ldr r3, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- strh r2, [r4, 0x16]
- strh r2, [r4, 0x18]
- movs r0, 0x2
- strh r0, [r4, 0x1A]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08104D0E
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_08104D0E:
- ldr r0, =sub_8104D28
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104CA4
-
- thumb_func_start sub_8104D28
-sub_8104D28: @ 8104D28
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x16]
- adds r0, 0x1
- strh r0, [r3, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08104D8E
- movs r0, 0
- strh r0, [r3, 0x16]
- ldrh r0, [r3, 0x18]
- adds r0, 0x1
- strh r0, [r3, 0x18]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08104D78
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x1A]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- b _08104D8C
- .pool
-_08104D78:
- ldr r2, =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
-_08104D8C:
- strh r1, [r0, 0x22]
-_08104D8E:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _08104DDC
- cmp r0, 0x1
- bgt _08104DA4
- cmp r0, 0
- beq _08104DAA
- b _08104E6C
- .pool
-_08104DA4:
- cmp r0, 0x2
- beq _08104E0C
- b _08104E6C
-_08104DAA:
- ldr r2, =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _08104E6C
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _08104E6C
- .pool
-_08104DDC:
- ldr r2, =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- ldrh r2, [r3, 0xC]
- subs r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _08104E6C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _08104E6C
- .pool
-_08104E0C:
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r5, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _08104E6C
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _08104E48
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _08104E6C
- .pool
-_08104E48:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08104E66
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
- strh r1, [r0, 0x22]
-_08104E66:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08104E6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8104D28
-
- thumb_func_start sub_8104E74
-sub_8104E74: @ 8104E74
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- movs r1, 0
- strh r0, [r5, 0x8]
- movs r0, 0x4
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- strh r1, [r5, 0x10]
- strh r1, [r5, 0x12]
- ldrb r0, [r4]
- bl sub_80A861C
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08104ED4
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, =0x04000014
- b _08104EDC
- .pool
-_08104ED4:
- ldr r0, =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, =0x04000018
-_08104EDC:
- str r0, [sp]
- ldrh r0, [r5, 0x8]
- adds r1, r0, 0
- subs r1, 0x40
- lsls r2, r1, 16
- lsls r0, 16
- cmp r2, r0
- bgt _08104F1A
- ldr r4, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_08104EF4:
- asrs r3, r2, 16
- cmp r3, 0
- blt _08104F0C
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r1]
-_08104F0C:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _08104EF4
-_08104F1A:
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldr r0, =sub_8104F54
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104E74
-
- thumb_func_start sub_8104F54
-sub_8104F54: @ 8104F54
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08104F78
- cmp r0, 0x1
- beq _08104F8E
- b _0810500E
- .pool
-_08104F78:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0810500E
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _0810500E
-_08104F8E:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0810500E
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xE]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- subs r0, r1
- strh r0, [r3, 0x12]
- movs r2, 0xC
- ldrsh r1, [r3, r2]
- cmp r1, 0x1
- beq _08104FC4
- cmp r1, 0x1
- ble _08104FCC
- cmp r1, 0x2
- beq _08104FC8
- cmp r1, 0x3
- beq _08104FC8
- b _08104FCC
-_08104FC4:
- subs r0, 0x2
- b _08104FCA
-_08104FC8:
- adds r0, 0x1
-_08104FCA:
- strh r0, [r3, 0x12]
-_08104FCC:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _08104FF0
- ldr r2, =gScanlineEffectRegBuffers
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
-_08104FF0:
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _0810500E
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0810500E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8104F54
-
- thumb_func_start sub_810501C
-sub_810501C: @ 810501C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x36]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_80A861C
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, =sub_8105078
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810501C
-
- thumb_func_start sub_8105078
-sub_8105078: @ 8105078
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _081050DC
- cmp r1, 0x1
- bgt _0810508E
- cmp r1, 0
- beq _08105094
- b _081051BC
-_0810508E:
- cmp r1, 0x2
- beq _0810516E
- b _081051BC
-_08105094:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081050BE
- strh r1, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_081050BE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _081051BC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _08105166
-_081050DC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08105122
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08105122
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _08105122
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
-_08105122:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- adds r1, r0, r2
- strh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0x1F
- ble _08105136
- movs r0, 0x40
- b _08105144
-_08105136:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _08105150
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_08105144:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_08105150:
- ldrh r0, [r4, 0x36]
- movs r2, 0
- strh r0, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _081051BC
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_08105166:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081051BC
-_0810516E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810519A
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0810519A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _081051BC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081051BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8105078
-
- thumb_func_start sub_81051C4
-sub_81051C4: @ 81051C4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r5, 0
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r5, [r1]
- ldr r0, =gBattleAnimArgs
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _081051F0
- ldr r0, =gBattleAnimAttacker
- b _081051F2
- .pool
-_081051F0:
- ldr r0, =gBattleAnimTarget
-_081051F2:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0810526A
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810526A
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl SetAverageBattlerPositions
- cmp r4, 0
- bne _08105230
- adds r0, r5, 0
- movs r1, 0
- b _08105234
- .pool
-_08105230:
- adds r0, r5, 0
- movs r1, 0x2
-_08105234:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08105260
- ldr r2, =gBattleAnimArgs
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _0810526A
- .pool
-_08105260:
- ldr r1, =gBattleAnimArgs
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_0810526A:
- ldr r1, =sub_80A77C8
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81051C4
-
- thumb_func_start sub_8105284
-sub_8105284: @ 8105284
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _0810529E
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810529E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8105284
-
- thumb_func_start sub_81052A4
-sub_81052A4: @ 81052A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r6, 0
- mov r0, sp
- strh r6, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r6, [r1]
- ldr r0, =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _081052DC
- ldr r0, =gBattleAnimAttacker
- ldrb r7, [r0]
- ldr r0, =gBattleAnimTarget
- b _081052E2
- .pool
-_081052DC:
- ldr r0, =gBattleAnimTarget
- ldrb r7, [r0]
- ldr r0, =gBattleAnimAttacker
-_081052E2:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, =gBattleAnimArgs
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _08105308
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _08105310
- .pool
-_08105308:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_08105310:
- adds r0, r7, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810536C
- adds r0, r7, 0
- mov r1, r10
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r1, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x2
- mov r4, r8
- eors r4, r0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810535C
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- b _081053EA
- .pool
-_0810535C:
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- add r0, r8
- b _081053EA
- .pool
-_0810536C:
- adds r0, r7, 0
- mov r1, r10
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleAnimArgs
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081053E4
- movs r0, 0x2
- adds r4, r7, 0
- eors r4, r0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _081053E4
- ldr r3, =gSprites
- ldr r2, =gBattlerSpriteIds
- adds r0, r7, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r3
- adds r2, r4, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r3, 0x20
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _081053E0
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _081053FA
- .pool
-_081053E0:
- adds r0, r6, 0
- b _081053F4
-_081053E4:
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- adds r0, r7, r0
-_081053EA:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_081053F4:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_081053FA:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810544C
- movs r1, 0x2
- mov r0, r8
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810544C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl SetAverageBattlerPositions
- b _0810546C
- .pool
-_0810544C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r2, sp
- strh r0, [r2, 0x2]
-_0810546C:
- mov r0, r8
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08105490
- mov r3, sp
- mov r2, sp
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _0810549E
- .pool
-_08105490:
- mov r3, sp
- mov r0, sp
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_0810549E:
- ldrh r1, [r2, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- mov r0, sp
- strh r1, [r0, 0x2]
- mov r3, r9
- strh r3, [r5, 0x30]
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r1, =sub_8105284
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81052A4
-
- thumb_func_start sub_81054E8
-sub_81054E8: @ 81054E8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =0x000027db
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0810550E
- lsls r0, 20
- ldr r1, =0x01010000
- adds r0, r1
- lsrs r0, 16
- ldr r1, =gBattleAnimArgs
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_0810550E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, =sub_80A77C8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81054E8
-
- thumb_func_start sub_8105538
-sub_8105538: @ 8105538
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _08105554
- ldr r1, =0x0000ff60
-_08105554:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, =sub_810557C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105538
-
- thumb_func_start sub_810557C
-sub_810557C: @ 810557C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- subs r1, r0
- movs r5, 0
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- subs r2, 0x20
- strh r2, [r4, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _081055AC
- ldr r1, =0x0000ff60
-_081055AC:
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x26]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _081055E0
- ldrh r2, [r4, 0x22]
- adds r0, r1, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, =sub_81055F4
- str r0, [r4, 0x1C]
-_081055E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810557C
-
- thumb_func_start sub_81055F4
-sub_81055F4: @ 81055F4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _08105612
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, =sub_810561C
- str r0, [r4, 0x1C]
-_08105612:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81055F4
-
- thumb_func_start sub_810561C
-sub_810561C: @ 810561C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105682
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08105668
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, =sub_8105694
- b _08105680
- .pool
-_08105668:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, =sub_810571C
-_08105680:
- str r0, [r4, 0x1C]
-_08105682:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810561C
-
- thumb_func_start sub_8105694
-sub_8105694: @ 8105694
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x26]
- subs r0, 0x2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _081056CA
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x2E]
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =sub_81056D4
- str r0, [r4, 0x1C]
-_081056CA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105694
-
- thumb_func_start sub_81056D4
-sub_81056D4: @ 81056D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _08105712
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08105712
- ldr r0, =sub_810571C
- str r0, [r4, 0x1C]
-_08105712:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81056D4
-
- thumb_func_start sub_810571C
-sub_810571C: @ 810571C
- push {lr}
- adds r3, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08105754
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08105750
- ldr r0, =sub_810575C
- b _08105752
- .pool
-_08105750:
- ldr r0, =DestroyAnimSprite
-_08105752:
- str r0, [r3, 0x1C]
-_08105754:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810571C
-
- thumb_func_start sub_810575C
-sub_810575C: @ 810575C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810575C
-
- thumb_func_start sub_810577C
-sub_810577C: @ 810577C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, =gUnknown_085938B0
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_81057B8
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810577C
-
- thumb_func_start sub_81057B8
-sub_81057B8: @ 81057B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- adds r0, r4, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08105802
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08105802:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81057B8
-
- thumb_func_start sub_8105810
-sub_8105810: @ 8105810
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x20]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08105850
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _08105856
- .pool
-_08105850:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, =0x0000fff8
-_08105856:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_8105878
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105810
-
- thumb_func_start sub_8105878
-sub_8105878: @ 8105878
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _081058CC
- cmp r4, 0x1
- bgt _081058A0
- cmp r4, 0
- beq _081058AA
- b _08105992
- .pool
-_081058A0:
- cmp r4, 0x2
- beq _08105948
- cmp r4, 0x3
- beq _08105962
- b _08105992
-_081058AA:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- strh r4, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- b _0810595A
- .pool
-_081058CC:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08105992
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ands r0, r4
- lsls r0, 16
- cmp r0, 0
- beq _08105904
- ldr r2, =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x6
- b _08105916
- .pool
-_08105904:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x6
-_08105916:
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08105992
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810595A
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- subs r0, 0x6
- strh r0, [r1, 0x24]
- b _0810595A
- .pool
-_08105948:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _0810595A
- movs r0, 0
- strh r0, [r3, 0x8]
- b _08105992
-_0810595A:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _08105992
-_08105962:
- ldr r2, =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08105992
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08105992:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105878
-
- thumb_func_start sub_810599C
-sub_810599C: @ 810599C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r0, 0xE
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_81059E0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810599C
-
- thumb_func_start sub_81059E0
-sub_81059E0: @ 81059E0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08105AA6
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _08105AA6
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08105A3C
- ldr r3, =gSprites
- movs r6, 0x26
- ldrsh r1, [r4, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _08105A52
- .pool
-_08105A3C:
- ldr r3, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_08105A52:
- strb r1, [r0]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x22
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _08105AA6
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x24
- ldrsh r1, [r4, r6]
- cmp r0, r1
- bge _08105A88
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _08105AA6
- .pool
-_08105A88:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08105AA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81059E0
-
- thumb_func_start sub_8105AAC
-sub_8105AAC: @ 8105AAC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- movs r1, 0x4
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- strh r0, [r4, 0x12]
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- strh r0, [r4, 0x18]
- strh r0, [r4, 0x22]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_8105B08
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105AAC
-
- thumb_func_start sub_8105B08
-sub_8105B08: @ 8105B08
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _08105B74
- cmp r2, 0x1
- bgt _08105B30
- cmp r2, 0
- beq _08105B36
- b _08105B90
- .pool
-_08105B30:
- cmp r2, 0x2
- beq _08105B8C
- b _08105B90
-_08105B36:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08105B90
- strh r2, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08105B90
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08105B6E
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _08105B90
-_08105B6E:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _08105B90
-_08105B74:
- movs r1, 0
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08105B90
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _08105B90
-_08105B8C:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_08105B90:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _08105B9E
- cmp r5, 0x1
- beq _08105C34
- b _08105C42
-_08105B9E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08105C42
- strh r5, [r4, 0xA]
- ldr r0, =gUnknown_085938DC
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08105C42
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- strh r6, [r1, 0x2E]
- movs r0, 0xD
- strh r0, [r1, 0x30]
- ldr r2, =gUnknown_085938F4
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x24]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08105C42
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _08105C42
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08105C42
- .pool
-_08105C34:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08105C42
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08105C42:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8105B08
-
- thumb_func_start sub_8105C48
-sub_8105C48: @ 8105C48
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r2, 0x1
- ldrb r1, [r0, 0x12]
- ands r1, r2
- lsls r1, 2
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08105CAA
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_08105CAA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105C48
-
- thumb_func_start sub_8105CB4
-sub_8105CB4: @ 8105CB4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =0x000027de
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r4, 0x1
- ldr r0, =0x00002710
- adds r5, r0, 0
-_08105CCC:
- subs r0, r5, r4
- lsls r0, 16
- lsrs r0, 16
- bl AllocSpritePalette
- mov r2, sp
- adds r1, r2, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x2
- ble _08105CCC
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- adds r1, r0, 0
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- ldr r0, =gBattleAnimSpritePalette_206
- bl LZDecompressWram
- movs r4, 0
-_08105D00:
- ldr r5, =gMonSpritesGfxPtr
- ldr r0, [r5]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 6
- ldr r0, [r0]
- adds r0, r1
- mov r2, sp
- adds r1, r2, r4
- ldrb r1, [r1]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x1
- cmp r4, 0x2
- ble _08105D00
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105CB4
-
- thumb_func_start sub_8105D60
-sub_8105D60: @ 8105D60
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, =gUnknown_08593950
- movs r4, 0x2
-_08105D6A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08105D6A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105D60
-
- thumb_func_start sub_8105D88
-sub_8105D88: @ 8105D88
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- movs r0, 0x1
- ands r3, r0
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- movs r3, 0x20
- ands r0, r3
- ldrh r4, [r5, 0x4]
- lsls r3, r4, 22
- lsrs r3, 22
- lsrs r1, 22
- adds r0, r1
- adds r3, r0
- ldr r1, =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldr r0, =0xfffffc00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, =gUnknown_08593950
- lsrs r2, 25
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r5, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105D88
-
- thumb_func_start sub_8105DE8
-sub_8105DE8: @ 8105DE8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08105E08
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_08105E08:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_8105D88
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105DE8
-
- thumb_func_start sub_8105E60
-sub_8105E60: @ 8105E60
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08105E7A
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
-_08105E7A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- subs r2, 0x80
- strh r2, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bne _08105EAA
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08105EAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8105E60
-
- thumb_func_start sub_8105EB0
-sub_8105EB0: @ 8105EB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl IsContest
- lsls r0, 24
- movs r6, 0xF0
- cmp r0, 0
- beq _08105EC4
- movs r6, 0x98
-_08105EC4:
- movs r5, 0
- ldr r1, =gBattle_WIN0H
- strh r6, [r1]
- ldr r4, =gBattle_WIN0V
- movs r0, 0xA0
- strh r0, [r4]
- ldrh r1, [r1]
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x44
- bl SetGpuReg
- ldr r1, =0x00003f1f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xC8
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x10
- bl SetGpuReg
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- ldr r1, =sub_8105F30
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105EB0
-
- thumb_func_start sub_8105F30
-sub_8105F30: @ 8105F30
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x8]
- adds r4, r0, 0
- adds r4, 0xD
- strh r4, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r2, r0, 0
- subs r2, 0xD
- strh r2, [r3, 0xA]
- lsls r1, r4, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _08105F70
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =sub_8105F84
- str r0, [r3]
- b _08105F78
- .pool
-_08105F70:
- ldr r1, =gBattle_WIN0H
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_08105F78:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105F30
-
- thumb_func_start sub_8105F84
-sub_8105F84: @ 8105F84
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08105FD8
- movs r0, 0x88
- strh r0, [r1, 0x1E]
- movs r0, 0x50
- movs r1, 0x88
- bl SetGpuReg
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A75AC
- ldr r2, =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- b _0810600C
- .pool
-_08105FD8:
- cmp r0, 0x4
- ble _0810600C
- ldr r0, =gBattle_WIN0H
- strh r4, [r0]
- ldr r0, =gBattle_WIN0V
- strh r4, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0810600C:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8105F84
-
- thumb_func_start sub_8106020
-sub_8106020: @ 8106020
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _0810607C
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_08593988
- adds r0, r5, 0
- bl sub_80A7CFC
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _081060A4
- .pool
-_0810607C:
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _081060A4
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_081060A4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106020
-
- thumb_func_start sub_81060B0
-sub_81060B0: @ 81060B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _0810610C
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_08593988
- adds r0, r5, 0
- bl sub_80A7CFC
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _08106134
- .pool
-_0810610C:
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_80A7D34
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08106134
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08106134:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81060B0
-
- thumb_func_start sub_8106140
-sub_8106140: @ 8106140
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_810618C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106140
-
- thumb_func_start sub_810618C
-sub_810618C: @ 810618C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _081061B6
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _081061BC
-_081061B6:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081061BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810618C
-
- thumb_func_start sub_81061C4
-sub_81061C4: @ 81061C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081061E8
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _08106244
- .pool
-_081061E8:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _08106236
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08106236:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _08106244
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106244:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81061C4
-
- thumb_func_start sub_810624C
-sub_810624C: @ 810624C
- push {lr}
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x30]
- ldr r1, =sub_80A64B0
- str r1, [r0, 0x1C]
- ldr r1, =sub_810627C
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810624C
-
- thumb_func_start sub_810627C
-sub_810627C: @ 810627C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- lsrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x48
- bgt _081062E2
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- cmp r5, 0x40
- bgt _081062E2
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081062E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810627C
-
- thumb_func_start sub_81062E8
-sub_81062E8: @ 81062E8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x3
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810632A
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0810632A:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gBattle_BG1_Y
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C232E0
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r1, =gUnknown_08C23D78
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- ldr r0, =gUnknown_08C23D50
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81063A8
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81062E8
-
- thumb_func_start sub_81063A8
-sub_81063A8: @ 81063A8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _081063C6
- b _081064F0
-_081063C6:
- lsls r0, 2
- ldr r1, =_081063D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081063D8:
- .4byte _081063EC
- .4byte _08106430
- .4byte _08106452
- .4byte _08106496
- .4byte _081064BC
-_081063EC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _081064F0
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081064F0
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _081064F0
-_08106430:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8D
- bne _081064F0
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _081064F0
-_08106452:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _081064F0
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _081064F0
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _081064F0
-_08106496:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- b _081064F0
- .pool
-_081064BC:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081064D0
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_081064D0:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_081064F0:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81063A8
-
- thumb_func_start sub_81064F8
-sub_81064F8: @ 81064F8
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810653A
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0810653A:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gBattle_BG1_Y
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80A6B30
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08106578
- ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceContest
- b _0810658A
- .pool
-_08106578:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810659C
- ldr r1, =gBattleAnimBackgroundTilemap_ScaryFacePlayer
-_0810658A:
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- b _081065A6
- .pool
-_0810659C:
- ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
-_081065A6:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C249F8
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08C249D0
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81065EC
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81064F8
-
- thumb_func_start sub_81065EC
-sub_81065EC: @ 81065EC
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0810660A
- b _08106730
-_0810660A:
- lsls r0, 2
- ldr r1, =_0810661C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0810661C:
- .4byte _08106630
- .4byte _08106674
- .4byte _08106696
- .4byte _081066DA
- .4byte _081066FC
-_08106630:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08106730
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xE
- bne _08106730
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _08106730
-_08106674:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _08106730
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _08106730
-_08106696:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08106730
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _08106730
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _08106730
-_081066DA:
- mov r0, sp
- bl sub_80A6B30
- movs r0, 0x1
- bl sub_80A6C68
- movs r0, 0x2
- bl sub_80A6C68
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_081066FC:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08106710
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_08106710:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08106730:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81065EC
-
- thumb_func_start sub_810673C
-sub_810673C: @ 810673C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, =sub_810679C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810673C
-
- thumb_func_start sub_810679C
-sub_810679C: @ 810679C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _081067B2
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _081067B6
-_081067B2:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_081067B6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- beq _08106828
- cmp r2, 0x1
- bne _08106858
- ldr r1, =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08106858
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _08106868
- .pool
-_08106828:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08106858
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_08106858:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08106868
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106868:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810679C
-
- thumb_func_start sub_8106878
-sub_8106878: @ 8106878
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldr r0, =sub_81068CC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106878
-
- thumb_func_start sub_81068CC
-sub_81068CC: @ 81068CC
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _0810690A
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _0810690A
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _08106910
-_0810690A:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08106910:
- pop {r0}
- bx r0
- thumb_func_end sub_81068CC
-
- thumb_func_start sub_8106914
-sub_8106914: @ 8106914
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08106940
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08106940:
- pop {r0}
- bx r0
- thumb_func_end sub_8106914
-
- thumb_func_start sub_8106944
-sub_8106944: @ 8106944
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x32]
- ldr r0, =sub_8106914
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106944
-
- thumb_func_start sub_810699C
-sub_810699C: @ 810699C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081069B2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081069B2:
- pop {r0}
- bx r0
- thumb_func_end sub_810699C
-
- thumb_func_start sub_81069B8
-sub_81069B8: @ 81069B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =sub_810699C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81069B8
-
- thumb_func_start sub_81069D0
-sub_81069D0: @ 81069D0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081069EE
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_081069EE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r5, r0, 1
- movs r0, 0xFF
- ands r5, r0
- adds r0, r5, 0
- movs r1, 0x50
- bl Sin
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4F
- bgt _08106A32
- adds r0, r5, 0
- movs r1, 0x50
- bl Cos
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- lsls r0, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x26]
-_08106A32:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _08106A50
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
-_08106A50:
- cmp r2, 0x64
- ble _08106A5A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106A5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81069D0
-
- thumb_func_start sub_8106A64
-sub_8106A64: @ 8106A64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _08106ABA
- adds r1, r0, 0
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08106ABA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _08106AC8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106AC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8106A64
-
- thumb_func_start sub_8106AD0
-sub_8106AD0: @ 8106AD0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08106AF4
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _08106B48
- .pool
-_08106AF4:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- movs r5, 0
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x46
- ble _08106B48
- ldr r0, =sub_8106A64
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r0, r2, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_08106B48:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106AD0
-
- thumb_func_start sub_8106B54
-sub_8106B54: @ 8106B54
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08106B8E
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A82E4
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_08106B8E:
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r0, r1, 0
- cmp r1, 0
- bge _08106BA4
- adds r0, 0xFF
-_08106BA4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _08106BB6
- movs r0, 0
- strh r0, [r4, 0x30]
-_08106BB6:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _08106BC4
- adds r0, 0x3
-_08106BC4:
- asrs r0, 2
- movs r1, 0x1E
- subs r1, r0
- adds r0, r2, 0
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _08106BE0
- adds r0, 0x7
-_08106BE0:
- asrs r0, 3
- movs r1, 0xA
- subs r1, r0
- adds r0, r2, 0
- bl Sin
- strh r0, [r4, 0x26]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- ble _08106C04
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08106C04
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x32]
-_08106C04:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08106C18
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _08106C18
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_08106C18:
- ldrh r0, [r4, 0x34]
- adds r1, r0, 0x1
- strh r1, [r4, 0x34]
- subs r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x46
- bls _08106C5C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08106C6A
- .pool
-_08106C5C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08106C6A:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _08106C78
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106C78:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8106B54
-
- thumb_func_start sub_8106C80
-sub_8106C80: @ 8106C80
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08106CB4
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08106CC8
- .pool
-_08106CB4:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08106CC8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106CC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8106C80
-
- thumb_func_start sub_8106CD0
-sub_8106CD0: @ 8106CD0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08106CEC
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _08106D50
- .pool
-_08106CEC:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08106CFC
- ldr r4, =gBattleAnimAttacker
- b _08106CFE
- .pool
-_08106CFC:
- ldr r4, =gBattleAnimTarget
-_08106CFE:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _08106D34
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _08106D38
- .pool
-_08106D34:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_08106D38:
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, =sub_8106D5C
- str r0, [r5, 0x1C]
-_08106D50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106CD0
-
- thumb_func_start sub_8106D5C
-sub_8106D5C: @ 8106D5C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08106D8C
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _08106D86
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _08106D8C
-_08106D86:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08106D8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8106D5C
-
- thumb_func_start sub_8106D90
-sub_8106D90: @ 8106D90
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gBattleAnimArgs
- ldrb r0, [r0]
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- ldr r2, =gUnknown_08593B98
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_8106DD4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106D90
-
- thumb_func_start sub_8106DD4
-sub_8106DD4: @ 8106DD4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _08106DF4
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08106DF4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106DD4
-
- thumb_func_start sub_8106E00
-sub_8106E00: @ 8106E00
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08106E1C
- ldr r0, =gBattleAnimAttacker
- b _08106E1E
- .pool
-_08106E1C:
- ldr r0, =gBattleAnimTarget
-_08106E1E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08106E38
- ldr r1, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_08106E38:
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r7, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r3, [r7, 0x2]
- adds r0, r3
- movs r4, 0
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x4]
- adds r0, r1
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x2E]
- ldrh r1, [r5, 0x20]
- lsls r1, 3
- strh r1, [r5, 0x30]
- lsls r0, 3
- strh r0, [r5, 0x32]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 3
- cmp r0, 0
- bge _08106E78
- adds r0, 0x7
-_08106E78:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _08106E88
- adds r0, 0x7
-_08106E88:
- asrs r0, 3
- strh r0, [r5, 0x36]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- lsls r0, 4
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, =sub_8106EC8
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106E00
-
- thumb_func_start sub_8106EC8
-sub_8106EC8: @ 8106EC8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r3, [r2, 0x32]
- adds r1, r3
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08106EFC
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08106EFC:
- pop {r0}
- bx r0
- thumb_func_end sub_8106EC8
-
- thumb_func_start sub_8106F00
-sub_8106F00: @ 8106F00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08106F22
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- movs r0, 0x78
- subs r0, r1
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08106F22:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08106F40
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_80A750C
-_08106F40:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _08106F54
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08106F54:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106F00
-
- thumb_func_start sub_8106F60
-sub_8106F60: @ 8106F60
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08106F8E
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0xF
- strh r0, [r6, 0x22]
- ldrb r1, [r4, 0x2]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x38]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x34]
-_08106F8E:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r6, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r6, 0x30]
- movs r2, 0x2E
- ldrsh r0, [r6, r2]
- lsls r4, r0, 1
- adds r4, r0
- ldrh r0, [r6, 0x34]
- adds r4, r0
- movs r2, 0xFF
- ldrh r0, [r6, 0x3A]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3A]
- ands r4, r2
- adds r0, r4, 0
- movs r1, 0x64
- bl Cos
- strh r0, [r6, 0x24]
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x4
- bl Cos
- ldrh r2, [r6, 0x30]
- adds r4, r2
- adds r0, r4
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x38
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0810700A
- ldr r0, =sub_8107018
- str r0, [r6, 0x1C]
- strh r5, [r6, 0x2E]
- adds r0, r6, 0
- bl oamt_add_pos2_onto_pos1
- movs r0, 0x5
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x36]
- strh r5, [r6, 0x34]
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0810700A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8106F60
-
- thumb_func_start sub_8107018
-sub_8107018: @ 8107018
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _08107032
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, =sub_810703C
- str r0, [r1, 0x1C]
-_08107032:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107018
-
- thumb_func_start sub_810703C
-sub_810703C: @ 810703C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _08107066
- lsls r0, r1, 16
- cmp r0, 0
- ble _08107066
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_08107066:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _08107098
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08107098:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _081070A6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081070A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810703C
-
- thumb_func_start sub_81070AC
-sub_81070AC: @ 81070AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081070F8
- ldr r4, =gBattleAnimAttacker
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _081070F8
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08107118
- .pool
-_081070F8:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_08107118:
- movs r0, 0xD
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- subs r0, 0x48
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81070AC
-
- thumb_func_start AnimTask_IsFuryCutterHitRight
-AnimTask_IsFuryCutterHitRight: @ 8107144
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gBattleAnimArgs
- ldr r1, =gAnimDisableStructPtr
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsFuryCutterHitRight
-
- thumb_func_start AnimTask_GetFuryCutterHitCount
-AnimTask_GetFuryCutterHitCount: @ 8107168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBattleAnimArgs
- ldr r1, =gAnimDisableStructPtr
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_GetFuryCutterHitCount
-
- thumb_func_start AnimTask_CreateRaindrops
-AnimTask_CreateRaindrops: @ 8107188
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _081071B0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_081071B0:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0x1
- bne _081071F8
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08595020
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_081071F8:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _0810720A
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0810720A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_CreateRaindrops
-
- thumb_func_start sub_810721C
-sub_810721C: @ 810721C
- ldr r1, =sub_8107228
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_810721C
-
- thumb_func_start sub_8107228
-sub_8107228: @ 8107228
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _08107246
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_08107246:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810725A
- adds r0, r2, 0
- bl DestroySprite
-_0810725A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107228
-
- thumb_func_start sub_8107260
-sub_8107260: @ 8107260
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08107290
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gBattleAnimArgs
- ldrh r1, [r4]
- subs r0, r1
- b _081072A2
- .pool
-_08107290:
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_081072A2:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r6, 0x22]
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081072D8
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_081072D8:
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl InitAnimLinearTranslation
- ldr r0, =SpriteCallbackDummy
- bl CreateInvisibleSpriteWithCallback
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r6, 0x38]
- ldrb r0, [r5, 0x8]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r6, 0x20]
- subs r1, r0
- strh r1, [r6, 0x20]
- ldrb r0, [r5, 0x8]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- ldrh r1, [r6, 0x22]
- subs r1, r0
- strh r1, [r6, 0x22]
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r1, 0x32]
- ldrb r0, [r5, 0x8]
- lsls r0, 8
- strh r0, [r1, 0x34]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x36]
- ldr r1, =sub_8107380
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107260
-
- thumb_func_start sub_8107380
-sub_8107380: @ 8107380
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl TranslateAnimLinear
- mov r1, r8
- lsrs r6, r1, 8
- movs r0, 0x2E
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Sin
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r0, 0x30
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Cos
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r0, [r7, 0x32]
- mov r1, r8
- adds r1, r0
- strh r1, [r7, 0x34]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0
- beq _081073EC
- strh r4, [r7, 0x36]
- b _081073F6
- .pool
-_081073EC:
- ldr r0, =sub_8107408
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_081073F6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107380
-
- thumb_func_start sub_8107408
-sub_8107408: @ 8107408
- push {lr}
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldr r1, =sub_80A67D8
- str r1, [r0, 0x1C]
- ldr r1, =sub_8107430
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107408
-
- thumb_func_start sub_8107430
-sub_8107430: @ 8107430
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, =sub_80A64B0
- str r1, [r0, 0x1C]
- ldr r1, =move_anim_8074EE0
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107430
-
- thumb_func_start sub_810744C
-sub_810744C: @ 810744C
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810747C
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _08107482
- .pool
-_0810747C:
- ldr r0, =gBattleAnimArgs
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_08107482:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_81074E4
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810744C
-
- thumb_func_start sub_81074E4
-sub_81074E4: @ 81074E4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08107506
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_08107506:
- adds r0, r4, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08107518
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08107518:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81074E4
-
- thumb_func_start sub_8107528
-sub_8107528: @ 8107528
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, =0x0000279c
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, =sub_810756C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107528
-
- thumb_func_start sub_810756C
-sub_810756C: @ 810756C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0x3
- bne _081075BE
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, =gPlttBufferFaded
- lsls r0, r5, 1
- adds r0, r1
- ldrh r6, [r0]
- adds r7, r1, 0
- adds r3, r0, 0x2
- movs r1, 0x6
- adds r2, r0, 0
-_081075A8:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081075A8
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_081075BE:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _081075DE
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_081075DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810756C
-
- thumb_func_start sub_81075EC
-sub_81075EC: @ 81075EC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, =gBattleAnimArgs
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _0810765C
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _08107660
- .pool
-_0810765C:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_08107660:
- ldr r1, =sub_8107674
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81075EC
-
- thumb_func_start sub_8107674
-sub_8107674: @ 8107674
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08107688
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08107688:
- ldrh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- adds r0, r1
- asrs r0, 8
- cmp r0, 0x7F
- ble _081076B8
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _081076C0
-_081076B8:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_081076C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107674
-
- thumb_func_start sub_81076C8
-sub_81076C8: @ 81076C8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, =gBattleAnimArgs
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, =sub_81076F4
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81076C8
-
- thumb_func_start sub_81076F4
-sub_81076F4: @ 81076F4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _08107722
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_08107722:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81076F4
-
- thumb_func_start sub_8107730
-sub_8107730: @ 8107730
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, =gBattleAnimAttacker
- ldrb r0, [r7]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, =0x0000fff6
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r5, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810778A
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08107784
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _0810778C
- .pool
-_08107784:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _0810778E
-_0810778A:
- strh r6, [r4, 0x24]
-_0810778C:
- adds r0, r5, 0x2
-_0810778E:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, =sub_81077A4
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107730
-
- thumb_func_start sub_81077A4
-sub_81077A4: @ 81077A4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081077BA
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081077BA:
- pop {r0}
- bx r0
- thumb_func_end sub_81077A4
-
- thumb_func_start sub_81077C0
-sub_81077C0: @ 81077C0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _0810780A
- ldr r4, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- beq _08107802
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810780A
-_08107802:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_0810780A:
- ldr r5, =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _0810781E
- movs r1, 0x1
-_0810781E:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _08107828
- movs r7, 0x3
-_08107828:
- adds r0, r6, 0
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08107842
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_08107842:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r6, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81077C0
-
- thumb_func_start sub_8107894
-sub_8107894: @ 8107894
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x8]
- strh r1, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107894
-
- thumb_func_start sub_81078D0
-sub_81078D0: @ 81078D0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081078EC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- b _081078F4
- .pool
-_081078EC:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A69CC
-_081078F4:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, =sub_810790C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81078D0
-
- thumb_func_start sub_810790C
-sub_810790C: @ 810790C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810794C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810794C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810790C
-
- thumb_func_start AnimTask_CreateSurfWave
-AnimTask_CreateSurfWave: @ 8107954
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl SetAnimBgAttribute
- mov r0, sp
- bl sub_80A6B30
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081079E0
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081079D0
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08D95E00
- bl sub_80A6D48
- b _081079EA
- .pool
-_081079D0:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08D960D0
- bl sub_80A6D48
- b _081079EA
- .pool
-_081079E0:
- ldr r1, =gUnknown_08D963A4
- mov r0, sp
- movs r2, 0x1
- bl sub_80A6D60
-_081079EA:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gBattleAnimBackgroundImage_Surf
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08107A24
- ldr r0, =gBattleAnimBackgroundPalette_Surf
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08107A32
- .pool
-_08107A24:
- ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_08107A32:
- ldr r0, =sub_8107D58
- ldr r4, =gTasks
- mov r2, r10
- lsls r5, r2, 2
- adds r1, r5, r2
- lsls r1, 3
- adds r6, r1, r4
- ldrb r1, [r6, 0x7]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- mov r9, r0
- mov r1, r8
- strh r1, [r6, 0x26]
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r7, r0, r4
- mov r0, r9
- strh r0, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r7, 0xA]
- strh r0, [r7, 0xC]
- bl IsContest
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08107AB4
- ldr r1, =0x0000ffb0
- adds r0, r1, 0
- ldr r2, =gBattle_BG1_X
- strh r0, [r2]
- adds r1, 0x20
- adds r0, r1, 0
- ldr r2, =gBattle_BG1_Y
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- mov r0, r9
- strh r0, [r7, 0xE]
- b _08107B0E
- .pool
-_08107AB4:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _08107AF8
- ldr r2, =0x0000ff20
- adds r0, r2, 0
- ldr r2, =gBattle_BG1_X
- strh r0, [r2]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r2, =gBattle_BG1_Y
- strh r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, =0x0000ffff
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _08107B0E
- .pool
-_08107AF8:
- ldr r0, =gBattle_BG1_X
- strh r4, [r0]
- ldr r1, =0x0000ffd0
- adds r0, r1, 0
- ldr r2, =gBattle_BG1_Y
- strh r0, [r2]
- ldr r0, =0x0000fffe
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_08107B0E:
- ldr r0, =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r2, =gBattle_BG1_Y
- ldrh r1, [r2]
- movs r0, 0x16
- bl SetGpuReg
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08107B54
- movs r0, 0x30
- strh r0, [r1, 0x10]
- movs r0, 0x70
- b _08107B58
- .pool
-_08107B54:
- movs r0, 0
- strh r0, [r1, 0x10]
-_08107B58:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, =sub_8107B84
- str r1, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_CreateSurfWave
-
- thumb_func_start sub_8107B84
-sub_8107B84: @ 8107B84
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gBattle_BG1_X
- ldr r2, =gBattle_BG1_Y
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x8]
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldrh r0, [r4, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- bl sub_80A6B30
- ldrh r0, [r4, 0xA]
- ldrh r3, [r4, 0xC]
- adds r0, r3
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08107C18
- ldr r1, =gPlttBufferFaded
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x7
- lsls r0, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r2, 0x6
- adds r7, r1, 0
- adds r3, r7, 0
- mov r4, sp
-_08107BDE:
- ldrb r0, [r4, 0x8]
- lsls r0, 4
- adds r1, r2, 0x1
- adds r0, r1
- lsls r1, r0, 1
- adds r1, r3
- subs r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08107BDE
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_08107C18:
- ldr r1, =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x14]
- adds r0, 0x1
- strh r0, [r3, 0x14]
- lsls r0, 16
- asrs r0, 16
- adds r4, r1, 0
- adds r6, r2, 0
- cmp r0, 0x1
- ble _08107C86
- movs r0, 0
- strh r0, [r3, 0x14]
- ldrh r0, [r3, 0xE]
- adds r2, r0, 0x1
- strh r2, [r3, 0xE]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _08107C62
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
-_08107C62:
- movs r1, 0xE
- ldrsh r0, [r3, r1]
- cmp r0, 0x36
- ble _08107C86
- ldrh r2, [r3, 0x10]
- subs r2, 0x1
- strh r2, [r3, 0x10]
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
-_08107C86:
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldrh r0, [r0, 0xA]
- movs r3, 0x1F
- ands r3, r0
- cmp r3, 0
- bne _08107CA8
- strh r3, [r2, 0x8]
- ldr r0, =sub_8107CC4
- str r0, [r2]
-_08107CA8:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107B84
-
- thumb_func_start sub_8107CC4
-sub_8107CC4: @ 8107CC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r7, =gBattle_BG1_X
- ldr r0, =gBattle_BG1_Y
- mov r8, r0
- ldr r6, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08107D08
- movs r0, 0x1
- bl sub_80A6C68
- movs r0, 0x2
- bl sub_80A6C68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08107D4A
- .pool
-_08107D08:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08107D1C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_08107D1C:
- movs r0, 0
- strh r0, [r7]
- mov r1, r8
- strh r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08107D4A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107CC4
-
- thumb_func_start sub_8107D58
-sub_8107D58: @ 8107D58
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08107D74
- b _08107EAC
-_08107D74:
- cmp r0, 0x1
- bgt _08107D84
- cmp r0, 0
- beq _08107D8C
- b _08108022
- .pool
-_08107D84:
- cmp r0, 0x2
- bne _08107D8A
- b _08107F78
-_08107D8A:
- b _08108022
-_08107D8C:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, =gScanlineEffectRegBuffers
- mov r12, r1
- cmp r3, r0
- bge _08107DCA
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, =0x0000ffff
-_08107DA4:
- lsls r2, r3, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r7
- adds r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _08107DA4
-_08107DCA:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08107E04
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, =0x0000ffff
-_08107DE2:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldrh r1, [r4, 0xA]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08107DE2
-_08107E04:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _08107E3A
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, =0x0000ffff
-_08107E18:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- ble _08107E18
-_08107E3A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08107E64
- lsls r0, r3, 16
- asrs r0, 15
- mov r3, r12
- adds r2, r0, r3
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrh r0, [r4, 0xA]
- b _08107E7A
- .pool
-_08107E64:
- lsls r0, r3, 16
- asrs r0, 15
- mov r1, r12
- adds r2, r0, r1
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xC]
- strh r1, [r0]
- ldrh r0, [r4, 0xC]
-_08107E7A:
- strh r0, [r2]
- ldr r0, =0x04000052
- str r0, [sp]
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08108022
- .pool
-_08107EAC:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _08107EC4
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _08107ED8
- strh r1, [r4, 0x10]
- b _08107ED2
-_08107EC4:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _08107ED8
-_08107ED2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08107ED8:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _08107F0C
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107EE6:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _08107EE6
-_08107F0C:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08107F40
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107F1E:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08107F1E
-_08107F40:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _08108022
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107F4E:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _08107F4E
- b _08108022
- .pool
-_08107F78:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _08107FAC
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107F86:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _08107F86
-_08107FAC:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _08107FE0
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107FBE:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08107FBE
-_08107FE0:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _0810800C
- ldr r6, =gScanlineEffectRegBuffers
- ldr r5, =gScanlineEffect
-_08107FEE:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _08107FEE
-_0810800C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08108022
- bl ScanlineEffect_Stop
- adds r0, r7, 0
- bl DestroyTask
-_08108022:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8107D58
-
- thumb_func_start sub_8108034
-sub_8108034: @ 8108034
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- bl Random2
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random2
- ldr r1, =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _0810807A
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_0810807A:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, =sub_8108098
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108034
-
- thumb_func_start sub_8108098
-sub_8108098: @ 8108098
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _081080BC
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _081080C0
-_081080BC:
- lsls r0, r3, 16
- asrs r0, 24
-_081080C0:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _081080DE
- adds r0, r2, 0
- bl DestroyAnimSprite
-_081080DE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108098
-
- thumb_func_start sub_81080E4
-sub_81080E4: @ 81080E4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x12]
- bl sub_8108384
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80A7270
- ldr r0, =sub_8108140
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81080E4
-
- thumb_func_start sub_8108140
-sub_8108140: @ 8108140
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _0810815C
- b _0810837A
-_0810815C:
- lsls r0, 2
- ldr r1, =_08108170
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08108170:
- .4byte _08108190
- .4byte _081081B6
- .4byte _08108248
- .4byte _0810827E
- .4byte _08108292
- .4byte _081082A0
- .4byte _08108320
- .4byte _0810836C
-_08108190:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_80A805C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081081B6:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08108212
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08108200
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
- b _08108212
- .pool
-_08108200:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffd
- strh r1, [r0, 0x24]
-_08108212:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08108222
- b _0810837A
-_08108222:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7E6C
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xE]
- b _0810835C
- .pool
-_08108248:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _08108258
- b _0810837A
-_08108258:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xE0
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80A805C
- movs r0, 0
- strh r0, [r4, 0xE]
- b _0810835E
-_0810827E:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0810837A
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _0810835E
-_08108292:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_8108408
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081082A0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810837A
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081082D8
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- b _081082EA
- .pool
-_081082D8:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
-_081082EA:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _0810837A
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xE0
- bl sub_80A805C
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _0810835E
- .pool
-_08108320:
- ldr r6, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0810837A
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7344
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x22]
-_0810835C:
- strh r5, [r4, 0x10]
-_0810835E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0810837A
- .pool
-_0810836C:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810837A
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0810837A:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8108140
-
- thumb_func_start sub_8108384
-sub_8108384: @ 8108384
- push {r4,r5,lr}
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _081083B8
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _081083C8
- .pool
-_081083B4:
- adds r0, r2, 0
- b _081083FA
-_081083B8:
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_081083C8:
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- lsrs r4, 18
- movs r2, 0
-_081083E6:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _081083B4
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _081083E6
- movs r0, 0x3
-_081083FA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8108384
-
- thumb_func_start sub_8108408
-sub_8108408: @ 8108408
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl sub_80A82E4
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldrh r1, [r7, 0xA]
- movs r0, 0x4
- subs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bgt _08108458
- movs r1, 0x1
-_08108458:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 16
- mov r10, r8
- mov r9, r6
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0xC]
- mov r1, r9
- lsls r1, 4
- str r1, [sp, 0x10]
- asrs r0, 16
- mov r8, r0
-_08108472:
- ldr r0, =gUnknown_08595268
- mov r1, r10
- mov r2, r9
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r5, 16
- cmp r2, 0x40
- beq _081084DA
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r5, 0x32]
- mov r0, sp
- ldrh r0, [r0, 0x10]
- strh r0, [r5, 0x34]
- asrs r4, r6, 16
- adds r0, r4, 0
- movs r1, 0x40
- bl Cos
- strh r0, [r5, 0x36]
- adds r0, r4, 0
- movs r1, 0x40
- bl Sin
- strh r0, [r5, 0x38]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r5, 0x3A]
- movs r0, 0x2
- strh r0, [r5, 0x3C]
- ldrh r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081084D4
- adds r0, r5, 0
- bl sub_810851C
-_081084D4:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_081084DA:
- mov r1, r8
- lsls r0, r1, 1
- asrs r1, r6, 16
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
- str r1, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0x13
- ble _08108472
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108408
-
- thumb_func_start sub_810851C
-sub_810851C: @ 810851C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810852E
- cmp r0, 0x1
- beq _08108564
- b _081085BE
-_0810852E:
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x36]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08108564:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r2, r1, 20
- strh r2, [r4, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _0810859A
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _0810859A
- cmp r1, 0x78
- ble _081085BE
-_0810859A:
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_081085BE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810851C
-
- thumb_func_start sub_81085C8
-sub_81085C8: @ 81085C8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- bl sub_8108384
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08108600
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _08108606
- .pool
-_08108600:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_08108606:
- strh r0, [r4, 0x14]
- movs r0, 0x62
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x31
- strh r0, [r4, 0x16]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x5
- strh r0, [r4, 0x20]
- ldr r0, =sub_810862C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81085C8
-
- thumb_func_start sub_810862C
-sub_810862C: @ 810862C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r7, =gTasks
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _08108654
- cmp r2, 0x1
- beq _08108704
- b _08108712
- .pool
-_08108654:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810866A
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_810871C
-_0810866A:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081086E4
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081086E4
- ldr r5, =gBattleAnimArgs
- movs r1, 0x1
- mov r8, r1
- mov r2, r8
- strh r2, [r5]
- strh r0, [r5, 0x2]
- movs r0, 0xC
- strh r0, [r5, 0x4]
- ldr r6, =sub_81152DC
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _081086B4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081086B4:
- movs r0, 0x3
- strh r0, [r5]
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _081086E0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081086E0:
- mov r0, r8
- strh r0, [r4, 0x22]
-_081086E4:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _08108712
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08108712
- .pool
-_08108704:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08108712
- adds r0, r1, 0
- bl DestroyAnimVisualTask
-_08108712:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810862C
-
- thumb_func_start sub_810871C
-sub_810871C: @ 810871C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, =gSineTable
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x3
- asrs r0, 4
- ldrh r2, [r4, 0x14]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =gUnknown_08595268
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08108776
- ldr r3, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, =sub_81087C0
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x38]
- strh r6, [r0, 0x3A]
- movs r1, 0x9
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
-_08108776:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x18]
- adds r0, 0x27
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x18]
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- ldr r0, =0x41c64e6d
- muls r0, r1
- ldr r1, =0x00003039
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810871C
-
- thumb_func_start sub_81087C0
-sub_81087C0: @ 81087C0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08108856
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _08108856
- ldr r2, =gTasks
- movs r3, 0x3A
- ldrsh r1, [r5, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x1C]
- ldr r0, =gUnknown_08597388
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- cmp r0, 0x40
- beq _08108850
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3A]
- strh r1, [r0, 0x3A]
- movs r3, 0x30
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3C]
- strh r1, [r0, 0x3C]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, =sub_810886C
- str r1, [r0]
-_08108850:
- adds r0, r5, 0
- bl DestroySprite
-_08108856:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81087C0
-
- thumb_func_start sub_810886C
-sub_810886C: @ 810886C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081088D8
- movs r0, 0
- strh r0, [r4, 0x30]
- 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]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _081088D8
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_081088D8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810886C
-
- thumb_func_start sub_81088E4
-sub_81088E4: @ 81088E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08108928
- movs r1, 0x1
-_08108928:
- strh r1, [r5, 0x16]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810893C
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_0810893C:
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0x12]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- ldrh r0, [r5, 0x10]
- subs r0, r1
- strh r0, [r5, 0x14]
- ldr r0, =0x0000ffe0
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, =sub_8108978
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81088E4
-
- thumb_func_start sub_8108978
-sub_8108978: @ 8108978
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _08108992
- b _08108AB2
-_08108992:
- lsls r0, 2
- ldr r1, =_081089A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081089A4:
- .4byte _081089C0
- .4byte _081089D0
- .4byte _081089EA
- .4byte _08108A2C
- .4byte _08108A4E
- .4byte _08108A7C
- .4byte _08108AA2
-_081089C0:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08108AB8
- b _08108AAA
-_081089D0:
- adds r0, r4, 0
- bl sub_8108AC0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08108AB8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08108AAA
-_081089EA:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- adds r1, r0
- movs r2, 0
- strh r1, [r4, 0x12]
- adds r1, 0x10
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bls _08108AB8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08108A28
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _08108AB8
-_08108A28:
- strh r2, [r4, 0xA]
- b _08108AAA
-_08108A2C:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08108AB8
- b _08108AAA
-_08108A4E:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x12]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bls _08108AB8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08108AAA
-_08108A7C:
- adds r0, r4, 0
- bl sub_8108AC0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08108AB8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _08108AB8
-_08108AA2:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08108AB8
-_08108AAA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08108AB8
-_08108AB2:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08108AB8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108978
-
- thumb_func_start sub_8108AC0
-sub_8108AC0: @ 8108AC0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08108B1A
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, =gUnknown_08595268
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- movs r3, 0x10
- ldrsh r2, [r6, r3]
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08108B1A
- ldr r5, =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldrh r1, [r6, 0x12]
- strh r1, [r0, 0x32]
- ldrh r1, [r6, 0x14]
- strh r1, [r0, 0x36]
- ldrh r1, [r6, 0x1A]
- strh r1, [r0, 0x38]
- bl sub_80A68D4
- adds r5, 0x1C
- adds r4, r5
- ldr r0, =sub_8108B2C
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_08108B1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108AC0
-
- thumb_func_start sub_8108B2C
-sub_8108B2C: @ 8108B2C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08108B86
- ldrh r0, [r6, 0x24]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrh r0, [r6, 0x26]
- ldrh r1, [r6, 0x22]
- adds r0, r1
- strh r0, [r6, 0x22]
- movs r0, 0x6
- strh r0, [r6, 0x2E]
- bl Random2
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, =0x0000fff0
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random2
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random2
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80A68D4
- ldr r0, =sub_8108B94
- str r0, [r6, 0x1C]
-_08108B86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108B2C
-
- thumb_func_start sub_8108B94
-sub_8108B94: @ 8108B94
- push {r4-r6,lr}
- adds r5, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08108BD0
- movs r4, 0
- ldr r6, =gTasks
-_08108BA6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, =sub_8108978
- cmp r1, r0
- bne _08108BC6
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_08108BC6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08108BA6
-_08108BD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108B94
-
- thumb_func_start sub_8108BE0
-sub_8108BE0: @ 8108BE0
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0x30]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x34]
- ldr r1, =sub_8108C08
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8108BE0
-
- thumb_func_start sub_8108C08
-sub_8108C08: @ 8108C08
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08108C4C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08108C4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108C08
-
- thumb_func_start sub_8108C54
-sub_8108C54: @ 8108C54
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _08108C8C
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08108C8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108C54
-
- thumb_func_start sub_8108C94
-sub_8108C94: @ 8108C94
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, =sub_8108CDC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108C94
-
- thumb_func_start sub_8108CDC
-sub_8108CDC: @ 8108CDC
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- subs r6, r1, r0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- subs r5, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r6
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r5
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08108D34
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_8108D54
-_08108D34:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08108D46
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08108D46:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8108CDC
-
- thumb_func_start sub_8108D54
-sub_8108D54: @ 8108D54
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r1, 0
- adds r5, r2, 0
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- lsls r1, 15
- lsrs r1, 16
- str r1, [sp]
- ldrh r1, [r0, 0x24]
- ldrh r3, [r0, 0x20]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, r5, r0
- subs r0, 0x5
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl Random2
- negs r4, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0
- subs r4, 0x5
- lsls r4, 16
- lsrs r7, r4, 16
- movs r6, 0
- mov r0, r8
- lsls r0, 16
- mov r8, r0
- mov r1, r10
- lsls r1, 16
- str r1, [sp, 0xC]
- ldr r2, [sp]
- lsls r2, 16
- str r2, [sp, 0x10]
- asrs r1, 16
- lsls r0, r7, 16
- asrs r5, r0, 16
- str r0, [sp, 0x14]
- negs r3, r5
- str r3, [sp, 0x4]
- asrs r0, r2, 16
- adds r1, r0
- lsls r1, 16
- mov r10, r1
-_08108DE2:
- ldr r0, =gUnknown_08595310
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _08108E30
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _08108E32
- .pool
-_08108E30:
- strh r7, [r4, 0x32]
-_08108E32:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _08108DE2
- movs r6, 0
- ldr r3, [sp, 0xC]
- asrs r1, r3, 16
- ldr r0, [sp, 0x14]
- asrs r5, r0, 16
- negs r2, r5
- str r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- asrs r0, r3, 16
- subs r1, r0
- lsls r1, 16
- mov r10, r1
-_08108E58:
- ldr r0, =gUnknown_08595310
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A82E4
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _08108EA8
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _08108EAA
- .pool
-_08108EA8:
- strh r7, [r4, 0x32]
-_08108EAA:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _08108E58
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8108D54
-
- thumb_func_start sub_8108EC8
-sub_8108EC8: @ 8108EC8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, =sub_80A634C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108EC8
-
- thumb_func_start sub_8108F08
-sub_8108F08: @ 8108F08
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_80A6864
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, =sub_80A656C
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108F08
-
- thumb_func_start sub_8108F4C
-sub_8108F4C: @ 8108F4C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08108F88
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _08108F9E
- .pool
-_08108F88:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
-_08108F9E:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, =sub_8109028
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108F4C
-
- thumb_func_start sub_8108FBC
-sub_8108FBC: @ 8108FBC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08108FF0
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _08109008
- .pool
-_08108FF0:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
-_08109008:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, =sub_8109028
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8108FBC
-
- thumb_func_start sub_8109028
-sub_8109028: @ 8109028
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _0810904E
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
-_0810904E:
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _08109060
- adds r0, r2, 0
- bl move_anim_8074EE0
-_08109060:
- pop {r0}
- bx r0
- thumb_func_end sub_8109028
-
- thumb_func_start sub_8109064
-sub_8109064: @ 8109064
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A6838
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08109090
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _081090A2
- .pool
-_08109090:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- adds r2, r4, 0
- adds r2, 0x43
- movs r1, 0x8
- strb r1, [r2]
-_081090A2:
- adds r2, r0, 0
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r2, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r2, 0xC]
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldr r0, =sub_81090D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109064
-
- thumb_func_start sub_81090D8
-sub_81090D8: @ 81090D8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08109160
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- ldr r0, =0x00002710
- cmp r1, r0
- ble _081090F6
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
-_081090F6:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _0810914C
- ldr r2, =0xffffff00
- b _08109154
- .pool
-_0810914C:
- cmp r0, 0
- bge _08109158
- movs r2, 0x80
- lsls r2, 1
-_08109154:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_08109158:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _08109166
-_08109160:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_08109166:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81090D8
-
- thumb_func_start sub_810916C
-sub_810916C: @ 810916C
- push {lr}
- movs r1, 0
- strh r1, [r0, 0x20]
- strh r1, [r0, 0x22]
- movs r1, 0x3C
- strh r1, [r0, 0x2E]
- movs r1, 0x8C
- strh r1, [r0, 0x32]
- movs r1, 0x50
- strh r1, [r0, 0x36]
- ldr r1, =sub_80A6EEC
- str r1, [r0, 0x1C]
- ldr r1, =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810916C
-
- thumb_func_start sub_8109198
-sub_8109198: @ 8109198
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _081091DE
- movs r0, 0x2
- bl GetBattlerAtPosition
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _081091D6
- movs r0, 0x3
- bl GetBattlerAtPosition
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081091DE
-_081091D6:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_081091DE:
- ldr r1, =sub_80A7938
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109198
-
- thumb_func_start sub_8109200
-sub_8109200: @ 8109200
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- negs r1, r1
- strh r1, [r2]
- ldrh r1, [r2, 0x4]
- negs r1, r1
- strh r1, [r2, 0x4]
- ldr r1, =sub_80A7938
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_8109200
-
- thumb_func_start sub_810921C
-sub_810921C: @ 810921C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x2E]
- ldr r0, =sub_8109244
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810921C
-
- thumb_func_start sub_8109244
-sub_8109244: @ 8109244
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8109338
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x12
- bne _0810928E
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_810929C
- str r0, [r5, 0x1C]
-_0810928E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109244
-
- thumb_func_start sub_810929C
-sub_810929C: @ 810929C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _081092E4
- movs r4, 0
- strh r4, [r6, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r4, [r6, 0x26]
- strh r4, [r6, 0x24]
- ldr r1, =sub_8109314
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- b _0810930E
- .pool
-_081092E4:
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Sin
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Cos
- ldrh r1, [r6, 0x26]
- adds r0, r1
- strh r0, [r6, 0x26]
- ldrh r0, [r6, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3C]
-_0810930E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810929C
-
- thumb_func_start sub_8109314
-sub_8109314: @ 8109314
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8109338
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08109330
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08109330:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109314
-
- thumb_func_start sub_8109338
-sub_8109338: @ 8109338
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109338
-
- thumb_func_start sub_8109364
-sub_8109364: @ 8109364
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A653C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109364
-
- thumb_func_start sub_81093A4
-sub_81093A4: @ 81093A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =sub_81093E4
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81093A4
-
- thumb_func_start sub_81093E4
-sub_81093E4: @ 81093E4
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldrh r1, [r0, 0x30]
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- ldr r1, =sub_810940C
- str r1, [r0, 0x1C]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81093E4
-
- thumb_func_start sub_810940C
-sub_810940C: @ 810940C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0xD0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08109458
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08109458:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810940C
-
- thumb_func_start sub_8109460
-sub_8109460: @ 8109460
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x10]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80A7270
- ldr r0, =sub_81094D0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109460
-
- thumb_func_start sub_81094D0
-sub_81094D0: @ 81094D0
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _081094EC
- b _081097AA
-_081094EC:
- lsls r0, 2
- ldr r1, =_08109500
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08109500:
- .4byte _0810951C
- .4byte _08109542
- .4byte _081095F4
- .4byte _08109654
- .4byte _08109672
- .4byte _08109748
- .4byte _0810979C
-_0810951C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_80A805C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08109542:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810958A
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109578
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- b _08109588
- .pool
-_08109578:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffd
-_08109588:
- strh r1, [r0, 0x24]
-_0810958A:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081095B8
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081095B8
- movs r0, 0
- strh r0, [r4, 0xE]
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
-_081095B8:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _081095C8
- b _081097AA
-_081095C8:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7E6C
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- b _08109790
- .pool
-_081095F4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _08109604
- b _081097AA
-_08109604:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810962E
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xF0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80A805C
- b _0810964E
-_0810962E:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xC0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_80A805C
-_0810964E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08109790
-_08109654:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- cmp r0, 0
- beq _08109662
- b _081097AA
-_08109662:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_81097B4
- b _08109790
-_08109672:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081096C0
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081096AC
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- b _081096BE
- .pool
-_081096AC:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
-_081096BE:
- strh r1, [r0, 0x26]
-_081096C0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _081097AA
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081096FC
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xF0
- bl sub_80A805C
- b _0810971A
- .pool
-_081096FC:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xC0
- bl sub_80A805C
-_0810971A:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109738
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
-_08109738:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- b _08109790
- .pool
-_08109748:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08109764
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_08109764:
- adds r0, r4, 0
- bl sub_80A80C8
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081097AA
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x22]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A7344
- strh r5, [r4, 0xC]
-_08109790:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081097AA
- .pool
-_0810979C:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081097AA
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_081097AA:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81094D0
-
- thumb_func_start sub_81097B4
-sub_81097B4: @ 81097B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r4, 0
- bl sub_8109930
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x20]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810980C
- adds r0, r4, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- b _08109816
- .pool
-_0810980C:
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xFF
-_08109816:
- movs r6, 0
- movs r5, 0
- lsls r4, 16
- str r4, [sp, 0x8]
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x4]
- ldr r2, =gUnknown_085955CC
- mov r9, r2
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r3, r8
- lsls r3, 1
- mov r10, r3
-_08109834:
- ldr r0, =gUnknown_085955B4
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- ldr r3, [sp, 0x4]
- asrs r2, r3, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _081098B6
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- lsls r0, r5, 2
- adds r0, 0x40
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r3, =0xfffffc00
- adds r0, r3, 0
- ands r2, r0
- orrs r2, r1
- strh r2, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _0810987E
- movs r5, 0
-_0810987E:
- lsls r2, r6, 2
- mov r1, r9
- adds r0, r2, r1
- ldrh r0, [r0]
- ldr r3, [sp]
- adds r1, r0, 0
- muls r1, r3
- lsls r1, 16
- asrs r1, 16
- ldr r0, =gUnknown_085955CC+2
- adds r2, r0
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r0, r4, 0
- bl sub_8109984
- strh r7, [r4, 0x3A]
- mov r0, r8
- strh r0, [r4, 0x3C]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- add r0, r10
- ldr r1, =gTasks + 0x8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
-_081098B6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x6
- bls _08109834
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81097B4
-
- thumb_func_start sub_81098EC
-sub_81098EC: @ 81098EC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_81099A0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08109926
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_08109926:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81098EC
-
- thumb_func_start sub_8109930
-sub_8109930: @ 8109930
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x26]
- ldrh r0, [r1, 0x22]
- adds r2, r0
- adds r1, 0x29
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08109970
- lsls r0, r4, 16
- movs r1, 0x94
- lsls r1, 15
- b _08109976
- .pool
-_08109970:
- lsls r0, r4, 16
- movs r1, 0xB0
- lsls r1, 14
-_08109976:
- adds r0, r1
- lsrs r4, r0, 16
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8109930
-
- thumb_func_start sub_8109984
-sub_8109984: @ 8109984
- movs r3, 0
- strh r3, [r0, 0x2E]
- strh r3, [r0, 0x30]
- ldrh r3, [r0, 0x20]
- lsls r3, 3
- strh r3, [r0, 0x32]
- ldrh r3, [r0, 0x22]
- lsls r3, 3
- strh r3, [r0, 0x34]
- lsls r1, 3
- strh r1, [r0, 0x36]
- lsls r2, 3
- strh r2, [r0, 0x38]
- bx lr
- thumb_func_end sub_8109984
-
- thumb_func_start sub_81099A0
-sub_81099A0: @ 81099A0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081099CA
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r3, [r2, 0x34]
- adds r0, r3
- strh r0, [r2, 0x34]
-_081099CA:
- ldrh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r1, 16
- asrs r3, r1, 19
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _08109A00
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _08109A00
- cmp r1, 0x78
- ble _08109A0C
-_08109A00:
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08109A0C:
- pop {r0}
- bx r0
- thumb_func_end sub_81099A0
-
- thumb_func_start sub_8109A10
-sub_8109A10: @ 8109A10
- push {r4,r5,lr}
- ldr r3, =gBattleAnimArgs
- ldrh r1, [r3]
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x32]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0x3A]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x3C]
- ldrh r4, [r0, 0x4]
- lsls r2, r4, 22
- lsrs r2, 22
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r1, 4
- adds r2, r1
- ldr r3, =0x000003ff
- adds r1, r3, 0
- ands r2, r1
- ldr r1, =0xfffffc00
- ands r1, r4
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r1, =sub_8109A64
- str r1, [r0, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109A10
-
- thumb_func_start sub_8109A64
-sub_8109A64: @ 8109A64
- push {r4,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08109A96
- cmp r0, 0x1
- bgt _08109A7A
- cmp r0, 0
- beq _08109A80
- b _08109AF4
-_08109A7A:
- cmp r0, 0x2
- beq _08109AB4
- b _08109AF4
-_08109A80:
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08109A90
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
- b _08109AF4
-_08109A90:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_08109A96:
- ldrh r0, [r2, 0x22]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x3C]
- movs r4, 0x3C
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _08109AF4
- strh r3, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08109AF4
-_08109AB4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08109AE0
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109ADC
- ldr r0, =0x0000fffd
- b _08109ADE
- .pool
-_08109ADC:
- movs r0, 0x3
-_08109ADE:
- strh r0, [r2, 0x26]
-_08109AE0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08109AF4
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08109AF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109A64
-
- thumb_func_start sub_8109AFC
-sub_8109AFC: @ 8109AFC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08109B70
- cmp r0, 0x1
- bgt _08109B12
- cmp r0, 0
- beq _08109B18
- b _08109C3E
-_08109B12:
- cmp r0, 0x2
- beq _08109BCE
- b _08109C3E
-_08109B18:
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A69CC
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3C]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08109B48
- movs r0, 0x4
- b _08109B4A
- .pool
-_08109B48:
- ldr r0, =0x0000fffc
-_08109B4A:
- strh r0, [r5, 0x36]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _08109BC6
- .pool
-_08109B70:
- ldrh r0, [r5, 0x30]
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08109B94
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _08109B9A
- .pool
-_08109B94:
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
-_08109B9A:
- strh r0, [r5, 0x26]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08109C3E
- movs r0, 0
- strh r0, [r5, 0x34]
-_08109BC6:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _08109C3E
-_08109BCE:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- adds r2, r0, 0
- movs r3, 0
- strh r2, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08109C3E
- ldrh r0, [r5, 0x20]
- adds r1, r2, r0
- strh r1, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r3, [r5, 0x26]
- strh r3, [r5, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80A6FD4
- ldr r0, =sub_8109C4C
- str r0, [r5, 0x1C]
-_08109C3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109AFC
-
- thumb_func_start sub_8109C4C
-sub_8109C4C: @ 8109C4C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _08109CA4
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08109C82
- cmp r2, 0xC4
- ble _08109CAA
-_08109C82:
- lsls r0, 16
- cmp r0, 0
- ble _08109CAA
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08109CAA
- ldr r0, =gUnknown_02038440
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x90
- bl PlaySE12WithPanning
- b _08109CAA
- .pool
-_08109CA4:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08109CAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109C4C
-
- thumb_func_start sub_8109CB0
-sub_8109CB0: @ 8109CB0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08109CC8
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_08109CC8:
- movs r0, 0xC0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0xA0
- strh r0, [r4, 0x36]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x36]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08109D64
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _08109D3C
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _08109D80
- .pool
-_08109D3C:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _08109D80
- .pool
-_08109D64:
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _08109D78
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _08109D7E
-_08109D78:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_08109D7E:
- strb r0, [r1]
-_08109D80:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _08109DA8
- 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]
-_08109DA8:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x1E
- bne _08109DB6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08109DB6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109CB0
-
- thumb_func_start sub_8109DBC
-sub_8109DBC: @ 8109DBC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _08109DE2
- movs r1, 0x1
-_08109DE2:
- strh r1, [r4, 0x20]
- ldr r0, =gBattleAnimTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r0, 0x3
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, =sub_8109E2C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109DBC
-
- thumb_func_start sub_8109E2C
-sub_8109E2C: @ 8109E2C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r2, r0, r1
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- cmp r3, 0x1
- beq _08109EF4
- cmp r3, 0x1
- bgt _08109E54
- cmp r3, 0
- beq _08109E62
- b _0810A054
- .pool
-_08109E54:
- cmp r3, 0x2
- bne _08109E5A
- b _08109F7C
-_08109E5A:
- cmp r3, 0x3
- bne _08109E60
- b _0810A010
-_08109E60:
- b _0810A054
-_08109E62:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08109E94
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109E90
- movs r0, 0x2
- b _08109E92
-_08109E90:
- ldr r0, =0x0000fffe
-_08109E92:
- strh r0, [r2, 0x1E]
-_08109E94:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _08109ED6
- ldr r4, =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_08109EA6:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _08109EA6
-_08109ED6:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _08109EE6
- b _0810A054
-_08109EE6:
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _0810A000
- .pool
-_08109EF4:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08109F1C
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ands r0, r3
- lsls r0, 16
- cmp r0, 0
- beq _08109F18
- movs r0, 0x2
- b _08109F1A
-_08109F18:
- ldr r0, =0x0000fffe
-_08109F1A:
- strh r0, [r2, 0x1E]
-_08109F1C:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _08109F5E
- ldr r4, =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_08109F2E:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _08109F2E
-_08109F5E:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x60
- bne _0810A054
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _0810A000
- .pool
-_08109F7C:
- movs r7, 0x20
- ldrsh r1, [r2, r7]
- lsls r1, 1
- ldrh r0, [r2, 0x1C]
- subs r0, r1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08109FB0
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109FAC
- strh r3, [r2, 0x1E]
- b _08109FB0
-_08109FAC:
- ldr r0, =0x0000fffe
- strh r0, [r2, 0x1E]
-_08109FB0:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _08109FF2
- ldr r4, =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_08109FC2:
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _08109FC2
-_08109FF2:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0810A054
-_0810A000:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0810A054
- .pool
-_0810A010:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _0810A04E
- ldr r6, =gSprites
- adds r3, r2, 0
- adds r3, 0x8
- movs r5, 0
-_0810A024:
- movs r7, 0xE
- ldrsh r0, [r2, r7]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _0810A024
-_0810A04E:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0810A054:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8109E2C
-
- thumb_func_start AnimTask_BlendBackground
-AnimTask_BlendBackground: @ 810A060
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- ldr r1, =gBattleAnimArgs
- ldrb r2, [r1]
- ldrh r3, [r1, 0x2]
- movs r1, 0x10
- bl BlendPalette
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_BlendBackground
-
- thumb_func_start sub_810A094
-sub_810A094: @ 810A094
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- mov r9, r1
- ldr r4, =gBattleAnimArgs
- mov r8, r4
- cmp r0, 0
- bne _0810A0CA
- ldrh r0, [r4]
- strh r0, [r2, 0xA]
- ldrh r0, [r4, 0x2]
- strh r0, [r2, 0xC]
- ldrh r0, [r4, 0x4]
- strh r0, [r2, 0xE]
- ldrh r0, [r4, 0x6]
- strh r0, [r2, 0x10]
-_0810A0CA:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- movs r5, 0x10
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _0810A100
- ldr r4, =gUnknown_08595684
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- b _0810A106
- .pool
-_0810A100:
- ldr r4, =gUnknown_08595694
- movs r3, 0x8
- ldrsh r0, [r2, r3]
-_0810A106:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r0, r4
- ldrb r5, [r0]
- lsls r0, r7, 2
- adds r1, r0, r7
- lsls r1, 3
- add r1, r9
- movs r4, 0xE
- ldrsh r1, [r1, r4]
- mov r12, r0
- cmp r1, 0x1
- bne _0810A154
- ldr r2, =gSprites
- lsls r3, r6, 4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- mov r10, r0
- mov r0, r8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r5, 24
- asrs r0, 24
- muls r0, r1
- cmp r0, 0
- bge _0810A144
- negs r0, r0
-_0810A144:
- mov r5, r10
- strh r0, [r5, 0x26]
- b _0810A16E
- .pool
-_0810A154:
- ldr r3, =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- lsls r0, r5, 24
- asrs r0, 24
- mov r5, r8
- ldrh r1, [r5, 0x2]
- muls r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_0810A16E:
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r9
- movs r4, 0x8
- ldrsh r1, [r0, r4]
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _0810A194
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_0810A194:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A094
-
- thumb_func_start sub_810A1A8
-sub_810A1A8: @ 810A1A8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810A1D0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _0810A1DC
- .pool
-_0810A1D0:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_0810A1DC:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =sub_810A1F8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A1A8
-
- thumb_func_start sub_810A1F8
-sub_810A1F8: @ 810A1F8
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810A20E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0810A20E:
- pop {r0}
- bx r0
- thumb_func_end sub_810A1F8
-
- thumb_func_start sub_810A214
-sub_810A214: @ 810A214
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810A23C
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _0810A246
- .pool
-_0810A23C:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_0810A246:
- ldr r0, =sub_810A258
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A214
-
- thumb_func_start sub_810A258
-sub_810A258: @ 810A258
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810A26E
- adds r0, r2, 0
- bl move_anim_8074EE0
-_0810A26E:
- pop {r0}
- bx r0
- thumb_func_end sub_810A258
-
- thumb_func_start sub_810A274
-sub_810A274: @ 810A274
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810A2C4
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x22]
- b _0810A2D8
- .pool
-_0810A2C4:
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r2, [r5, 0x22]
- adds r1, r2
- strh r1, [r5, 0x22]
- adds r2, r0, 0
-_0810A2D8:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A62EC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A274
-
- thumb_func_start sub_810A308
-sub_810A308: @ 810A308
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _0810A380
- cmp r0, 0x1
- bgt _0810A324
- cmp r0, 0
- beq _0810A32E
- b _0810A380
- .pool
-_0810A324:
- cmp r0, 0x2
- beq _0810A338
- cmp r0, 0x3
- beq _0810A35C
- b _0810A380
-_0810A32E:
- ldr r0, =gBattleAnimAttacker
- b _0810A382
- .pool
-_0810A338:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _0810A354
- ldrb r4, [r4]
- b _0810A384
- .pool
-_0810A354:
- ldrb r0, [r4]
- adds r4, r6, 0
- eors r4, r0
- b _0810A384
-_0810A35C:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- movs r4, 0x2
- eors r0, r4
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810A380
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- eors r4, r0
- b _0810A384
- .pool
-_0810A380:
- ldr r0, =gBattleAnimTarget
-_0810A382:
- ldrb r4, [r0]
-_0810A384:
- ldr r0, =gBattleAnimArgs
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _0810A3AC
- adds r0, r4, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x1
- b _0810A3BE
- .pool
-_0810A3AC:
- adds r0, r4, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x3
-_0810A3BE:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r7, =gSineTable
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r1, [r6, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810A422
- adds r0, r4, 0
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
-_0810A422:
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- ldr r3, =gOamMatrices
- lsls r2, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldr r0, =sub_810E2C8
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A308
-
- thumb_func_start sub_810A46C
-sub_810A46C: @ 810A46C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x3A]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r1, =sub_810A4F4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A46C
-
- thumb_func_start sub_810A4F4
-sub_810A4F4: @ 810A4F4
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _0810A55E
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0810A564
- 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]
- b _0810A564
-_0810A55E:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810A564:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810A4F4
-
- thumb_func_start sub_810A56C
-sub_810A56C: @ 810A56C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x38]
- subs r0, 0x1
- strh r0, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810A5A4
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- 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
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x36]
- strh r0, [r3, 0x38]
-_0810A5A4:
- ldrh r0, [r3, 0x34]
- subs r1, r0, 0x1
- strh r1, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _0810A5B6
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0810A5B6:
- pop {r0}
- bx r0
- thumb_func_end sub_810A56C
-
- thumb_func_start sub_810A5BC
-sub_810A5BC: @ 810A5BC
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810A5D8
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810A5E0
-_0810A5D8:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_0810A5E0:
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4]
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x36]
- strh r0, [r6, 0x38]
- ldr r0, =sub_810A56C
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A5BC
-
- thumb_func_start sub_810A628
-sub_810A628: @ 810A628
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0810A64C
- ldr r0, =gBattleAnimTarget
- b _0810A64E
- .pool
-_0810A64C:
- ldr r0, =gBattleAnimAttacker
-_0810A64E:
- ldrb r6, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810A666
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810A66E
-_0810A666:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_0810A66E:
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r3, [r4]
- adds r0, r3
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldr r0, =0x00007fff
- ands r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x3C]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r1, =sub_810A6EC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A628
-
- thumb_func_start sub_810A6EC
-sub_810A6EC: @ 810A6EC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810A742
- 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]
-_0810A742:
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _0810A754
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810A754:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810A6EC
-
- thumb_func_start sub_810A75C
-sub_810A75C: @ 810A75C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A6980
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, =gBattleAnimArgs
- movs r5, 0x6
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r1, r0
- ldr r5, =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0810A7A4
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- b _0810A7B2
- .pool
-_0810A7A4:
- cmp r0, 0x2
- bne _0810A7B6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x20
-_0810A7B2:
- orrs r1, r0
- strb r1, [r4, 0x3]
-_0810A7B6:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A75C
-
- thumb_func_start sub_810A7DC
-sub_810A7DC: @ 810A7DC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- ldr r1, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- ldr r5, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, =sub_810A834
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A7DC
-
- thumb_func_start sub_810A834
-sub_810A834: @ 810A834
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r5, 0
- movs r7, 0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0xC]
- str r2, [sp]
- ldrh r4, [r0, 0x8]
- ldrh r6, [r0, 0xA]
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0
- bne _0810A878
- movs r0, 0
- mov r8, r0
- movs r2, 0x1
- movs r1, 0x10
- mov r12, r1
- b _0810A882
- .pool
-_0810A878:
- movs r2, 0x10
- mov r12, r2
- movs r3, 0x8
- mov r8, r3
- movs r2, 0x4
-_0810A882:
- mov r0, r9
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- add r0, r10
- movs r3, 0x1C
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0xA
- bhi _0810A978
- lsls r0, 2
- ldr r1, =_0810A8A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0810A8A4:
- .4byte _0810A8D0
- .4byte _0810A978
- .4byte _0810A8E4
- .4byte _0810A978
- .4byte _0810A904
- .4byte _0810A978
- .4byte _0810A91A
- .4byte _0810A978
- .4byte _0810A93C
- .4byte _0810A978
- .4byte _0810A970
-_0810A8D0:
- ldr r0, =gUnknown_08595828
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r4, r12
- lsls r3, r4, 16
- b _0810A952
- .pool
-_0810A8E4:
- mov r0, r12
- lsls r3, r0, 17
- mov r1, r8
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =gUnknown_08595828
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _0810A952
- .pool
-_0810A904:
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- lsls r3, r0, 1
- adds r3, r0
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _0810A946
-_0810A91A:
- mov r0, r12
- lsls r3, r0, 18
- lsls r0, r2, 1
- adds r0, r2
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =gUnknown_08595828
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _0810A952
- .pool
-_0810A93C:
- mov r1, r12
- lsls r0, r1, 16
- asrs r0, 16
- lsls r3, r0, 2
- adds r3, r0
-_0810A946:
- ldr r0, =gUnknown_08595828
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- lsls r3, 16
-_0810A952:
- asrs r3, 16
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _0810A978
- .pool
-_0810A970:
- mov r0, r9
- bl DestroyAnimVisualTask
- b _0810A9BC
-_0810A978:
- cmp r7, 0
- beq _0810A9AC
- ldr r4, =gSprites
- lsls r3, r5, 4
- adds r3, r5
- lsls r3, 2
- adds r0, r3, r4
- ldrh r5, [r0, 0x4]
- lsls r2, r5, 22
- lsrs r2, 22
- add r2, r8
- ldr r6, =0x000003ff
- adds r1, r6, 0
- ands r2, r1
- ldr r1, =0xfffffc00
- ands r1, r5
- orrs r1, r2
- strh r1, [r0, 0x4]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- adds r4, 0x1C
- adds r3, r4
- ldr r1, [r3]
- bl _call_via_r1
-_0810A9AC:
- ldr r0, =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
-_0810A9BC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810A834
-
- thumb_func_start sub_810A9DC
-sub_810A9DC: @ 810A9DC
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _0810A9FE
- ldrb r1, [r3, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r2, r0
- strb r2, [r3, 0x3]
- b _0810AA12
-_0810A9FE:
- ldrb r2, [r3, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r3, 0x3]
-_0810AA12:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _0810AA26
- adds r0, r3, 0
- bl DestroySprite
-_0810AA26:
- pop {r0}
- bx r0
- thumb_func_end sub_810A9DC
-
- thumb_func_start sub_810AA2C
-sub_810AA2C: @ 810AA2C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- ldr r0, =gUnknown_08595840
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- movs r7, 0x22
- ldrsh r2, [r4, r7]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r6, r2, r3
- ldrh r5, [r6, 0x4]
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r7, =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r5
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, =sub_810AAB0
- str r0, [r2]
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810AA2C
-
- thumb_func_start sub_810AAB0
-sub_810AAB0: @ 810AAB0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0810AAE4
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- 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
- mov r1, r12
- strb r0, [r1]
-_0810AAE4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _0810AAF8
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0810AAF8:
- pop {r0}
- bx r0
- thumb_func_end sub_810AAB0
-
- thumb_func_start sub_810AAFC
-sub_810AAFC: @ 810AAFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810AB28
- ldr r4, =gBattleAnimAttacker
- b _0810AB2A
- .pool
-_0810AB28:
- ldr r4, =gBattleAnimTarget
-_0810AB2A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x26]
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2, 0x2]
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- strh r1, [r5, 0x18]
- strh r1, [r5, 0x1A]
- strh r1, [r5, 0x1C]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x22]
- ldr r0, =sub_810AB78
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810AAFC
-
- thumb_func_start sub_810AB78
-sub_810AB78: @ 810AB78
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r2, r6, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810AC78
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- cmp r0, r1
- ble _0810AC86
- strh r7, [r5, 0x20]
- ldr r0, =gUnknown_085958A8
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- movs r3, 0x26
- ldrsh r2, [r5, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0810AC86
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- ldr r1, =gUnknown_08595858
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x20]
- adds r3, r0
- strh r3, [r4, 0x20]
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r4, 0x22]
- adds r2, r0
- strh r2, [r4, 0x22]
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0x28
- subs r0, r1
- strh r0, [r4, 0x2E]
- strh r3, [r4, 0x30]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- ldrh r0, [r5, 0x26]
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldr r1, =sub_810ACC0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- strh r0, [r5, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _0810AC30
- strh r7, [r5, 0x1A]
-_0810AC30:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _0810AC52
- strh r7, [r5, 0x1C]
- ldrh r1, [r5, 0x18]
- movs r3, 0x18
- ldrsh r0, [r5, r3]
- cmp r0, 0x5
- bgt _0810AC52
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
-_0810AC52:
- ldrh r0, [r5, 0x16]
- adds r0, 0x1
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x14]
- subs r0, 0x1
- strh r0, [r5, 0x14]
- b _0810AC86
- .pool
-_0810AC78:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810AC86
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0810AC86:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810AB78
-
- thumb_func_start sub_810AC8C
-sub_810AC8C: @ 810AC8C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _0810ACB4
- ldr r2, =gTasks
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x16]
- subs r1, 0x1
- strh r1, [r0, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_0810ACB4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810AC8C
-
- thumb_func_start sub_810ACC0
-sub_810ACC0: @ 810ACC0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, =sub_810AC8C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810ACC0
-
- thumb_func_start sub_810ACD8
-sub_810ACD8: @ 810ACD8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810ACF4
- ldr r4, =gBattleAnimAttacker
- b _0810ACF6
- .pool
-_0810ACF4:
- ldr r4, =gBattleAnimTarget
-_0810ACF6:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810ACD8
-
- thumb_func_start sub_810AD30
-sub_810AD30: @ 810AD30
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810AD4C
- ldr r4, =gBattleAnimAttacker
- b _0810AD4E
- .pool
-_0810AD4C:
- ldr r4, =gBattleAnimTarget
-_0810AD4E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x24]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x26]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810AD30
-
- thumb_func_start sub_810AD98
-sub_810AD98: @ 810AD98
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810ADE6
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x3C]
-_0810ADE6:
- ldr r0, =sub_810ADF8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810AD98
-
- thumb_func_start sub_810ADF8
-sub_810ADF8: @ 810ADF8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810AE0A
- cmp r0, 0x1
- beq _0810AE20
- b _0810AE50
-_0810AE0A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _0810AE50
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810AE50
-_0810AE20:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- adds r2, r1
- strh r2, [r0, 0x24]
- ldrh r0, [r4, 0x20]
- adds r0, 0x50
- lsls r0, 16
- movs r1, 0xC8
- lsls r1, 17
- cmp r0, r1
- bls _0810AE50
- adds r0, r4, 0
- bl move_anim_8074EE0
-_0810AE50:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810ADF8
-
- thumb_func_start sub_810AE5C
-sub_810AE5C: @ 810AE5C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0810AEF0
- cmp r0, 0x1
- bgt _0810AE84
- cmp r0, 0
- beq _0810AE90
- b _0810AFC0
- .pool
-_0810AE84:
- cmp r0, 0x2
- beq _0810AF4C
- cmp r0, 0x3
- bne _0810AE8E
- b _0810AFA0
-_0810AE8E:
- b _0810AFC0
-_0810AE90:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x26]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810AECC
- ldr r0, =0x0000ffe0
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _0810AED2
- .pool
-_0810AECC:
- movs r0, 0x20
- strh r0, [r5, 0x24]
- ldr r0, =0x0000fffe
-_0810AED2:
- strh r0, [r5, 0x22]
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r5, 0x24]
- strh r1, [r0, 0x24]
- b _0810AF92
- .pool
-_0810AEF0:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810AFC0
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r4, =gSprites
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r1, [r5, 0x24]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0810AF92
- ldrh r2, [r5, 0x22]
- adds r2, r1, r2
- strh r2, [r5, 0x24]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- b _0810AFC0
- .pool
-_0810AF4C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810AFC0
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r1, =gSprites
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0810AFC0
-_0810AF92:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0810AFC0
- .pool
-_0810AFA0:
- ldr r2, =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_0810AFC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810AE5C
-
- thumb_func_start sub_810AFCC
-sub_810AFCC: @ 810AFCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _0810AFE6
- b _0810B10C
-_0810AFE6:
- cmp r0, 0x1
- bgt _0810AFF4
- cmp r0, 0
- beq _0810AFFC
- b _0810B14E
- .pool
-_0810AFF4:
- cmp r0, 0x2
- bne _0810AFFA
- b _0810B140
-_0810AFFA:
- b _0810B14E
-_0810AFFC:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _0810B012
- movs r1, 0x1
-_0810B012:
- movs r6, 0
- strh r1, [r5, 0xA]
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r3, r0, 0
- cmp r2, 0
- beq _0810B048
- cmp r2, 0x4
- beq _0810B070
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810B0A8
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0xE]
- ldr r0, =0x0000fff0
- b _0810B0B0
- .pool
-_0810B048:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 7
- adds r0, 0x78
- strh r0, [r5, 0x10]
- b _0810B0E6
-_0810B070:
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r1, 7
- movs r0, 0x78
- subs r0, r1
- strh r0, [r5, 0xE]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r1, 5
- subs r0, r1
- strh r0, [r5, 0x10]
- b _0810B0E6
- .pool
-_0810B0A8:
- ldr r0, =0x0000fff0
- strh r0, [r5, 0xE]
- movs r0, 0x80
- lsls r0, 1
-_0810B0B0:
- strh r0, [r5, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _0810B0D0
- movs r2, 0
- ldrsh r0, [r3, r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0x50
- subs r0, r1
- strh r0, [r5, 0x12]
- b _0810B0E6
- .pool
-_0810B0D0:
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x28
- strh r0, [r5, 0x12]
- ldrh r1, [r5, 0xE]
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
-_0810B0E6:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bge _0810B0FC
- movs r1, 0
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0x14]
- b _0810B138
-_0810B0FC:
- ldr r0, =0x0000ffff
- strh r0, [r5, 0xA]
- movs r0, 0x3
- strh r0, [r5, 0x14]
- b _0810B138
- .pool
-_0810B10C:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- ble _0810B14E
- movs r0, 0
- strh r0, [r5, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_810B154
- lsls r0, 24
- cmp r0, 0
- bne _0810B138
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_810B154
- lsls r0, 24
- cmp r0, 0
- beq _0810B14E
-_0810B138:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0810B14E
-_0810B140:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810B14E
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0810B14E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810AFCC
-
- thumb_func_start sub_810B154
-sub_810B154: @ 810B154
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, =gUnknown_08595A00
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r3, 0x12
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0810B18A
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x3A]
- movs r1, 0x7
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_0810B18A:
- ldrh r1, [r4, 0xA]
- ldrh r5, [r4, 0x14]
- adds r0, r1, r5
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bge _0810B19C
- movs r0, 0x3
- strh r0, [r4, 0x14]
-_0810B19C:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _0810B1A8
- movs r0, 0
- strh r0, [r4, 0x14]
-_0810B1A8:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- lsls r0, 4
- ldrh r5, [r4, 0xE]
- adds r2, r0, r5
- strh r2, [r4, 0xE]
- lsls r0, r1, 16
- asrs r3, r0, 16
- cmp r3, 0x1
- bne _0810B1C8
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x10
- ldrsh r1, [r4, r5]
- cmp r0, r1
- bge _0810B1DC
-_0810B1C8:
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _0810B1E8
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bgt _0810B1E8
-_0810B1DC:
- movs r0, 0x1
- b _0810B1EA
- .pool
-_0810B1E8:
- movs r0, 0
-_0810B1EA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810B154
-
- thumb_func_start sub_810B1F0
-sub_810B1F0: @ 810B1F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0810B230
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_0810B230:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B1F0
-
- thumb_func_start sub_810B23C
-sub_810B23C: @ 810B23C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810B24E
- cmp r0, 0x1
- beq _0810B280
- b _0810B294
-_0810B24E:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0810B294
- .pool
-_0810B280:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810B294
- adds r0, r5, 0
- bl move_anim_8074EE0
-_0810B294:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810B23C
-
- thumb_func_start sub_810B29C
-sub_810B29C: @ 810B29C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _0810B2B6
- b _0810B428
-_0810B2B6:
- lsls r0, 2
- ldr r1, =_0810B2C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0810B2C8:
- .4byte _0810B2DC
- .4byte _0810B36C
- .4byte _0810B3A8
- .4byte _0810B404
- .4byte _0810B414
-_0810B2DC:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r5, r2]
- movs r2, 0x14
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x5
- bl __divsi3
- strh r0, [r5, 0x1A]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, =0x0000ffff
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- subs r0, 0x4C
- bl BattleAnimAdjustPanning
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x20]
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x22]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x24]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- b _0810B426
- .pool
-_0810B36C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _0810B39C
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_810B430
- lsls r0, 24
- cmp r0, 0
- beq _0810B39C
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bne _0810B396
- movs r0, 0x3
- b _0810B39A
-_0810B396:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
-_0810B39A:
- strh r0, [r5, 0x8]
-_0810B39C:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0810B428
- b _0810B41E
-_0810B3A8:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0810B3B6
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
-_0810B3B6:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810B428
- strh r3, [r5, 0xA]
- ldrh r1, [r5, 0xC]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0810B3E2
- movs r0, 0x4
- strh r0, [r5, 0x16]
- movs r0, 0x44
- strh r0, [r5, 0x18]
- strh r3, [r5, 0x10]
- strh r2, [r5, 0x12]
- b _0810B3F2
-_0810B3E2:
- movs r0, 0x44
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, =0x0000ffff
- strh r0, [r5, 0x12]
-_0810B3F2:
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810B424
- movs r0, 0x4
- b _0810B426
- .pool
-_0810B404:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810B428
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- b _0810B428
-_0810B414:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0810B424
-_0810B41E:
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
- b _0810B428
-_0810B424:
- movs r0, 0x1
-_0810B426:
- strh r0, [r5, 0x8]
-_0810B428:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810B29C
-
- thumb_func_start sub_810B430
-sub_810B430: @ 810B430
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, =gUnknown_08595A30
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r3, 0x16
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0810B49C
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldrh r6, [r4, 0x10]
- adds r1, r6
- ldr r6, =0x000003ff
- adds r0, r6, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0810B484
- movs r0, 0x7
- strh r0, [r4, 0x10]
-_0810B484:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- ble _0810B490
- movs r0, 0
- strh r0, [r4, 0x10]
-_0810B490:
- strh r5, [r3, 0x3A]
- movs r0, 0x3
- strh r0, [r3, 0x3C]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_0810B49C:
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0810B4BE
- movs r5, 0x12
- ldrsh r0, [r4, r5]
- cmp r0, 0
- ble _0810B4BE
- ldrh r1, [r4, 0x26]
- ldrh r6, [r4, 0x24]
- adds r1, r6
- strh r1, [r4, 0x24]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_0810B4BE:
- movs r0, 0x12
- ldrsh r3, [r4, r0]
- ldrh r2, [r4, 0x16]
- cmp r3, 0
- bge _0810B4D4
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x18
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _0810B4E4
-_0810B4D4:
- cmp r3, 0
- ble _0810B508
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0x18
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _0810B508
-_0810B4E4:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1A]
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r0, 0x1
- b _0810B514
- .pool
-_0810B508:
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r0, r2, r0
- strh r0, [r4, 0x16]
- movs r0, 0
-_0810B514:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810B430
-
- thumb_func_start sub_810B51C
-sub_810B51C: @ 810B51C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0810B552
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0810B552:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B51C
-
- thumb_func_start sub_810B55C
-sub_810B55C: @ 810B55C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0810B5D8
- cmp r0, 0x1
- bgt _0810B584
- cmp r0, 0
- beq _0810B58A
- b _0810B60E
- .pool
-_0810B584:
- cmp r0, 0x2
- beq _0810B600
- b _0810B60E
-_0810B58A:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- cmp r0, 0x10
- ble _0810B5B4
- adds r2, r0, 0
-_0810B5A4:
- adds r1, r2, 0
- subs r1, 0x20
- adds r2, r1, 0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x10
- bgt _0810B5A4
- strh r1, [r5, 0x24]
-_0810B5B4:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _0810B5F8
- .pool
-_0810B5D8:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810B60E
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_810B614
- lsls r0, 24
- cmp r0, 0
- beq _0810B60E
-_0810B5F8:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0810B60E
-_0810B600:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810B60E
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0810B60E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810B55C
-
- thumb_func_start sub_810B614
-sub_810B614: @ 810B614
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, =gUnknown_085956C0
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0810B658
- ldr r3, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, =sub_810B684
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x3A]
- movs r1, 0xA
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
-_0810B658:
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0810B67C
- adds r0, r2, 0
- adds r0, 0x20
- strh r0, [r4, 0x24]
- movs r0, 0
- b _0810B67E
- .pool
-_0810B67C:
- movs r0, 0x1
-_0810B67E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810B614
-
- thumb_func_start sub_810B684
-sub_810B684: @ 810B684
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810B6B8
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0810B6B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B684
-
- thumb_func_start sub_810B6C4
-sub_810B6C4: @ 810B6C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x7
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- str r3, [sp]
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1]
- ldr r3, [sp]
- adds r0, r3
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x4]
- mov r4, r9
- adds r0, r4, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- adds r0, r6
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x6]
- mov r7, r8
- adds r0, r7, r0
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80A64EC
- adds r4, 0x20
- movs r0, 0x98
- lsls r0, 1
- mov r12, r0
- ldr r3, [sp]
- cmp r4, r12
- bhi _0810B79E
- adds r0, r7, 0
- adds r0, 0x20
- ldrh r1, [r5, 0x30]
- ldrh r2, [r5, 0x32]
- cmp r0, 0xE0
- bhi _0810B79E
- adds r4, r1, 0
- mov r10, r12
-_0810B76A:
- mov r7, r9
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r4
- lsls r1, 16
- mov r7, r8
- lsls r0, r7, 16
- asrs r0, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r0, r1, 16
- mov r9, r0
- movs r7, 0x80
- lsls r7, 14
- adds r1, r7
- lsrs r1, 16
- cmp r1, r10
- bhi _0810B79E
- mov r1, r8
- lsls r0, r1, 16
- adds r0, r7
- lsrs r0, 16
- cmp r0, 0xE0
- bls _0810B76A
-_0810B79E:
- ldrh r0, [r5, 0x30]
- negs r7, r0
- strh r7, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- negs r4, r0
- strh r4, [r5, 0x32]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r0, 16
- movs r2, 0x98
- lsls r2, 1
- mov r12, r2
- ldr r1, =gBattleAnimArgs
- mov r10, r1
- cmp r0, r12
- bhi _0810B80A
- lsls r1, r6, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r1, r2
- b _0810B802
- .pool
-_0810B7E0:
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r7
- lsls r1, 16
- asrs r0, r2, 16
- adds r0, r4
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r3, r1, 16
- movs r0, 0x80
- lsls r0, 14
- adds r1, r0
- lsrs r1, 16
- cmp r1, r12
- bhi _0810B80A
- lsls r1, r6, 16
- adds r0, r1, r0
-_0810B802:
- lsrs r0, 16
- adds r2, r1, 0
- cmp r0, 0xE0
- bls _0810B7E0
-_0810B80A:
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x22]
- mov r1, r10
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- strh r3, [r5, 0x30]
- mov r2, r9
- strh r2, [r5, 0x32]
- strh r6, [r5, 0x34]
- mov r3, r8
- strh r3, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80A64EC
- mov r7, r10
- ldrh r0, [r7, 0xA]
- strh r0, [r5, 0x34]
- ldrh r0, [r7, 0xC]
- strh r0, [r5, 0x36]
- ldr r0, =sub_810B848
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B6C4
-
- thumb_func_start sub_810B848
-sub_810B848: @ 810B848
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810B8A0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- strh r1, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810B8A6
-_0810B8A0:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810B8A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810B848
-
- thumb_func_start sub_810B8AC
-sub_810B8AC: @ 810B8AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, =sub_80A634C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B8AC
-
- thumb_func_start sub_810B8EC
-sub_810B8EC: @ 810B8EC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810B92C
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r4, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r4, 0x32]
- b _0810B936
- .pool
-_0810B92C:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
-_0810B936:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r1, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r2, [r1, 0x6]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B8EC
-
- thumb_func_start sub_810B974
-sub_810B974: @ 810B974
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810B990
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- b _0810B9C6
- .pool
-_0810B990:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810B9B6
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_0810B9B6:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_0810B9C6:
- ldr r1, =sub_810B9E8
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810B974
-
- thumb_func_start sub_810B9E8
-sub_810B9E8: @ 810B9E8
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- 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
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _0810BA1E
- adds r0, r3, 0
- bl move_anim_8074EE0
-_0810BA1E:
- pop {r0}
- bx r0
- thumb_func_end sub_810B9E8
-
- thumb_func_start sub_810BA24
-sub_810BA24: @ 810BA24
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0810BA74
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- b _0810BA86
- .pool
-_0810BA74:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl SetAverageBattlerPositions
-_0810BA86:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810BAAC
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r5, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r5, 0x32]
- b _0810BAB6
- .pool
-_0810BAAC:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_0810BAB6:
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_0810BAC0:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0810BAC0
- adds r0, r5, 0
- bl sub_80A7160
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_0810BAE2:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_80A70E8
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _0810BB16
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _0810BB16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0810BAE2
-_0810BB16:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r6, =sub_80A718C
- ldr r1, =sub_810BB60
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_0810BB36:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0810BB36
- str r6, [r5, 0x1C]
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810BA24
-
- thumb_func_start sub_810BB60
-sub_810BB60: @ 810BB60
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, =0x0000ffec
- cmp r0, 0
- beq _0810BB90
- movs r1, 0x14
-_0810BB90:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x34]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldr r1, =sub_810BBC8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810BB60
-
- thumb_func_start sub_810BBC8
-sub_810BBC8: @ 810BBC8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldr r1, =0x0000ffec
- cmp r0, 0
- beq _0810BBDE
- movs r1, 0x14
-_0810BBDE:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x1F
- bgt _0810BC24
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x36]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _0810BC42
- .pool
-_0810BC24:
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- ldr r0, =sub_810BC4C
- str r0, [r4, 0x1C]
-_0810BC42:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810BBC8
-
- thumb_func_start sub_810BC4C
-sub_810BC4C: @ 810BC4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80A70E8
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _0810BC88
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r1, r0, r1
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bgt _0810BC88
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0810BC8E
-_0810BC88:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810BC8E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810BC4C
-
- thumb_func_start sub_810BC94
-sub_810BC94: @ 810BC94
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810BCE0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _0810BCF2
- .pool
-_0810BCE0:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl SetAverageBattlerPositions
-_0810BCF2:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810BD1C
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r5, 0x32]
- ldrh r2, [r0, 0x4]
- subs r1, r2
- strh r1, [r5, 0x32]
- adds r1, r0, 0
- b _0810BD26
- .pool
-_0810BD1C:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_0810BD26:
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80A7160
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_0810BD3E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0810BD3E
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_0810BD5A:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_80A70E8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _0810BD8E
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _0810BD8E
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0810BD5A
-_0810BD8E:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r1, =gBattleAnimArgs
- ldr r6, =sub_810BDD8
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_0810BDAE:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0810BDAE
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r1, 0xC]
- strh r0, [r5, 0x3A]
- str r6, [r5, 0x1C]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810BC94
-
- thumb_func_start sub_810BDD8
-sub_810BDD8: @ 810BDD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A70E8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810BDEC
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0810BDEC:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0810BE42
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _0810BE3C
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _0810BE3C
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0810BE42
-_0810BE3C:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810BE42:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDD8
-
- thumb_func_start sub_810BE48
-sub_810BE48: @ 810BE48
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810BEB4
- ldr r5, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810BE6C
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A6980
- b _0810BEA2
- .pool
-_0810BE6C:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810BE92
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_0810BE92:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_0810BEA2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810BEC8
- .pool
-_0810BEB4:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810BEC8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810BEC8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810BE48
-
- thumb_func_start sub_810BED0
-sub_810BED0: @ 810BED0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0810BF40
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0810BEF4
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A69CC
- b _0810BF32
- .pool
-_0810BEF4:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810BF20
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _0810BF26
- .pool
-_0810BF20:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_0810BF26:
- strh r0, [r5, 0x20]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_0810BF32:
- ldr r0, =gBattleAnimAttacker
- b _0810BF90
- .pool
-_0810BF40:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0810BF52
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A6980
- b _0810BF8E
-_0810BF52:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810BF7C
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _0810BF82
- .pool
-_0810BF7C:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_0810BF82:
- strh r0, [r5, 0x20]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_0810BF8E:
- ldr r0, =gBattleAnimTarget
-_0810BF90:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- ldr r0, =gBattleAnimArgs
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0810BFA8
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _0810BFB4
-_0810BFA8:
- movs r0, 0x20
- b _0810BFB6
- .pool
-_0810BFB4:
- movs r0, 0x40
-_0810BFB6:
- strh r0, [r5, 0x3A]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810BFCC
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_0810BFCC:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrh r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- movs r0, 0x40
- strh r0, [r5, 0x38]
- ldr r1, =sub_810C008
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810BED0
-
- thumb_func_start sub_810C008
-sub_810C008: @ 810C008
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _0810C092
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _0810C064
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _0810C086
-_0810C064:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0810C086:
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _0810C098
-_0810C092:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810C098:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810C008
-
- thumb_func_start sub_810C0A0
-sub_810C0A0: @ 810C0A0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C0E2
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0810C0E2:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gBattle_BG1_Y
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gWeatherFog1Tiles
- movs r2, 0x80
- lsls r2, 4
- mov r3, sp
- ldrh r3, [r3, 0xA]
- bl LoadBgTiles
- ldr r1, =gBattleAnimFogTilemap
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- ldr r0, =gUnknown_0854C270
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_810C164
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C0A0
-
- thumb_func_start sub_810C164
-sub_810C164: @ 810C164
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gBattle_BG1_X
- ldr r2, =0x0000ffff
- adds r0, r2, 0
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0810C18E
- b _0810C2DA
-_0810C18E:
- lsls r0, 2
- ldr r1, =_0810C1A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0810C1A8:
- .4byte _0810C1BC
- .4byte _0810C214
- .4byte _0810C236
- .4byte _0810C27A
- .4byte _0810C29C
-_0810C1BC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0810C1D6
- b _0810C2DA
-_0810C1D6:
- strh r5, [r4, 0x1C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, =gUnknown_08595C5C
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _0810C2DA
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _0810C2DA
- .pool
-_0810C214:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _0810C2DA
- movs r0, 0x9
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _0810C2DA
-_0810C236:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0810C2DA
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0810C2DA
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _0810C2DA
-_0810C27A:
- mov r0, sp
- bl sub_80A6B30
- movs r0, 0x1
- bl sub_80A6C68
- movs r0, 0x2
- bl sub_80A6C68
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_0810C29C:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C2B0
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_0810C2B0:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0810C2DA:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C164
-
- thumb_func_start sub_810C2F0
-sub_810C2F0: @ 810C2F0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, =TranslateAnimSpriteToTargetMonLocation
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C2F0
-
- thumb_func_start sub_810C324
-sub_810C324: @ 810C324
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C366
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0810C366:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r4, =gBattle_BG1_Y
- strh r1, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gWeatherFog1Tiles
- movs r2, 0x80
- lsls r2, 4
- mov r3, sp
- ldrh r3, [r3, 0xA]
- bl LoadBgTiles
- ldr r1, =gBattleAnimFogTilemap
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- ldr r0, =gUnknown_0854C270
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x26]
- ldr r1, =sub_810C3F0
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C324
-
- thumb_func_start sub_810C3F0
-sub_810C3F0: @ 810C3F0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, =gBattle_BG1_X
- ldr r3, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0x26]
- ldrh r5, [r2]
- adds r0, r5
- strh r0, [r2]
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- bls _0810C416
- b _0810C54A
-_0810C416:
- lsls r0, 2
- ldr r1, =_0810C42C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0810C42C:
- .4byte _0810C440
- .4byte _0810C484
- .4byte _0810C4A6
- .4byte _0810C4EA
- .4byte _0810C50C
-_0810C440:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, =gUnknown_08595C88
- movs r5, 0x1A
- ldrsh r0, [r4, r5]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- movs r0, 0x11
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0810C54A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x1E]
- b _0810C54A
- .pool
-_0810C484:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _0810C54A
- movs r0, 0x5
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _0810C54A
-_0810C4A6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0810C54A
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0810C54A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _0810C54A
-_0810C4EA:
- mov r0, sp
- bl sub_80A6B30
- movs r0, 0x1
- bl sub_80A6C68
- movs r0, 0x2
- bl sub_80A6C68
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_0810C50C:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C520
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_0810C520:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0810C54A:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C3F0
-
- thumb_func_start sub_810C560
-sub_810C560: @ 810C560
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6]
- strh r0, [r5, 0x2E]
- ldr r0, =gBattleAnimAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- ldr r7, =gBattleAnimTarget
- ldrb r0, [r7]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _0810C594
- movs r0, 0x80
- lsls r0, 8
- strh r0, [r5, 0x3C]
-_0810C594:
- ldr r3, =gBattlerPositions
- ldrb r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0810C5F4
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
- ldrh r0, [r6, 0x6]
- negs r0, r0
- strh r0, [r6, 0x6]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0810C5F0
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0810C5F0
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
-_0810C5F0:
- movs r0, 0x1
- strh r0, [r5, 0x3A]
-_0810C5F4:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r6, =gBattleAnimArgs
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0810C65C
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- b _0810C684
- .pool
-_0810C65C:
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x1
-_0810C684:
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x8]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldrb r0, [r4]
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 16
- ldrh r1, [r5, 0x3C]
- orrs r0, r1
- strh r0, [r5, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810C6B8
- movs r0, 0x1
- strh r0, [r5, 0x3A]
- adds r1, r5, 0
- adds r1, 0x43
- movs r0, 0x80
- strb r0, [r1]
-_0810C6B8:
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_810C6D4
- str r0, [r5, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C560
-
- thumb_func_start sub_810C6D4
-sub_810C6D4: @ 810C6D4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- movs r5, 0xFF
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x1
- beq _0810C7BC
- cmp r1, 0x1
- bgt _0810C6EE
- cmp r1, 0
- beq _0810C6F6
- b _0810C90C
-_0810C6EE:
- cmp r1, 0x2
- bne _0810C6F4
- b _0810C8D0
-_0810C6F4:
- b _0810C90C
-_0810C6F6:
- adds r0, r4, 0
- bl TranslateAnimLinear
- ldr r1, =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 4
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810C724
- ldrh r0, [r4, 0x38]
- subs r0, 0x8
- b _0810C728
- .pool
-_0810C724:
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
-_0810C728:
- ands r0, r5
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0810C736
- b _0810C90C
-_0810C736:
- movs r5, 0x50
- strh r5, [r4, 0x2E]
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x1D
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C78C
- ldr r1, =gBattlerPositions
- ldrb r0, [r6]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C78C
- movs r0, 0xCC
- strh r0, [r4, 0x38]
- b _0810C78E
- .pool
-_0810C78C:
- strh r5, [r4, 0x38]
-_0810C78E:
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 3
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- b _0810C90C
- .pool
-_0810C7BC:
- adds r0, r4, 0
- bl TranslateAnimLinear
- ldr r1, =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r0, 3
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- negs r0, r0
- asrs r0, 8
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C83A
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- adds r3, r1, 0
- cmp r0, 0x7F
- bhi _0810C81C
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- b _0810C824
- .pool
-_0810C81C:
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- adds r1, 0x1
-_0810C824:
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r3, 0x4
- b _0810C85A
-_0810C83A:
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _0810C84E
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x80
- b _0810C854
-_0810C84E:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x8C
-_0810C854:
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- subs r0, 0x4
-_0810C85A:
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _0810C90C
- movs r5, 0
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x4
- strh r0, [r4, 0x36]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810C8B4
- ldr r1, =gBattlerPositions
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C8B4
- movs r0, 0x80
- lsls r0, 1
- b _0810C8B6
- .pool
-_0810C8B4:
- ldr r0, =0x0000fff0
-_0810C8B6:
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl sub_80A6FD4
- b _0810C90C
- .pool
-_0810C8D0:
- adds r0, r4, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _0810C90C
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C8FE
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_0810C8FE:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0810C90C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810C6D4
-
- thumb_func_start sub_810C918
-sub_810C918: @ 810C918
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- ldr r0, =sub_810C934
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_810C918
-
- thumb_func_start sub_810C934
-sub_810C934: @ 810C934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _0810C978
- cmp r5, 0x1
- bgt _0810C95C
- cmp r5, 0
- beq _0810C962
- b _0810C9DC
- .pool
-_0810C95C:
- cmp r5, 0x2
- beq _0810C9CE
- b _0810C9DC
-_0810C962:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810C9DC
- strh r5, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0xC]
- b _0810C9B4
-_0810C978:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0810C9C8
- ldrb r0, [r4, 0xE]
- ldrb r1, [r4, 0xC]
- movs r3, 0x1
- bl sub_810C9E4
- lsls r0, 24
- cmp r0, 0
- beq _0810C998
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
-_0810C998:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0810C9C4
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0810C9BC
-_0810C9B4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0810C9DC
-_0810C9BC:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _0810C9DC
-_0810C9C4:
- strh r5, [r4, 0x12]
- b _0810C9DC
-_0810C9C8:
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- b _0810C9DC
-_0810C9CE:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810C9DC
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0810C9DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810C934
-
- thumb_func_start sub_810C9E4
-sub_810C9E4: @ 810C9E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r1, =gUnknown_08595CB4
- lsrs r0, 22
- adds r4, r0, r1
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- asrs r0, 28
- mov r8, r0
- cmp r0, 0x2
- beq _0810CAD0
- ldrh r0, [r4, 0x2]
- lsls r0, 20
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810CAD0
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r8
- cmp r1, 0
- beq _0810CA60
- cmp r1, 0x1
- beq _0810CA96
- b _0810CAE2
- .pool
-_0810CA60:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r0
- b _0810CACA
-_0810CA96:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- adds r1, r0
-_0810CACA:
- lsls r1, 16
- lsrs r6, r1, 16
- b _0810CAE2
-_0810CAD0:
- ldrh r0, [r4]
- lsls r0, 22
- asrs r0, 6
- lsrs r7, r0, 16
- ldr r0, [r4]
- lsls r0, 12
- asrs r0, 22
- lsls r0, 16
- lsrs r6, r0, 16
-_0810CAE2:
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, 0x8
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- ldr r0, =gUnknown_08595D2C
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- negs r2, r2
- movs r3, 0x12
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _0810CB44
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- adds r0, r4, 0
- mov r1, r9
- bl StartSpriteAffineAnim
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- strh r7, [r4, 0x34]
- strh r6, [r4, 0x36]
- mov r1, r9
- strh r1, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- mov r1, r10
- strh r1, [r4, 0x3C]
- movs r0, 0x1
- b _0810CB46
- .pool
-_0810CB44:
- movs r0, 0
-_0810CB46:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810C9E4
-
- thumb_func_start sub_810CB58
-sub_810CB58: @ 810CB58
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r2, r1, 0
- adds r2, 0x8
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0810CB82
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0810CC32
-_0810CB82:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _0810CC04
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810CC04
- ldr r0, =gUnknown_08595B68
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- movs r3, 0x36
- ldrsh r2, [r4, r3]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- cmp r0, 0x40
- beq _0810CBE6
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_810CC3C
- str r1, [r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3A]
- strh r1, [r0, 0x3A]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3C]
- strh r1, [r0, 0x3C]
-_0810CBE6:
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _0810CC32
- .pool
-_0810CC04:
- ldr r3, =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_0810CC32:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CB58
-
- thumb_func_start sub_810CC3C
-sub_810CC3C: @ 810CC3C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _0810CC7C
- ldr r3, =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_0810CC7C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CC3C
-
- thumb_func_start unc_080B06FC
-unc_080B06FC: @ 810CC88
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, =gAnimDisableStructPtr
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _0810CCA6
- movs r1, 0x4
-_0810CCA6:
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r6, =gBattleAnimArgs
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810CCCE
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_0810CCCE:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80A68D4
- ldr r0, =sub_810CD1C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unc_080B06FC
-
- thumb_func_start sub_810CD1C
-sub_810CD1C: @ 810CD1C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0810CD3E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_0810CD3E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CD1C
-
- thumb_func_start sub_810CD4C
-sub_810CD4C: @ 810CD4C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- bl Random2
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random2
- ldr r1, =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _0810CD92
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_0810CD92:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, =sub_810CDB0
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CD4C
-
- thumb_func_start sub_810CDB0
-sub_810CDB0: @ 810CDB0
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0810CDD4
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _0810CDD8
-_0810CDD4:
- lsls r0, r3, 16
- asrs r0, 24
-_0810CDD8:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0810CDF6
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0810CDF6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810CDB0
-
- thumb_func_start AnimTask_GetRolloutCounter
-AnimTask_GetRolloutCounter: @ 810CDFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleAnimArgs
- ldrb r3, [r1]
- lsls r3, 1
- adds r3, r1
- ldr r1, =gAnimDisableStructPtr
- ldr r1, [r1]
- ldrb r1, [r1, 0x11]
- lsrs r2, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r2, r1
- subs r2, 0x1
- strh r2, [r3]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_GetRolloutCounter
-
- thumb_func_start unc_080B08A0
-unc_080B08A0: @ 810CE2C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_80A6864
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0xF
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unc_080B08A0
-
- thumb_func_start sub_810CE68
-sub_810CE68: @ 810CE68
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0810CE90
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810CE90
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r4, 0x6]
-_0810CE90:
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80A7938
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CE68
-
- thumb_func_start sub_810CEB4
-sub_810CEB4: @ 810CEB4
- push {r4,lr}
- adds r4, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810CED0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_0810CED0:
- adds r0, r4, 0
- bl sub_810CE68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CEB4
-
- thumb_func_start sub_810CEE0
-sub_810CEE0: @ 810CEE0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x8]
- bl StartSpriteAnim
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810CF04
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- b _0810CF0C
- .pool
-_0810CF04:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A6980
-_0810CF0C:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CEE0
-
- thumb_func_start sub_810CF30
-sub_810CF30: @ 810CF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r9, r0
- cmp r1, 0
- bne _0810CF54
- ldr r0, =gBattleAnimAttacker
- b _0810CF56
- .pool
-_0810CF54:
- ldr r0, =gBattleAnimTarget
-_0810CF56:
- ldrb r0, [r0]
- mov r8, r0
- mov r4, r9
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _0810CF74
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x4]
-_0810CF74:
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- mov r0, r8
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- mov r0, r8
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- mov r0, r8
- movs r1, 0x1
- bl sub_80A861C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r6, r1, 16
- mov r0, r8
- movs r1, 0
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0810CFBE
- adds r0, 0x3
-_0810CFBE:
- lsls r4, r0, 14
- lsrs r4, 16
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random2
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _0810D000
- lsls r0, r6, 16
- negs r0, r0
- lsrs r6, r0, 16
-_0810D000:
- bl Random2
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _0810D012
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_0810D012:
- ldr r0, =gBattlerPositions
- add r0, r8
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0810D028
- lsls r0, r4, 16
- ldr r1, =0xfff00000
- adds r0, r1
- lsrs r4, r0, 16
-_0810D028:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- mov r1, r9
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, =gBasicHitSplatSpriteTemplate
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- adds r3, r5, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3C]
- cmp r0, 0x40
- beq _0810D08C
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r2, 0x3C
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, =SpriteCallbackDummy
- str r1, [r0]
-_0810D08C:
- ldr r0, =sub_810D0B8
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810CF30
-
- thumb_func_start sub_810D0B8
-sub_810D0B8: @ 810D0B8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0810D100
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- beq _0810D0F4
- ldr r4, =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_0810D0F4:
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _0810D104
- .pool
-_0810D100:
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
-_0810D104:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810D0B8
-
- thumb_func_start sub_810D10C
-sub_810D10C: @ 810D10C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- ldr r0, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810D130
- ldrh r0, [r4, 0x20]
- subs r0, 0x14
- strh r0, [r4, 0x32]
- b _0810D142
- .pool
-_0810D130:
- ldrh r0, [r4, 0x20]
- adds r0, 0x14
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_0810D142:
- ldrh r0, [r4, 0x22]
- subs r0, 0x14
- strh r0, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- ldr r1, =sub_810D164
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D10C
-
- thumb_func_start sub_810D164
-sub_810D164: @ 810D164
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0810D1A4
- ldrh r2, [r5, 0x20]
- ldrh r4, [r5, 0x24]
- subs r0, r2, r4
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x22]
- ldrh r3, [r5, 0x26]
- subs r0, r1, r3
- strh r0, [r5, 0x36]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- adds r2, r4
- strh r2, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x22]
- strh r6, [r5, 0x26]
- strh r6, [r5, 0x24]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_0810D1A4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D164
-
- thumb_func_start sub_810D1B4
-sub_810D1B4: @ 810D1B4
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- ldr r2, =gBattleAnimTarget
- eors r0, r1
- ldrb r1, [r2]
- cmp r0, r1
- bne _0810D1E0
- ldrb r0, [r2]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0810D1E0
- ldr r1, =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_0810D1E0:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810D1FE
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0810D1FE:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x6]
- movs r5, 0
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl InitAnimLinearTranslation
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x3A]
- strh r5, [r6, 0x3C]
- ldr r0, =sub_810D240
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D1B4
-
- thumb_func_start sub_810D240
-sub_810D240: @ 810D240
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- bne _0810D26C
- ldrh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- strh r0, [r4, 0x3C]
- b _0810D272
-_0810D26C:
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810D272:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D240
-
- thumb_func_start sub_810D278
-sub_810D278: @ 810D278
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r5, =gBattleAnimArgs
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =sub_810D2B0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D278
-
- thumb_func_start sub_810D2B0
-sub_810D2B0: @ 810D2B0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D2B0
-
- thumb_func_start sub_810D2E4
-sub_810D2E4: @ 810D2E4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, =sub_810D308
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D2E4
-
- thumb_func_start sub_810D308
-sub_810D308: @ 810D308
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810D34C
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =sub_810D360
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
-_0810D34C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D308
-
- thumb_func_start sub_810D360
-sub_810D360: @ 810D360
- push {lr}
- movs r1, 0xF
- strh r1, [r0, 0x2E]
- ldr r1, =sub_80A64B0
- str r1, [r0, 0x1C]
- ldr r1, =DestroyAnimSprite
- bl StoreSpriteCallbackInData6
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D360
-
- thumb_func_start sub_810D37C
-sub_810D37C: @ 810D37C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810D3A8
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810D404
- .pool
-_0810D3A8:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _0810D3F6
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0810D3F6:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _0810D404
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810D404:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D37C
-
- thumb_func_start sub_810D40C
-sub_810D40C: @ 810D40C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810D428
- ldr r4, =gBattleAnimAttacker
- b _0810D42A
- .pool
-_0810D428:
- ldr r4, =gBattleAnimTarget
-_0810D42A:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x4]
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- strh r2, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldr r0, =sub_810D47C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D40C
-
- thumb_func_start sub_810D47C
-sub_810D47C: @ 810D47C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _0810D48E
- cmp r2, 0x1
- beq _0810D4B2
- b _0810D4EC
-_0810D48E:
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _0810D4EC
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810D4AA
- adds r0, r1, 0
- bl DestroyAnimSprite
- b _0810D4EC
-_0810D4AA:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _0810D4EC
-_0810D4B2:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0810D4DA
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x34]
- adds r0, 0x1
- strh r0, [r1, 0x34]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- beq _0810D4D6
- movs r0, 0x2
- b _0810D4D8
-_0810D4D6:
- ldr r0, =0x0000fffe
-_0810D4D8:
- strh r0, [r1, 0x24]
-_0810D4DA:
- ldrh r0, [r1, 0x32]
- subs r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0810D4EC
- adds r0, r1, 0
- bl DestroyAnimSprite
-_0810D4EC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D47C
-
- thumb_func_start sub_810D4F4
-sub_810D4F4: @ 810D4F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0810D520
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x4]
- adds r0, r2
- b _0810D532
- .pool
-_0810D520:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
-_0810D532:
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, =gBattleAnimArgs
- movs r4, 0x2
- ldrsh r0, [r3, r4]
- lsls r0, 4
- adds r1, r0
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _0810D5A0
- cmp r0, 0x1
- bgt _0810D58C
- cmp r0, 0
- beq _0810D596
- b _0810D5C6
- .pool
-_0810D58C:
- cmp r0, 0x2
- beq _0810D5B0
- cmp r0, 0x3
- beq _0810D5C0
- b _0810D5C6
-_0810D596:
- ldr r0, =0x0000fffd
- b _0810D5C0
- .pool
-_0810D5A0:
- movs r0, 0x3
- strh r0, [r5, 0x3A]
- ldr r0, =0x0000fffd
- strh r0, [r5, 0x3C]
- b _0810D5CE
- .pool
-_0810D5B0:
- ldr r0, =0x0000fffd
- strh r0, [r5, 0x3A]
- movs r0, 0x3
- strh r0, [r5, 0x3C]
- b _0810D5CE
- .pool
-_0810D5C0:
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- b _0810D5CE
-_0810D5C6:
- adds r0, r5, 0
- bl DestroyAnimSprite
- b _0810D5D2
-_0810D5CE:
- ldr r0, =sub_810D5DC
- str r0, [r5, 0x1C]
-_0810D5D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D4F4
-
- thumb_func_start sub_810D5DC
-sub_810D5DC: @ 810D5DC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x3A]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x3C]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _0810D604
- adds r0, r1, 0
- bl DestroyAnimSprite
-_0810D604:
- pop {r0}
- bx r0
- thumb_func_end sub_810D5DC
-
- thumb_func_start sub_810D608
-sub_810D608: @ 810D608
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810D664
- ldr r4, =gBattlerAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, =gBattleAnimTarget
- b _0810D680
- .pool
-_0810D664:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, =gBattleAnimAttacker
-_0810D680:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r0, 0xC
- strh r0, [r5, 0x30]
- movs r0, 0x8
- strh r0, [r5, 0x32]
- ldr r0, =sub_810D6A8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D608
-
- thumb_func_start sub_810D6A8
-sub_810D6A8: @ 810D6A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB4
- bne _0810D704
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl InitAnimLinearTranslation
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A6F98
- str r0, [r4, 0x1C]
-_0810D704:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D6A8
-
- thumb_func_start sub_810D714
-sub_810D714: @ 810D714
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x20]
- movs r2, 0x78
- strh r2, [r5, 0x22]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- adds r0, 0x36
- adds r1, r5, 0
- adds r1, 0x38
- lsls r2, 8
- bl sub_80A8048
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, =sub_810D770
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D714
-
- thumb_func_start sub_810D770
-sub_810D770: @ 810D770
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _0810D7C2
- movs r2, 0x36
- ldrsh r0, [r7, r2]
- movs r2, 0x38
- ldrsh r1, [r7, r2]
- bl sub_80A8050
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- subs r4, r0
- adds r0, r7, 0
- adds r0, 0x36
- adds r1, r7, 0
- adds r1, 0x38
- adds r2, r4, 0
- bl sub_80A8048
- asrs r4, 8
- strh r4, [r7, 0x22]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x8
- negs r0, r0
- cmp r4, r0
- bge _0810D7BA
- adds r0, r7, 0
- bl DestroyAnimSprite
- b _0810D818
-_0810D7BA:
- ldrh r0, [r7, 0x2E]
- subs r0, 0x1
- strh r0, [r7, 0x2E]
- b _0810D818
-_0810D7C2:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r2, =gBattleAnimTarget
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- subs r4, r6
- strh r4, [r7, 0x2E]
- lsrs r0, 24
- subs r0, r5
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x20]
- lsls r0, 4
- strh r0, [r7, 0x32]
- ldrh r0, [r7, 0x22]
- lsls r0, 4
- strh r0, [r7, 0x34]
- ldr r0, =sub_810D830
- str r0, [r7, 0x1C]
-_0810D818:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D770
-
- thumb_func_start sub_810D830
-sub_810D830: @ 810D830
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _0810D86A
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _0810D86A
- cmp r1, 0x78
- ble _0810D870
-_0810D86A:
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0810D870:
- pop {r0}
- bx r0
- thumb_func_end sub_810D830
-
- thumb_func_start sub_810D874
-sub_810D874: @ 810D874
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810D8B8
- ldr r4, =gBattlerAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, =gBattleAnimTarget
- ldrb r4, [r0]
- ldr r0, =gBattleAnimAttacker
- b _0810D8BE
- .pool
-_0810D8B8:
- ldr r0, =gBattleAnimAttacker
- ldrb r4, [r0]
- ldr r0, =gBattleAnimTarget
-_0810D8BE:
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810D8F8
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- b _0810D912
- .pool
-_0810D8F8:
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810D918
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
-_0810D912:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
-_0810D918:
- movs r0, 0x10
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- adds r0, r4, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A6F98
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D874
-
- thumb_func_start sub_810D960
-sub_810D960: @ 810D960
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0810D976
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810D976:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D960
-
- thumb_func_start sub_810D984
-sub_810D984: @ 810D984
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1]
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x36]
- ldr r0, =gAnimMoveTurn
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810D9CE
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810D9CE:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _0810D9E2
- ldrh r0, [r5, 0x32]
- negs r0, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
-_0810D9E2:
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x32]
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x26]
- ldr r0, =sub_810D960
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810D984
-
- thumb_func_start sub_810DA10
-sub_810DA10: @ 810DA10
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810DA2C
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
- b _0810DA34
- .pool
-_0810DA2C:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A6980
-_0810DA34:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810DA48
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- b _0810DA5E
-_0810DA48:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810DA5E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0810DA5E:
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DA10
-
- thumb_func_start sub_810DA7C
-sub_810DA7C: @ 810DA7C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810DAB6
- ldrh r0, [r4, 0x30]
- adds r0, 0x28
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _0810DAB6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810DAB6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DA7C
-
- thumb_func_start sub_810DABC
-sub_810DABC: @ 810DABC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0810DAF4
- cmp r0, 0x1
- bgt _0810DB0E
- cmp r0, 0
- bne _0810DB0E
- movs r0, 0
- bl sub_80A6DAC
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x18]
- b _0810DB06
- .pool
-_0810DAF4:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810DB1A
-_0810DB06:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0810DB1A
-_0810DB0E:
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
-_0810DB1A:
- movs r2, 0xB0
- lsls r2, 4
- adds r0, r2, 0
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810DB50
- ldr r1, =gBattle_BG3_X
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r7, r1, 0
- b _0810DB60
- .pool
-_0810DB50:
- ldr r2, =gBattle_BG3_X
- ldrh r1, [r4, 0x1A]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r7, r2, 0
-_0810DB60:
- ldr r3, =gBattle_BG3_Y
- ldrh r2, [r4, 0x1C]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r0, 0xFF
- ldrb r1, [r4, 0x1A]
- movs r5, 0
- strh r1, [r4, 0x1A]
- ands r0, r2
- strh r0, [r4, 0x1C]
- ldr r0, =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0810DB98
- strh r5, [r7]
- strh r5, [r3]
- movs r0, 0x1
- bl sub_80A6DAC
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0810DB98:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DABC
-
- thumb_func_start sub_810DBAC
-sub_810DBAC: @ 810DBAC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810DBC2
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_0810DBC2:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =0x0000ffe2
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80A68D4
- ldr r0, =sub_810DC10
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DBAC
-
- thumb_func_start sub_810DC10
-sub_810DC10: @ 810DC10
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0810DC24
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810DC24:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DC10
-
- thumb_func_start sub_810DC2C
-sub_810DC2C: @ 810DC2C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810DC44
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_0810DC44:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- mov r6, sp
- adds r6, 0x2
- movs r1, 0x1
- mov r2, sp
- adds r3, r6, 0
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810DC72
- ldrh r0, [r5, 0x8]
- negs r0, r0
- strh r0, [r5, 0x8]
-_0810DC72:
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- mov r1, sp
- ldrh r0, [r5, 0x8]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r6, [r6]
- adds r0, r6
- strh r0, [r4, 0x36]
- ldr r0, =0x0000ffe2
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80A68D4
- ldr r0, =sub_810DCB4
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DC2C
-
- thumb_func_start sub_810DCB4
-sub_810DCB4: @ 810DCB4
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0810DCC8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810DCC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DCB4
-
- thumb_func_start sub_810DCD0
-sub_810DCD0: @ 810DCD0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A6E14
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x38]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x3A]
- ldr r0, =sub_810DD24
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DCD0
-
- thumb_func_start sub_810DD24
-sub_810DD24: @ 810DD24
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80A656C
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- subs r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810DD4A
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810DD4A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DD24
-
- thumb_func_start sub_810DD50
-sub_810DD50: @ 810DD50
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810DD7C
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_0810DD7C:
- ldr r0, =gBattleAnimArgs
- ldrh r2, [r0]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- ldrh r3, [r0, 0x8]
- strh r3, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- adds r2, r0
- strh r2, [r4, 0x32]
- adds r1, r3
- strh r1, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DD50
-
- thumb_func_start sub_810DDC4
-sub_810DDC4: @ 810DDC4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810DDE0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
- b _0810DE16
- .pool
-_0810DDE0:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810DE06
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_0810DE06:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_0810DE16:
- ldr r0, =sub_810DE2C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DDC4
-
- thumb_func_start sub_810DE2C
-sub_810DE2C: @ 810DE2C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810DE68
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810DE68:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DE2C
-
- thumb_func_start sub_810DE70
-sub_810DE70: @ 810DE70
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80A6980
- ldrh r0, [r4, 0x22]
- adds r0, 0x14
- strh r0, [r4, 0x22]
- movs r0, 0xBF
- strh r0, [r4, 0x30]
- ldr r1, =sub_810DE98
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DE70
-
- thumb_func_start sub_810DE98
-sub_810DE98: @ 810DE98
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x47
- bne _0810DED2
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810DED2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810DE98
-
- thumb_func_start sub_810DED8
-sub_810DED8: @ 810DED8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- ldr r0, =0x00002719
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldr r0, =sub_810DF18
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DED8
-
- thumb_func_start sub_810DF18
-sub_810DF18: @ 810DF18
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- adds r7, r2, 0
- cmp r0, r1
- bne _0810DF76
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrb r0, [r3, 0xC]
- ldr r2, =gPlttBufferFaded
- lsls r0, 4
- movs r3, 0x84
- lsls r3, 1
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r2
- ldrh r6, [r1]
- movs r4, 0x7
- mov r12, r0
- ldr r0, =0x00000107
- add r0, r12
- lsls r0, 1
- adds r3, r0, r2
-_0810DF5E:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0810DF5E
- ldr r0, =0x00000101
- add r0, r12
- lsls r0, 1
- adds r0, r2
- strh r6, [r0]
-_0810DF76:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _0810DF90
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0810DF90:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DF18
-
- thumb_func_start sub_810DFA8
-sub_810DFA8: @ 810DFA8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810DFC8
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0810DFC8:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_80A67BC
- str r0, [r6, 0x1C]
- ldr r1, =sub_810E028
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810DFA8
-
- thumb_func_start sub_810E028
-sub_810E028: @ 810E028
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _0810E03C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810E03C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810E028
-
- thumb_func_start sub_810E044
-sub_810E044: @ 810E044
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810E070
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_0810E070:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810E088
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_0810E088:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- ldrh r3, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x20]
- lsrs r0, 24
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x2E]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0810E0EC
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _0810E0FE
- .pool
-_0810E0EC:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl SetAverageBattlerPositions
-_0810E0FE:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- ldrh r3, [r5, 0x36]
- adds r0, r3
- strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E044
-
- thumb_func_start sub_810E13C
-sub_810E13C: @ 810E13C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, =sub_810E184
- str r0, [r4, 0x1C]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E13C
-
- thumb_func_start sub_810E184
-sub_810E184: @ 810E184
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _0810E198
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _0810E1AA
-_0810E198:
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
-_0810E1AA:
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0810E1C2
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0810E1C2:
- pop {r0}
- bx r0
- thumb_func_end sub_810E184
-
- thumb_func_start sub_810E1C8
-sub_810E1C8: @ 810E1C8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810E1F8
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldr r0, =0x0000ffe0
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _0810E1FE
- .pool
-_0810E1F8:
- ldr r0, =0x0000ffe0
- strh r0, [r5, 0x20]
- strh r0, [r5, 0x22]
-_0810E1FE:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl InitAnimLinearTranslation
- ldr r0, =sub_810E24C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E1C8
-
- thumb_func_start sub_810E24C
-sub_810E24C: @ 810E24C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl TranslateAnimLinear
- ldrh r1, [r4, 0x34]
- lsrs r0, r1, 8
- cmp r0, 0xC8
- bls _0810E274
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
-_0810E274:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bhi _0810E296
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- ble _0810E2BC
-_0810E296:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810E2BC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E24C
-
- thumb_func_start sub_810E2C8
-sub_810E2C8: @ 810E2C8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _0810E308
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810E2FA
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_0810E2FA:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0810E308:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E2C8
-
- thumb_func_start sub_810E314
-sub_810E314: @ 810E314
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r7, 0
- adds r5, 0x2E
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0xE]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0810E33C
- ldr r0, =gBattleAnimAttacker
- b _0810E33E
- .pool
-_0810E33C:
- ldr r0, =gBattleAnimTarget
-_0810E33E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810E354
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_0810E354:
- adds r0, r6, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldrh r1, [r4, 0x2]
- lsrs r0, 24
- adds r1, r0, r1
- strh r1, [r7, 0x22]
- lsls r1, 8
- strh r1, [r5, 0x8]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 1
- ldrh r2, [r5, 0xE]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0xE]
- ldrb r0, [r5]
- movs r2, 0x4
- mov r8, r2
- mov r1, r8
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r4, 0x4]
- ldrb r1, [r4, 0x4]
- strh r1, [r5, 0x2]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x4]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x6]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0xC]
- subs r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x7F
- bhi _0810E44A
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810E3F0
- adds r0, r6, 0
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r7, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- b _0810E408
- .pool
-_0810E3F0:
- adds r0, r6, 0
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
-_0810E408:
- ldrb r1, [r5, 0xE]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r5, 0xE]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0810E4AA
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- b _0810E4A2
-_0810E44A:
- adds r0, r6, 0
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- ldrb r0, [r5, 0xE]
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r5, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0810E4AA
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r4
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- mov r2, r8
- orrs r0, r2
-_0810E4A2:
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
-_0810E4AA:
- ldrh r1, [r5, 0x2]
- lsrs r1, 6
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r3, =gSineTable
- ldrh r0, [r5, 0x2]
- lsls r0, 1
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldrb r0, [r5, 0xC]
- muls r0, r1
- asrs r0, 8
- strh r0, [r7, 0x24]
- ldrb r2, [r7, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r7, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r5, [r5, 0xA]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r4, [r1]
- ldr r1, =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r4, [r2, 0x2]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldr r0, =sub_810E520
- str r0, [r7, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E314
-
- thumb_func_start sub_810E520
-sub_810E520: @ 810E520
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r6, 0
- adds r4, r5, 0
- adds r4, 0x2E
- ldrb r2, [r4]
- movs r7, 0x1
- movs r0, 0x1
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- beq _0810E55A
- ldrb r0, [r4, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- beq _0810E54E
- b _0810EA36
-_0810E54E:
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _0810EA36
-_0810E55A:
- ldrh r0, [r4, 0x2]
- lsrs r1, r0, 6
- mov r12, r0
- cmp r1, 0x1
- bne _0810E566
- b _0810E68A
-_0810E566:
- cmp r1, 0x1
- bgt _0810E570
- cmp r1, 0
- beq _0810E57E
- b _0810E97C
-_0810E570:
- cmp r1, 0x2
- bne _0810E576
- b _0810E77E
-_0810E576:
- cmp r1, 0x3
- bne _0810E57C
- b _0810E872
-_0810E57C:
- b _0810E97C
-_0810E57E:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _0810E592
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _0810E680
-_0810E592:
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _0810E5B4
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- strb r1, [r4]
- strb r6, [r4, 0x1]
- b _0810E680
-_0810E5B4:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0810E680
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810E672
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810E642
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E628
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E660
-_0810E628:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E660
-_0810E642:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E656
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _0810E65E
-_0810E656:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_0810E65E:
- strb r0, [r1]
-_0810E660:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_0810E672:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_0810E680:
- ldrb r1, [r4]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r4]
- b _0810E97C
-_0810E68A:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0
- bne _0810E698
- movs r0, 0x8
- orrs r0, r2
- b _0810E6A0
-_0810E698:
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _0810E6A8
- adds r0, r2, 0
-_0810E6A0:
- orrs r0, r7
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _0810E774
-_0810E6A8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0810E774
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810E766
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810E736
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E71C
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E754
-_0810E71C:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E754
-_0810E736:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E74A
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _0810E752
-_0810E74A:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_0810E752:
- strb r0, [r1]
-_0810E754:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_0810E766:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_0810E774:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x10
- b _0810E978
-_0810E77E:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _0810E78C
- movs r0, 0x8
- orrs r0, r2
- b _0810E794
-_0810E78C:
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _0810E79C
- adds r0, r2, 0
-_0810E794:
- orrs r0, r7
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _0810E868
-_0810E79C:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0810E868
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810E85A
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810E82A
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E810
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E848
-_0810E810:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E848
-_0810E82A:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E83E
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _0810E846
-_0810E83E:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_0810E846:
- strb r0, [r1]
-_0810E848:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_0810E85A:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_0810E868:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x20
- b _0810E978
-_0810E872:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _0810E882
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r4]
- b _0810E970
-_0810E882:
- lsrs r0, r1, 28
- cmp r0, 0
- bne _0810E8A4
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- strb r1, [r4]
- strb r6, [r4, 0x1]
- b _0810E970
-_0810E8A4:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0810E970
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldrb r1, [r4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810E962
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810E932
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E918
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E950
-_0810E918:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _0810E950
-_0810E932:
- ldrb r1, [r4, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0810E946
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- b _0810E94E
-_0810E946:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
-_0810E94E:
- strb r0, [r1]
-_0810E950:
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_0810E962:
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r1, [r4, 0x2]
- mov r12, r1
-_0810E970:
- ldrb r0, [r4]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x30
-_0810E978:
- orrs r1, r0
- strb r1, [r4]
-_0810E97C:
- ldrb r1, [r4]
- lsls r1, 30
- lsrs r1, 31
- adds r0, r4, 0
- adds r0, 0xC
- adds r0, r1
- ldrb r1, [r0]
- ldr r3, =gSineTable
- mov r2, r12
- lsls r0, r2, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r1, [r4, 0xA]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r6, [r1]
- ldr r1, =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r6, [r2, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x6]
- ldrh r2, [r4, 0x8]
- adds r0, r2
- strh r0, [r4, 0x8]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0810EA0C
- ldrh r0, [r4, 0x4]
- subs r1, 0x1
- ands r1, r0
- ldrh r0, [r4, 0x2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2]
- b _0810EA1C
- .pool
-_0810EA0C:
- ldrh r0, [r4, 0x4]
- ldr r1, =0x00007fff
- ands r1, r0
- ldrh r2, [r4, 0x2]
- adds r1, r2
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x2]
-_0810EA1C:
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- ldrh r0, [r4, 0xE]
- lsrs r0, 1
- cmp r1, r0
- blt _0810EA36
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, =sub_810E2C8
- str r0, [r5, 0x1C]
-_0810EA36:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810E520
-
- thumb_func_start sub_810EA4C
-sub_810EA4C: @ 810EA4C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8328
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, =TranslateAnimSpriteToTargetMonLocation
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810EA4C
-
- thumb_func_start sub_810EAA0
-sub_810EAA0: @ 810EAA0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810EABC
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A69CC
- b _0810EAC4
- .pool
-_0810EABC:
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A6980
-_0810EAC4:
- ldr r4, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0810EADC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810EAF2
-_0810EADC:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0810EAF8
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810EAF8
-_0810EAF2:
- ldrh r0, [r5, 0x20]
- adds r0, 0x8
- strh r0, [r5, 0x20]
-_0810EAF8:
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl SeekSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
- strh r0, [r5, 0x20]
- ldr r0, =0x00000ccc
- strh r0, [r5, 0x30]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- strh r1, [r5, 0x2E]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, =sub_810EB40
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810EAA0
-
- thumb_func_start sub_810EB40
-sub_810EB40: @ 810EB40
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0810EB6A
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl StartSpriteAnim
-_0810EB6A:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810EB82
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810EB82:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810EB40
-
- thumb_func_start sub_810EB88
-sub_810EB88: @ 810EB88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x8]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _0810EC02
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r5, 0xD
- negs r5, r5
- adds r1, r5, 0
- bl Sin
- ldr r4, =gBattleAnimArgs
- strh r0, [r4]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- adds r1, r5, 0
- bl Cos
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4, 0x4]
- movs r0, 0x3
- strh r0, [r4, 0x6]
- ldr r0, =gUnknown_085973E8
- mov r8, r0
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0x3
- bl CreateSpriteAndAnimate
-_0810EC02:
- ldrh r0, [r7, 0x8]
- adds r0, 0x8
- strh r0, [r7, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _0810EC16
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0810EC16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810EB88
-
- thumb_func_start sub_810EC34
-sub_810EC34: @ 810EC34
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810EC46
- cmp r0, 0x1
- beq _0810EC78
- b _0810EC8C
-_0810EC46:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A69CC
- movs r0, 0
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810EC8C
- .pool
-_0810EC78:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810EC8C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810EC8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810EC34
-
- thumb_func_start sub_810EC94
-sub_810EC94: @ 810EC94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0810ECCC
- cmp r0, 0x1
- bgt _0810ECAA
- cmp r0, 0
- beq _0810ECB0
- b _0810ED1E
-_0810ECAA:
- cmp r0, 0x2
- beq _0810ECE0
- b _0810ED1E
-_0810ECB0:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r4, 0x26]
- b _0810ECD8
- .pool
-_0810ECCC:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _0810ED1E
-_0810ECD8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810ED1E
-_0810ECE0:
- ldrh r0, [r4, 0x26]
- subs r0, 0xA
- strh r0, [r4, 0x26]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0810ED1E
- movs r0, 0
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810ED1E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810EC94
-
- thumb_func_start sub_810ED28
-sub_810ED28: @ 810ED28
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, =sub_810ED70
- str r0, [r4, 0x1C]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- ldr r2, =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810ED28
-
- thumb_func_start sub_810ED70
-sub_810ED70: @ 810ED70
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _0810ED84
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _0810EDC8
-_0810ED84:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _0810EDAA
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
- b _0810EDC8
-_0810EDAA:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _0810EDC8
- ldr r0, =sub_810EDD0
- str r0, [r2, 0x1C]
-_0810EDC8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810ED70
-
- thumb_func_start sub_810EDD0
-sub_810EDD0: @ 810EDD0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _0810EE00
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_0810EE00:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _0810EE0E
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0810EE0E:
- pop {r0}
- bx r0
- thumb_func_end sub_810EDD0
-
- thumb_func_start sub_810EE14
-sub_810EE14: @ 810EE14
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810EE28
- cmp r0, 0x1
- beq _0810EE80
- b _0810EEEC
-_0810EE28:
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _0810EE40
- ldr r4, =gBattleAnimAttacker
- b _0810EE42
- .pool
-_0810EE40:
- ldr r4, =gBattleAnimTarget
-_0810EE42:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- movs r3, 0x80
- lsls r3, 2
- strh r3, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A73E0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0810EEEC
- .pool
-_0810EE80:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0xB
- bgt _0810EE8E
- ldrh r0, [r5, 0x30]
- subs r0, 0x28
- b _0810EE92
-_0810EE8E:
- ldrh r0, [r5, 0x30]
- adds r0, 0x28
-_0810EE92:
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x30
- ldrsh r3, [r5, r0]
- str r1, [sp]
- adds r0, r5, 0
- bl sub_80A73E0
- ldrb r1, [r5, 0x3]
- lsls r1, 26
- lsrs r1, 27
- movs r0, 0xF4
- lsls r0, 6
- ldr r2, =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- adds r1, r0, 0x1
- cmp r1, 0x80
- ble _0810EECC
- movs r1, 0x80
-_0810EECC:
- movs r0, 0x40
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r1, r0, 1
- strh r1, [r5, 0x26]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x18
- bne _0810EEEC
- adds r0, r5, 0
- bl sub_80A749C
- adds r0, r5, 0
- bl DestroyAnimSprite
-_0810EEEC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810EE14
-
- thumb_func_start sub_810EEF8
-sub_810EEF8: @ 810EEF8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random2
- ldr r4, =0x000001ff
- ands r4, r0
- bl Random2
- movs r1, 0x7F
- ands r1, r0
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0810EF20
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r4, r2
- b _0810EF28
- .pool
-_0810EF20:
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r4
-_0810EF28:
- strh r0, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810EF3C
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- adds r0, r1, r0
- b _0810EF44
-_0810EF3C:
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r1
-_0810EF44:
- strh r0, [r5, 0x30]
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- beq _0810EF60
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
-_0810EF60:
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0810EF74
- ldr r4, =gBattleAnimAttacker
- b _0810EF76
- .pool
-_0810EF74:
- ldr r4, =gBattleAnimTarget
-_0810EF76:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x22]
- ldr r0, =sub_810EFA8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810EEF8
-
- thumb_func_start sub_810EFA8
-sub_810EFA8: @ 810EFA8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810EFC0
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _0810EFCA
-_0810EFC0:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_0810EFCA:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- strh r3, [r4, 0x2E]
- adds r0, r2, 0
- subs r0, 0x20
- strh r0, [r4, 0x30]
- lsls r0, r3, 16
- cmp r0, 0
- bge _0810EFEA
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0810EFEA:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0810EFFE
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810EFFE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810EFA8
-
- thumb_func_start sub_810F004
-sub_810F004: @ 810F004
- movs r1, 0
- strh r1, [r0, 0x3A]
- movs r1, 0x40
- strh r1, [r0, 0x3C]
- ldr r1, =sub_810F018
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_810F004
-
- thumb_func_start sub_810F018
-sub_810F018: @ 810F018
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _0810F02A
- cmp r1, 0x1
- beq _0810F078
- b _0810F07E
-_0810F02A:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0810F07E
- strh r1, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- 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
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0810F07E
- ldrb r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810F07E
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _0810F07E
-_0810F078:
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0810F07E:
- pop {r0}
- bx r0
- thumb_func_end sub_810F018
-
- thumb_func_start sub_810F084
-sub_810F084: @ 810F084
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- ldrh r4, [r0, 0x20]
- ldrh r5, [r0, 0x22]
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r2, r8
- strh r6, [r2, 0x22]
- ldrh r0, [r2, 0x20]
- mov r9, r0
- mov r1, r9
- lsls r0, r1, 4
- strh r0, [r2, 0x36]
- lsls r0, r6, 4
- strh r0, [r2, 0x38]
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- subs r0, r4, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3A]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- subs r0, r5, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- subs r5, r6
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_80A73E0
- ldr r0, =sub_810F140
- mov r2, r8
- str r0, [r2, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F084
-
- thumb_func_start sub_810F140
-sub_810F140: @ 810F140
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x3C]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x2D
- lsls r0, 16
- movs r1, 0xA5
- lsls r1, 17
- cmp r0, r1
- bhi _0810F17A
- adds r1, r3, 0
- cmp r1, 0x9D
- bgt _0810F17A
- movs r0, 0x2D
- negs r0, r0
- cmp r1, r0
- bge _0810F180
-_0810F17A:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_0810F180:
- pop {r0}
- bx r0
- thumb_func_end sub_810F140
-
- thumb_func_start sub_810F184
-sub_810F184: @ 810F184
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810F1BC
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- b _0810F1DA
- .pool
-_0810F1BC:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_0810F1DA:
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F184
-
- thumb_func_start sub_810F1EC
-sub_810F1EC: @ 810F1EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810F212
- mov r0, r8
- cmp r0, 0
- beq _0810F22E
-_0810F212:
- ldrb r1, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r5, 0x5]
- adds r1, r5, 0
- adds r1, 0x43
- movs r0, 0xC8
- strb r0, [r1]
- mov r1, r8
- cmp r1, 0
- bne _0810F2B8
-_0810F22E:
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r6, r1, 31
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F264
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- bl sub_80A438C
-_0810F264:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r7
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F284
- movs r0, 0x1
- eors r6, r0
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- bl sub_80A438C
-_0810F284:
- mov r0, r8
- cmp r0, 0
- bne _0810F2B8
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0810F2B8
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810F2B0
- movs r0, 0x48
- strh r0, [r5, 0x20]
- movs r0, 0x50
- b _0810F2F2
- .pool
-_0810F2B0:
- movs r0, 0xB0
- strh r0, [r5, 0x20]
- movs r0, 0x28
- b _0810F2F2
-_0810F2B8:
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810F2CE
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_0810F2CE:
- ldrb r0, [r6]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
-_0810F2F2:
- strh r0, [r5, 0x22]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r5, 0x2E]
- mov r0, r8
- cmp r0, 0
- beq _0810F32C
- ldrh r0, [r5, 0x22]
- adds r0, 0x9
- strh r0, [r5, 0x22]
- ldr r1, =sub_810F3C8
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- b _0810F330
- .pool
-_0810F32C:
- ldr r0, =sub_810F340
- str r0, [r5, 0x1C]
-_0810F330:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F1EC
-
- thumb_func_start sub_810F340
-sub_810F340: @ 810F340
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810F35C
- movs r0, 0x1
- strh r0, [r5, 0x3C]
- b _0810F3B6
-_0810F35C:
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F382
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0810F382:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F3AC
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0810F3AC:
- ldr r1, =sub_810F3C8
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
-_0810F3B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F340
-
- thumb_func_start sub_810F3C8
-sub_810F3C8: @ 810F3C8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bne _0810F3F4
- ldr r0, =sub_810F400
- str r0, [r4, 0x1C]
- b _0810F3F8
- .pool
-_0810F3F4:
- adds r0, r1, 0x1
- strh r0, [r4, 0x34]
-_0810F3F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810F3C8
-
- thumb_func_start sub_810F400
-sub_810F400: @ 810F400
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0810F45E
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r4, [r3, 0x2E]
- ldr r1, =gPlttBufferFaded
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- movs r5, 0x8
- adds r6, r1, 0
- adds r1, r4, 0x7
- lsls r0, r4, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- lsls r1, 1
- adds r1, r6
-_0810F436:
- ldrh r0, [r1]
- strh r0, [r2]
- subs r1, 0x2
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bgt _0810F436
- adds r0, r4, 0x1
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0810F45E
- ldr r0, =sub_810F46C
- str r0, [r3, 0x1C]
-_0810F45E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F400
-
- thumb_func_start sub_810F46C
-sub_810F46C: @ 810F46C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810F512
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810F502
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F4D4
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0810F4D4:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r6
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F502
- ldr r2, =gSprites
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0810F502:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_810F524
- str r0, [r5, 0x1C]
-_0810F512:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F46C
-
- thumb_func_start sub_810F524
-sub_810F524: @ 810F524
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810F57C
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F562
- adds r0, r5, 0
- bl sub_80A477C
-_0810F562:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0810F57C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_80A477C
-_0810F57C:
- ldr r0, =DestroyAnimSprite
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F524
-
- thumb_func_start sub_810F58C
-sub_810F58C: @ 810F58C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810F618
- ldr r5, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- movs r6, 0
- cmp r0, 0
- bne _0810F5A6
- movs r6, 0x1
-_0810F5A6:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0810F5EE
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0810F5EE
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0810F5E0
- ldrh r0, [r5]
- movs r1, 0x48
- subs r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x50
- strh r0, [r4, 0x22]
- b _0810F610
- .pool
-_0810F5E0:
- ldrh r0, [r5]
- adds r0, 0xB0
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x28
- strh r0, [r4, 0x22]
- b _0810F610
-_0810F5EE:
- ldr r0, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810F608
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80A69CC
- b _0810F610
- .pool
-_0810F608:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80A6980
-_0810F610:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810F62C
-_0810F618:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0810F62C
- adds r0, r4, 0
- bl move_anim_8074EE0
-_0810F62C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810F58C
-
- thumb_func_start sub_810F634
-sub_810F634: @ 810F634
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0810F684
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xA
- strh r0, [r5, 0x22]
- ldr r0, =0x0000ffff
- b _0810F692
- .pool
-_0810F684:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- subs r0, 0xA
- strh r0, [r5, 0x22]
- movs r0, 0x1
-_0810F692:
- strh r0, [r5, 0x30]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F634
-
- thumb_func_start sub_810F6B0
-sub_810F6B0: @ 810F6B0
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_80A861C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r4, r1, 16
- ldrb r0, [r6]
- movs r1, 0
- bl sub_80A861C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- negs r1, r1
- lsls r1, 16
- lsrs r7, r1, 16
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810F6F6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_0810F6F6:
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0810F722
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_0810F722:
- ldr r1, =sub_810F740
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67D8
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F6B0
-
- thumb_func_start sub_810F740
-sub_810F740: @ 810F740
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, =gUnknown_08596740
- str r0, [r4, 0x10]
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldr r0, =sub_810F774
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F740
-
- thumb_func_start sub_810F774
-sub_810F774: @ 810F774
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810F786
- cmp r0, 0x1
- beq _0810F7B4
- b _0810F7CC
-_0810F786:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810F7CC
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x12
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0810F7CC
-_0810F7B4:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0810F7CC
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810F7CC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810F774
-
- thumb_func_start sub_810F7D4
-sub_810F7D4: @ 810F7D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, =gUnknown_0859675C
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_810F810
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F7D4
-
- thumb_func_start sub_810F810
-sub_810F810: @ 810F810
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- bl sub_80A7D34
- lsls r0, 24
- cmp r0, 0
- bne _0810F830
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_0810F830:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F810
-
- thumb_func_start sub_810F83C
-sub_810F83C: @ 810F83C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _0810F870
- movs r1, 0x4
-_0810F870:
- strh r1, [r4, 0xE]
- ldrb r1, [r4, 0x8]
- ldr r2, =gUnknown_0859677C
- adds r0, r4, 0
- bl sub_80A7CFC
- ldr r0, =sub_810F898
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F83C
-
- thumb_func_start sub_810F898
-sub_810F898: @ 810F898
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810F8BC
- cmp r0, 0x1
- beq _0810F8D8
- b _0810F936
- .pool
-_0810F8BC:
- adds r0, r4, 0
- bl sub_80A7D34
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0810F936
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _0810F936
-_0810F8D8:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810F900
- ldr r2, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _0810F936
- .pool
-_0810F900:
- ldr r3, =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- ldrb r0, [r4, 0x8]
- bl sub_80A7344
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0810F936:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F898
-
- thumb_func_start sub_810F940
-sub_810F940: @ 810F940
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- movs r1, 0
- movs r0, 0x10
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4]
- movs r1, 0
- bl sub_80A861C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, r6
- bcs _0810F9AA
- adds r1, r6, 0
-_0810F9AA:
- strh r1, [r5, 0x20]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldr r0, =sub_810F9D4
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810F940
-
- thumb_func_start sub_810F9D4
-sub_810F9D4: @ 810F9D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0810FAD4
- cmp r1, 0x1
- bgt _0810F9FC
- cmp r1, 0
- beq _0810FA0A
- b _0810FB5A
- .pool
-_0810F9FC:
- cmp r1, 0x2
- bne _0810FA02
- b _0810FB36
-_0810FA02:
- cmp r1, 0x3
- bne _0810FA08
- b _0810FB44
-_0810FA08:
- b _0810FB5A
-_0810FA0A:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bgt _0810FA1A
- b _0810FB5A
-_0810FA1A:
- strh r1, [r4, 0xA]
- ldr r0, =gUnknown_08596794
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- adds r1, 0x8
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- strh r2, [r0]
- cmp r2, 0x40
- beq _0810FABE
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0810FA78
- cmp r0, 0x1
- bgt _0810FA5C
- cmp r0, 0
- beq _0810FA66
- b _0810FABE
- .pool
-_0810FA5C:
- cmp r0, 0x2
- beq _0810FA90
- cmp r0, 0x3
- beq _0810FAA8
- b _0810FABE
-_0810FA66:
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- b _0810FAB6
- .pool
-_0810FA78:
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- b _0810FABC
- .pool
-_0810FA90:
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x26]
- b _0810FABE
- .pool
-_0810FAA8:
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_0810FAB6:
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_0810FABC:
- strh r0, [r1, 0x26]
-_0810FABE:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810FB5A
- b _0810FB36
- .pool
-_0810FAD4:
- ldrh r0, [r4, 0xA]
- ands r1, r0
- cmp r1, 0
- beq _0810FAE4
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _0810FAEA
-_0810FAE4:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_0810FAEA:
- ldrh r1, [r4, 0x10]
- lsls r1, 8
- ldrh r0, [r4, 0xE]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _0810FB5A
- movs r5, 0x8
- adds r6, r4, 0
- adds r6, 0x8
-_0810FB10:
- lsls r0, r5, 1
- adds r1, r6, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x40
- beq _0810FB2C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
-_0810FB2C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xC
- bls _0810FB10
-_0810FB36:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0810FB5A
- .pool
-_0810FB44:
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0810FB5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810F9D4
-
- thumb_func_start sub_810FB60
-sub_810FB60: @ 810FB60
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _0810FB8A
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0810FB8A:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0810FB9C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0810FB9C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810FB60
-
- thumb_func_start sub_810FBA8
-sub_810FBA8: @ 810FBA8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0810FBD4
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0810FBD4:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, =sub_810FB60
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810FBA8
-
- thumb_func_start sub_810FBF0
-sub_810FBF0: @ 810FBF0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0810FC94
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0810FC60
- ldr r0, =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x8
- b _0810FD1E
- .pool
-_0810FC60:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A861C
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x8
- b _0810FD12
- .pool
-_0810FC94:
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0810FCE8
- ldr r0, =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x8
- b _0810FD1E
- .pool
-_0810FCE8:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A861C
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x8
-_0810FD12:
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A861C
- subs r0, 0x8
-_0810FD1E:
- strh r0, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0xA]
- ldr r0, =sub_810FD3C
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810FBF0
-
- thumb_func_start sub_810FD3C
-sub_810FD3C: @ 810FD3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _0810FD60
- cmp r1, 0x1
- beq _0810FDD4
- b _0810FDE8
- .pool
-_0810FD60:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0810FDE8
- strh r1, [r5, 0xA]
- ldr r0, =gUnknown_08596864
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- movs r3, 0x20
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0810FDB4
- ldr r0, =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x22]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x36]
- ldrh r0, [r5, 0x1C]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80A68D4
- ldrb r0, [r5, 0xC]
- movs r1, 0x3
- ands r1, r0
- adds r0, r4, 0
- bl StartSpriteAffineAnim
-_0810FDB4:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _0810FDE8
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0810FDE8
- .pool
-_0810FDD4:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _0810FDE8
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0810FDE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810FD3C
-
- thumb_func_start sub_810FDF0
-sub_810FDF0: @ 810FDF0
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0810FE0E
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_0810FE0E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810FDF0
-
- thumb_func_start sub_810FE14
-sub_810FE14: @ 810FE14
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- subs r0, 0x20
- strh r0, [r4, 0x24]
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x1
- beq _0810FE6A
- cmp r0, 0x1
- bgt _0810FE58
- cmp r0, 0
- beq _0810FE5E
- b _0810FE86
- .pool
-_0810FE58:
- cmp r0, 0x2
- beq _0810FE76
- b _0810FE86
-_0810FE5E:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _0810FE7E
-_0810FE6A:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- b _0810FE7E
-_0810FE76:
- movs r0, 0x4
- strh r0, [r4, 0x1E]
- strh r0, [r4, 0x20]
- movs r0, 0
-_0810FE7E:
- strh r0, [r4, 0x22]
- adds r0, r1, 0
- adds r0, 0x20
- strh r0, [r4, 0x26]
-_0810FE86:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0810FE92
- movs r0, 0
- strh r0, [r4, 0x24]
-_0810FE92:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810FEB8
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, =0x04000014
- b _0810FEC0
- .pool
-_0810FEB8:
- ldr r0, =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, =0x04000018
-_0810FEC0:
- str r0, [sp]
- ldrh r1, [r4, 0x24]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- bgt _0810FEFA
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0810FEDA:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1C]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- ble _0810FEDA
-_0810FEFA:
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldr r0, =sub_810FF34
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_810FE14
-
- thumb_func_start sub_810FF34
-sub_810FF34: @ 810FF34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0811000E
- cmp r0, 0x1
- bgt _0810FF60
- cmp r0, 0
- beq _0810FF66
- b _08110026
- .pool
-_0810FF60:
- cmp r0, 0x2
- beq _08110020
- b _08110026
-_0810FF66:
- ldrh r3, [r5, 0x22]
- ldrh r4, [r5, 0x24]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bgt _0810FFFE
- ldr r0, =gSineTable
- mov r9, r0
- movs r7, 0x3
- ldr r1, =gScanlineEffectRegBuffers
- mov r12, r1
- movs r2, 0xF0
- lsls r2, 3
- add r2, r12
- mov r8, r2
-_0810FF88:
- lsls r2, r3, 16
- asrs r0, r2, 15
- add r0, r9
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r3, 0x20
- ldrsh r1, [r5, r3]
- asrs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r3, r0, 16
- adds r6, r2, 0
- cmp r3, 0
- ble _0810FFB8
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- adds r0, r3, r0
- b _0810FFC4
- .pool
-_0810FFB8:
- cmp r3, 0
- bge _0810FFC8
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- subs r0, r3, r0
-_0810FFC4:
- lsls r0, 16
- lsrs r1, r0, 16
-_0810FFC8:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- mov r0, r12
- adds r4, r3, r0
- ldrh r0, [r5, 0x1C]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1, r0
- strh r0, [r4]
- add r3, r8
- ldrh r0, [r5, 0x1C]
- adds r1, r0
- strh r1, [r3]
- asrs r0, r6, 16
- ldrh r1, [r5, 0x1E]
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r2, r0
- ble _0810FF88
-_0810FFFE:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _08110026
- b _08110014
-_0811000E:
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_08110014:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _08110026
- .pool
-_08110020:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08110026:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FF34
-
- thumb_func_start sub_8110034
-sub_8110034: @ 8110034
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r7, r0, r1
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r5
- adds r6, r5, 0
- cmp r6, 0xFF
- bne _0811006C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _08110116
- .pool
-_0811006C:
- ldr r1, =gBattleAnimArgs
- ldrb r0, [r1]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r0, 16
- cmp r0, 0
- bge _08110094
- adds r0, r5, 0
- bl FreeOamMatrix
- mov r0, r8
- bl DestroyAnimVisualTask
- b _08110116
- .pool
-_08110094:
- ldr r2, =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r2, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, =SpriteCallbackDummy
- str r1, [r0]
- adds r4, r2
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- ldr r1, =gBattleAnimArgs
- ldrb r0, [r1]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r0, r10
- strh r0, [r7, 0x24]
- mov r1, r9
- strh r1, [r7, 0x26]
- ldr r0, =sub_8110134
- str r0, [r7]
-_08110116:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110034
-
- thumb_func_start sub_8110134
-sub_8110134: @ 8110134
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _081101B8
- cmp r0, 0x1
- bgt _0811015C
- cmp r0, 0
- beq _08110166
- b _08110238
- .pool
-_0811015C:
- cmp r0, 0x2
- beq _08110208
- cmp r0, 0x3
- beq _08110228
- b _08110238
-_08110166:
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80A7EC0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x30
- bne _08110238
- b _0811021A
- .pool
-_081101B8:
- ldrh r0, [r4, 0xA]
- subs r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_80A7EC0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08110238
- b _0811021A
- .pool
-_08110208:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_0811021A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08110238
- .pool
-_08110228:
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl FreeOamMatrix
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08110238:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8110134
-
- thumb_func_start sub_8110240
-sub_8110240: @ 8110240
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _081102B8
- cmp r0, 0x1
- bgt _08110256
- cmp r0, 0
- beq _08110260
- b _08110360
-_08110256:
- cmp r0, 0x2
- beq _081102EA
- cmp r0, 0x3
- beq _0811034A
- b _08110360
-_08110260:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0811028E
- ldrh r0, [r5, 0x22]
- adds r0, 0xC
- strh r0, [r5, 0x22]
-_0811028E:
- movs r0, 0x8
- strh r0, [r5, 0x30]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r0, [r5, 0x30]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _081102E2
- .pool
-_081102B8:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08110360
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_081102E2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _08110360
-_081102EA:
- ldrh r0, [r5, 0x32]
- adds r1, r0, 0x1
- strh r1, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811032E
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r1, 0x1
- strh r1, [r5, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0811032E
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0811032E:
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r0, 0
- ldrh r1, [r5, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r5, 0x26]
- subs r0, r1
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r5, 0x34]
- b _08110360
-_0811034A:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimSprite
-_08110360:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8110240
-
- thumb_func_start sub_8110368
-sub_8110368: @ 8110368
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08110394
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x4]
- negs r1, r1
- strh r1, [r0, 0x4]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
- b _081103C4
- .pool
-_08110394:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _081103C4
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_081103C4:
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r6, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110368
-
- thumb_func_start sub_8110438
-sub_8110438: @ 8110438
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0811045C
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08110478
- .pool
-_0811045C:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08110478
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
-_08110478:
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- ldr r4, =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r6, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110438
-
- thumb_func_start sub_81104E4
-sub_81104E4: @ 81104E4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08110500
- ldr r0, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r0, 0x4]
-_08110500:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08110548
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _0811055A
- .pool
-_08110548:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl SetAverageBattlerPositions
-_0811055A:
- adds r0, r5, 0
- bl sub_80A6FD4
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x38]
- ldr r0, =sub_811057C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81104E4
-
- thumb_func_start sub_811057C
-sub_811057C: @ 811057C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08110592
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _081105AE
-_08110592:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0xD
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
-_081105AE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811057C
-
- thumb_func_start sub_81105B4
-sub_81105B4: @ 81105B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081105F0
- ldr r0, =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _081105FC
- .pool
-_081105F0:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_081105FC:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08110618
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_08110618:
- ldr r0, =sub_8110630
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81105B4
-
- thumb_func_start sub_8110630
-sub_8110630: @ 8110630
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08110664
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- 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
- mov r1, r12
- strb r0, [r1]
-_08110664:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08110678
- adds r0, r3, 0
- bl DestroyAnimSprite
-_08110678:
- pop {r0}
- bx r0
- thumb_func_end sub_8110630
-
- thumb_func_start sub_811067C
-sub_811067C: @ 811067C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldr r0, =sub_81106A4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811067C
-
- thumb_func_start sub_81106A4
-sub_81106A4: @ 81106A4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x13
- bgt _081106B8
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
- b _081106F6
-_081106B8:
- ldrh r1, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081106F6
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081106F6
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_8110700
- str r0, [r4, 0x1C]
-_081106F6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81106A4
-
- thumb_func_start sub_8110700
-sub_8110700: @ 8110700
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8110700
-
- thumb_func_start sub_8110720
-sub_8110720: @ 8110720
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08110740
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _08110762
- .pool
-_08110740:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08110762
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_08110762:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081107B2
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _081107B2
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- beq _081107A0
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081107B2
-_081107A0:
- ldr r0, =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x4]
- movs r2, 0
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0]
-_081107B2:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r4, r0, 0
- lsls r4, 24
- ldr r6, =gBattleAnimArgs
- lsrs r4, 24
- ldrh r0, [r6, 0x4]
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r6, 0x6]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r7, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r7, 0x22]
- lsrs r5, r1, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_80A73E0
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0x2E]
- strh r4, [r7, 0x32]
- strh r5, [r7, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r7, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r7, 0
- bl StoreSpriteCallbackInData6
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110720
-
- thumb_func_start sub_8110850
-sub_8110850: @ 8110850
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08110870
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_08110870:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80A68D4
- ldr r0, =sub_81108CC
- str r0, [r6, 0x1C]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110850
-
- thumb_func_start sub_81108CC
-sub_81108CC: @ 81108CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _081108F8
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _08110988
-_081108F8:
- movs r0, 0x2E
- adds r0, r4
- mov r8, r0
- ldrh r7, [r4, 0x20]
- ldrh r5, [r4, 0x24]
- ldrh r1, [r4, 0x22]
- mov r12, r1
- ldrh r6, [r4, 0x26]
- mov r2, r8
- add r1, sp, 0x4
- movs r3, 0x7
-_0811090E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _0811090E
- adds r0, r7, r5
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- bne _08110988
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r1, r5, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r1, r2
- lsls r2, r6, 16
- asrs r2, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl ArcTan2Neg
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_80A73E0
- add r2, sp, 0x4
- mov r1, r8
- movs r3, 0x7
-_0811097A:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _0811097A
-_08110988:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81108CC
-
- thumb_func_start sub_8110994
-sub_8110994: @ 8110994
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081109B0
- ldr r4, =gBattleAnimAttacker
- b _081109B2
- .pool
-_081109B0:
- ldr r4, =gBattleAnimTarget
-_081109B2:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x12
- strh r0, [r5, 0x22]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110994
-
- thumb_func_start sub_81109F0
-sub_81109F0: @ 81109F0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _08110A10
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl SetAverageBattlerPositions
-_08110A10:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r4, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xE
- strh r0, [r5, 0x22]
- ldrb r1, [r6, 0x2]
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- strh r4, [r5, 0x2E]
- strh r4, [r5, 0x30]
- movs r0, 0x4
- strh r0, [r5, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, =0x0000ffba
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x38]
- ldr r1, =sub_8110A70
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r1, =sub_80A6450
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81109F0
-
- thumb_func_start sub_8110A70
-sub_8110A70: @ 8110A70
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x20]
- adds r0, r1, r2
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x4
- strh r0, [r4, 0x32]
- movs r0, 0x20
- strh r0, [r4, 0x34]
- ldr r0, =0x0000ffe8
- strh r0, [r4, 0x36]
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, =sub_80A6450
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110A70
-
- thumb_func_start sub_8110AB4
-sub_8110AB4: @ 8110AB4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0xA]
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08110AE4
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _08110AEA
- .pool
-_08110AE4:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_08110AEA:
- strh r0, [r5, 0x20]
- ldr r3, =gBattleAnimArgs
- ldrh r2, [r3, 0x2]
- ldrh r0, [r5, 0x22]
- adds r2, r0
- movs r4, 0
- strh r2, [r5, 0x22]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldrh r0, [r3, 0x6]
- adds r2, r0
- strh r2, [r5, 0x36]
- adds r0, r5, 0
- bl sub_80A6E14
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, =sub_80A656C
- str r0, [r5, 0x1C]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110AB4
-
- thumb_func_start sub_8110B38
-sub_8110B38: @ 8110B38
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08110B54
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
- b _08110B5C
- .pool
-_08110B54:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A6980
-_08110B5C:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, =sub_8110B80
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110B38
-
- thumb_func_start sub_8110B80
-sub_8110B80: @ 8110B80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08110BC6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08110BC6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8110B80
-
- thumb_func_start AnimTask_LoadSandstormBackground
-AnimTask_LoadSandstormBackground: @ 8110BCC
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08110C10
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_08110C10:
- ldr r0, =gBattle_BG1_X
- strh r5, [r0]
- ldr r4, =gBattle_BG1_Y
- strh r5, [r4]
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x16
- bl SetGpuReg
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08D8D58C
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r1, =gUnknown_08D8D410
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- ldr r0, =gBattleAnimSpritePalette_261
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08110C6E
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08110C6E
- movs r5, 0x1
-_08110C6E:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x8]
- ldr r0, =sub_8110CB0
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_LoadSandstormBackground
-
- thumb_func_start sub_8110CB0
-sub_8110CB0: @ 8110CB0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0
- bne _08110CE4
- ldr r1, =gBattle_BG1_X
- ldr r3, =0x0000fffa
- adds r0, r3, 0
- ldrh r3, [r1]
- adds r0, r3
- b _08110CEA
- .pool
-_08110CE4:
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x6
-_08110CEA:
- strh r0, [r1]
- ldr r1, =gBattle_BG1_Y
- ldr r3, =0x0000ffff
- adds r0, r3, 0
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- movs r3, 0x20
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _08110D0C
- b _08110E3A
-_08110D0C:
- lsls r0, 2
- ldr r1, =_08110D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08110D28:
- .4byte _08110D3C
- .4byte _08110D7E
- .4byte _08110D98
- .4byte _08110DDA
- .4byte _08110DFC
-_08110D3C:
- adds r0, r4, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08110E3A
- strh r5, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _08110E3A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x1E]
- b _08110E3A
-_08110D7E:
- adds r0, r4, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _08110E3A
- movs r0, 0x7
- strh r0, [r1, 0x1E]
- b _08110DF0
-_08110D98:
- adds r0, r4, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08110E3A
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _08110E3A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _08110E3A
-_08110DDA:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- ldr r0, =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
-_08110DF0:
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _08110E3A
- .pool
-_08110DFC:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08110E10
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_08110E10:
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08110E3A:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110CB0
-
- thumb_func_start sub_8110E4C
-sub_8110E4C: @ 8110E4C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08110EC8
- ldr r4, =gBattleAnimArgs
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08110E98
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08110E98
- movs r0, 0x98
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- subs r0, 0x40
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _08110E9C
- .pool
-_08110E98:
- ldr r0, =0x0000ffc0
- strh r0, [r5, 0x20]
-_08110E9C:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x22]
- ldr r1, =gUnknown_08596BC0
- adds r0, r5, 0
- bl SetSubspriteTables
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _08110F24
- .pool
-_08110EC8:
- ldrh r1, [r5, 0x30]
- ldrh r3, [r5, 0x34]
- adds r1, r3
- ldrh r2, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r2, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r3, [r5, 0x24]
- adds r0, r3
- strh r0, [r5, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r3, [r5, 0x26]
- adds r0, r3
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x34]
- ands r2, r0
- strh r2, [r5, 0x36]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08110F0E
- movs r2, 0x20
- ldrsh r0, [r5, r2]
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- adds r0, r1
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- ble _08110F24
- b _08110F20
-_08110F0E:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _08110F24
-_08110F20:
- ldr r0, =DestroyAnimSprite
- str r0, [r5, 0x1C]
-_08110F24:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110E4C
-
- thumb_func_start sub_8110F30
-sub_8110F30: @ 8110F30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110F30
-
- thumb_func_start sub_8110F74
-sub_8110F74: @ 8110F74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r6, r1, r0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xC0
- lsls r2, 13
- adds r0, r2
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _08110FE4
- mov r8, r7
-_08110FE4:
- bl sub_811135C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _08111000
- movs r0, 0x20
- b _08111006
- .pool
-_08111000:
- lsls r1, r5, 3
- movs r0, 0x30
- subs r0, r1
-_08111006:
- strh r0, [r6, 0x18]
- movs r4, 0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0x1E]
- strh r4, [r6, 0x1A]
- movs r0, 0x1
- strh r0, [r6, 0x20]
- movs r1, 0x18
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _0811101E
- adds r0, 0x7
-_0811101E:
- asrs r0, 3
- subs r0, 0x1
- strh r0, [r6, 0x1C]
- mov r2, r9
- lsls r0, r2, 3
- strh r0, [r6, 0xC]
- lsls r0, r7, 3
- strh r0, [r6, 0xE]
- mov r1, r10
- subs r0, r1, r2
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x10]
- mov r1, r8
- subs r0, r1, r7
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x12]
- strh r4, [r6, 0x14]
- strh r4, [r6, 0x16]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 8
- lsrs r4, 16
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- lsls r0, 24
- strh r4, [r6, 0x22]
- asrs r0, 24
- lsls r4, 16
- asrs r4, 16
- subs r0, r4
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x24]
- strh r5, [r6, 0xA]
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- ldr r0, =sub_81110A4
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8110F74
-
- thumb_func_start sub_81110A4
-sub_81110A4: @ 81110A4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _081110BE
- b _0811120C
-_081110BE:
- lsls r0, 2
- ldr r1, =_081110D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081110D0:
- .4byte _081110E4
- .4byte _08111148
- .4byte _08111150
- .4byte _081111AC
- .4byte _081111FE
-_081110E4:
- ldrh r2, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- subs r2, r0
- strh r2, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- ldr r3, =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- lsls r2, 16
- asrs r2, 19
- strh r2, [r0, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08111134
- movs r0, 0x14
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08111134:
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA2
- bl PlaySE12WithPanning
- b _0811120C
- .pool
-_08111148:
- ldrh r0, [r4, 0x1E]
- subs r0, 0x1
- strh r0, [r4, 0x1E]
- b _081111F0
-_08111150:
- ldrh r0, [r4, 0x1A]
- subs r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08111170
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0x14]
- adds r0, r2
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- b _0811117A
-_08111170:
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811117A:
- ldr r2, =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- b _0811120C
- .pool
-_081111AC:
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _081111EA
- movs r0, 0
- strh r0, [r4, 0x1A]
- adds r0, r4, 0
- bl sub_8111214
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xAF
- bl PlaySE12WithPanning
-_081111EA:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
-_081111F0:
- lsls r0, 16
- cmp r0, 0
- bne _0811120C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0811120C
-_081111FE:
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0811120C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0811120C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81110A4
-
- thumb_func_start sub_8111214
-sub_8111214: @ 8111214
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _08111304
- lsls r0, 2
- ldr r1, =_08111234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08111234:
- .4byte _08111248
- .4byte _08111254
- .4byte _08111254
- .4byte _08111260
- .4byte _0811126C
-_08111248:
- ldr r3, =gUnknown_08596C28
- movs r5, 0
- b _08111270
- .pool
-_08111254:
- ldr r3, =gUnknown_08596C40
- movs r5, 0x50
- b _08111270
- .pool
-_08111260:
- ldr r3, =gUnknown_08596C40
- movs r5, 0x40
- b _08111270
- .pool
-_0811126C:
- ldr r3, =gUnknown_08596C40
- movs r5, 0x30
-_08111270:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0xE]
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- lsls r0, 2
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r0, r3, 0
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _081112FC
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x2E]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r2, r6, r2
- movs r6, 0xA
- ldrsh r3, [r4, r6]
- lsls r1, r3, 1
- adds r1, r3
- adds r2, r1
- strh r2, [r0, 0x32]
- strh r7, [r0, 0x36]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r2, 1
- movs r3, 0x10
- negs r3, r3
- adds r1, r3, 0
- subs r1, r2
- strh r1, [r0, 0x38]
- ldrh r3, [r0, 0x4]
- lsls r2, r3, 22
- lsrs r2, 22
- adds r2, r5
- ldr r5, =0x000003ff
- adds r1, r5, 0
- ands r2, r1
- ldr r1, =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- bl sub_80A68D4
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
-_081112FC:
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- negs r0, r0
- strh r0, [r4, 0x20]
-_08111304:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111214
-
- thumb_func_start sub_811131C
-sub_811131C: @ 811131C
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0811134E
- ldr r0, =sub_81110A4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08111348
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- subs r0, 0x1
- strh r0, [r1, 0x1E]
-_08111348:
- adds r0, r4, 0
- bl DestroySprite
-_0811134E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811131C
-
- thumb_func_start sub_811135C
-sub_811135C: @ 811135C
- push {lr}
- ldr r0, =gAnimDisableStructPtr
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _0811137E
- movs r1, 0x1
-_0811137E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_811135C
-
- thumb_func_start sub_8111388
-sub_8111388: @ 8111388
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- ldrh r1, [r5, 0x4]
- subs r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, =sub_81113C8
- str r0, [r4, 0x1C]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111388
-
- thumb_func_start sub_81113C8
-sub_81113C8: @ 81113C8
- push {lr}
- adds r2, r0, 0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x34]
- movs r3, 0x34
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08111400
- ldrh r3, [r2, 0x32]
- adds r0, r1, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r1, r0
- strh r1, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r1, 16
- cmp r1, 0
- ble _08111412
- movs r0, 0
- strh r0, [r2, 0x34]
- b _08111412
-_08111400:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _08111412
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08111412:
- pop {r0}
- bx r0
- thumb_func_end sub_81113C8
-
- thumb_func_start sub_8111418
-sub_8111418: @ 8111418
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08111434
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08111434:
- adds r0, r4, 0
- bl TranslateAnimSpriteToTargetMonLocation
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111418
-
- thumb_func_start sub_8111444
-sub_8111444: @ 8111444
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBattleAnimArgs
- ldrh r3, [r2]
- ldrh r5, [r4, 0x20]
- adds r1, r3, r5
- strh r1, [r4, 0x20]
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r3, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x38]
- ldrb r1, [r2, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_811149C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111444
-
- thumb_func_start sub_811149C
-sub_811149C: @ 811149C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- ldrh r1, [r4, 0x24]
- adds r1, r0
- strh r1, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- subs r1, r0
- strh r1, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8C
- ble _081114E6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081114E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811149C
-
- thumb_func_start AnimTask_GetSeismicTossDamageLevel
-AnimTask_GetSeismicTossDamageLevel: @ 81114EC
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gAnimMoveDmg
- ldr r0, [r2]
- cmp r0, 0x20
- bgt _08111500
- ldr r1, =gBattleAnimArgs
- movs r0, 0
- strh r0, [r1, 0xE]
-_08111500:
- ldr r2, [r2]
- adds r0, r2, 0
- subs r0, 0x21
- cmp r0, 0x20
- bhi _08111510
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_08111510:
- cmp r2, 0x41
- ble _0811151A
- ldr r1, =gBattleAnimArgs
- movs r0, 0x2
- strh r0, [r1, 0xE]
-_0811151A:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_GetSeismicTossDamageLevel
-
- thumb_func_start sub_811152C
-sub_811152C: @ 811152C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0811154E
- movs r0, 0
- bl sub_80A6DAC
- movs r0, 0xC8
- strh r0, [r5, 0xA]
-_0811154E:
- ldr r4, =gBattle_BG3_Y
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- ldrh r0, [r5, 0xA]
- subs r0, 0x3
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _0811157A
- movs r0, 0x1
- bl sub_80A6DAC
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_0811157A:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811152C
-
- thumb_func_start sub_8111590
-sub_8111590: @ 8111590
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081115BC
- movs r0, 0
- bl sub_80A6DAC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, =gBattle_BG3_Y
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
-_081115BC:
- ldrh r0, [r4, 0xA]
- adds r0, 0x50
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0xA]
- ldr r6, =gBattle_BG3_Y
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0x4
- bl Cos
- ldrh r4, [r4, 0xC]
- adds r0, r4
- strh r0, [r6]
- ldr r0, =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- ldr r0, =0x00000fff
- cmp r1, r0
- bne _081115F4
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x1
- bl sub_80A6DAC
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_081115F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111590
-
- thumb_func_start sub_811160C
-sub_811160C: @ 811160C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80A6FD4
- ldr r0, =sub_8111674
- str r0, [r4, 0x1C]
- movs r0, 0x10
- strh r0, [r4, 0x3A]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r4, 0x3A]
- movs r0, 0x52
- bl SetGpuReg
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811160C
-
- thumb_func_start sub_8111674
-sub_8111674: @ 8111674
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8111764
- adds r0, r4, 0
- bl TranslateAnimLinear
- lsls r0, 24
- cmp r0, 0
- beq _08111694
- ldr r0, =sub_81116E8
- str r0, [r4, 0x1C]
- b _081116DE
- .pool
-_08111694:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _081116CC
- cmp r2, 0xC4
- ble _081116DE
-_081116CC:
- lsls r0, 16
- cmp r0, 0
- ble _081116DE
- ldr r0, =gUnknown_02038440
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xC4
- bl PlaySE12WithPanning
-_081116DE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111674
-
- thumb_func_start sub_81116E8
-sub_81116E8: @ 81116E8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl TranslateAnimLinear
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _0811172E
- cmp r2, 0xC4
- ble _0811173A
-_0811172E:
- lsls r0, 16
- cmp r0, 0
- ble _0811173A
- movs r0, 0xC4
- bl PlaySE
-_0811173A:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08111758
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_80A67F4
- str r0, [r4, 0x1C]
- b _0811175E
- .pool
-_08111758:
- adds r0, r4, 0
- bl sub_8111764
-_0811175E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81116E8
-
- thumb_func_start sub_8111764
-sub_8111764: @ 8111764
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- ble _08111788
- adds r0, r2, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- ldr r1, =0x010d0000
- cmp r0, r1
- bne _081117EE
- movs r0, 0
- b _081117EC
- .pool
-_08111788:
- ldrh r1, [r4, 0x3C]
- adds r3, r1, 0x1
- strh r3, [r4, 0x3C]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _081117EE
- ldr r1, =0xffffff00
- ands r1, r3
- strh r1, [r4, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _081117B0
- adds r0, r2, 0x1
- b _081117B2
- .pool
-_081117B0:
- subs r0, r2, 0x1
-_081117B2:
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3A]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081117D4
- cmp r0, 0x10
- bne _081117E0
-_081117D4:
- ldrh r0, [r4, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x3C]
-_081117E0:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081117EE
- movs r0, 0x80
- lsls r0, 1
-_081117EC:
- strh r0, [r4, 0x3A]
-_081117EE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111764
-
- thumb_func_start sub_81117F4
-sub_81117F4: @ 81117F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r1, =sub_8111814
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81117F4
-
- thumb_func_start sub_8111814
-sub_8111814: @ 8111814
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x82
- bhi _08111848
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- b _08111852
-_08111848:
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
-_08111852:
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x13
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x50
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3D
- bne _08111884
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08111884:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111814
-
- thumb_func_start sub_811188C
-sub_811188C: @ 811188C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A7270
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x80
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x80
- strh r1, [r0, 0x8]
- ldr r1, =gBattleAnimArgs
- ldrh r1, [r1]
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x10
- strh r1, [r0, 0xE]
- ldr r1, =sub_8111914
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811188C
-
- thumb_func_start sub_8111914
-sub_8111914: @ 8111914
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0811195C
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0xC]
- adds r1, 0x1
- strh r1, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _0811195C
- ldr r0, =sub_811196C
- str r0, [r4]
-_0811195C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111914
-
- thumb_func_start sub_811196C
-sub_811196C: @ 811196C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08111994
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _081119D8
- .pool
-_08111994:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4, 0x8]
- adds r0, 0x8
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _081119BC
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- adds r0, r1, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- b _081119D8
-_081119BC:
- adds r0, r1, 0
- bl sub_80A7344
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
-_081119D8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811196C
-
- thumb_func_start sub_81119E0
-sub_81119E0: @ 81119E0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r5, [r4, 0x20]
- ldrh r6, [r4, 0x22]
- ldr r0, =gBattleAnimAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- strh r0, [r4, 0x20]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- mov r1, r9
- strh r1, [r4, 0x2E]
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r4, 0x30]
- ldrh r1, [r2, 0x2]
- strh r1, [r4, 0x32]
- ldrh r1, [r2, 0x4]
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x20]
- lsls r1, 4
- strh r1, [r4, 0x36]
- lsls r0, 4
- strh r0, [r4, 0x38]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- subs r5, r0
- lsls r5, 4
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r5, 0
- str r2, [sp]
- bl __divsi3
- strh r0, [r4, 0x3A]
- lsls r6, 16
- asrs r6, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- subs r6, r0
- lsls r6, 4
- ldr r2, [sp]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r6, 0
- bl __divsi3
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8111A88
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81119E0
-
- thumb_func_start sub_8111A88
-sub_8111A88: @ 8111A88
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08111AD2
- cmp r0, 0x1
- bgt _08111A9E
- cmp r0, 0
- beq _08111AA8
- b _08111B96
-_08111A9E:
- cmp r0, 0x2
- beq _08111B3C
- cmp r0, 0x3
- beq _08111B90
- b _08111B96
-_08111AA8:
- ldrh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x36]
- adds r0, r2
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- cmp r0, 0
- bgt _08111B96
- b _08111B82
-_08111AD2:
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _08111B96
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r5, 0x38]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3A]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3C]
- b _08111B82
- .pool
-_08111B3C:
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _08111B96
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_08111B82:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _08111B96
- .pool
-_08111B90:
- adds r0, r5, 0
- bl move_anim_8074EE0
-_08111B96:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8111A88
-
- thumb_func_start sub_8111B9C
-sub_8111B9C: @ 8111B9C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r0, =sub_8111BB4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111B9C
-
- thumb_func_start sub_8111BB4
-sub_8111BB4: @ 8111BB4
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r5, 0
- movs r6, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08111C4A
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x4
- ands r0, r2
- adds r4, r1, 0
- cmp r0, 0
- bne _08111BDE
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r4]
-_08111BDE:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08111BEE
- cmp r0, 0x1
- beq _08111BF8
- movs r6, 0x1
- b _08111C02
-_08111BEE:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _08111C02
- b _08111C06
-_08111BF8:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bne _08111C02
- movs r5, 0x1
-_08111C02:
- cmp r5, 0
- beq _08111C38
-_08111C06:
- ldrb r2, [r4]
- 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, [r4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08111C4A
- strh r1, [r3, 0x32]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _08111C4A
-_08111C38:
- cmp r6, 0
- beq _08111C44
- adds r0, r3, 0
- bl DestroyAnimSprite
- b _08111C4A
-_08111C44:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_08111C4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8111BB4
-
- thumb_func_start sub_8111C50
-sub_8111C50: @ 8111C50
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- movs r6, 0
- movs r1, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _08111C80
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _08111D5C
- .pool
-_08111C80:
- strh r1, [r5, 0xA]
- movs r0, 0xF
- strh r0, [r5, 0xC]
- movs r0, 0x2
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r5, 0xE]
- lsls r1, 8
- ldrh r0, [r5, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r4, =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x50
- strh r1, [r0, 0x2E]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08111CF4
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ff70
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x70
- b _08111D12
- .pool
-_08111CF4:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x90
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ff90
-_08111D12:
- strh r1, [r0, 0x32]
- ldr r4, =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x34]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x36]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =SpriteCallbackDummy
- bl StoreSpriteCallbackInData6
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, =sub_80A656C
- str r1, [r0]
- ldr r0, =sub_8111D78
- str r0, [r5]
-_08111D5C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111C50
-
- thumb_func_start sub_8111D78
-sub_8111D78: @ 8111D78
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08111E1C
- cmp r0, 0x1
- bgt _08111DA0
- cmp r0, 0
- beq _08111DA6
- b _08111E48
- .pool
-_08111DA0:
- cmp r0, 0x2
- beq _08111E42
- b _08111E48
-_08111DA6:
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0x1
- bne _08111DC4
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08111DC4
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
-_08111DC4:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _08111DDA
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _08111DDA
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
-_08111DDA:
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r4, 0xC]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _08111E48
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _08111E48
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- movs r0, 0x1
- strh r0, [r4, 0x10]
- b _08111E48
- .pool
-_08111E1C:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08111E48
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- b _08111E48
-_08111E42:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08111E48:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111D78
-
- thumb_func_start sub_8111E50
-sub_8111E50: @ 8111E50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, =gTasks
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, =sub_8111E78
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111E50
-
- thumb_func_start sub_8111E78
-sub_8111E78: @ 8111E78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _08111EA4
- b _081120C6
-_08111EA4:
- lsls r0, 2
- ldr r1, =_08111EBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08111EBC:
- .4byte _08111ED0
- .4byte _08111FD0
- .4byte _08112014
- .4byte _0811207C
- .4byte _081120A8
-_08111ED0:
- ldr r7, =0x00002771
- adds r0, r7, 0
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- mov r8, r2
- strh r0, [r5, 0x24]
- cmp r0, 0xFF
- beq _08111EFE
- cmp r0, 0xF
- beq _08111EFE
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _08111F0C
- adds r0, r7, 0
- bl FreeSpritePaletteByTag
-_08111EFE:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _081120CC
- .pool
-_08111F0C:
- ldr r4, =gSprites
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r2, [r5, 0x24]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 31
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- mov r2, r8
- strh r2, [r5, 0xA]
- strh r2, [r5, 0xC]
- movs r0, 0x10
- strh r0, [r5, 0xE]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x10]
- cmp r6, 0x1
- bne _08111FC4
- movs r1, 0x80
- lsls r1, 2
- b _08111FC8
- .pool
-_08111FC4:
- movs r1, 0x80
- lsls r1, 3
-_08111FC8:
- movs r0, 0
- bl ClearGpuRegBits
- b _081120C6
-_08111FD0:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x24]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- lsls r0, 1
- ldr r1, =gPlttBufferUnfaded
- adds r0, r1
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- lsls r1, 1
- ldr r2, =gPlttBufferFaded
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- ldrh r0, [r5, 0x10]
- ldr r3, =0x00003c0d
- movs r1, 0x10
- movs r2, 0xA
- bl BlendPalette
- b _081120C6
- .pool
-_08112014:
- ldr r2, =gSprites
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- subs r1, 0x20
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _08112034
- movs r2, 0
-_08112034:
- cmp r6, 0x1
- bne _08112054
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x4
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- b _0811206C
- .pool
-_08112054:
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x8
- str r2, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
-_0811206C:
- movs r2, 0x2
- movs r3, 0x6
- bl ScanlineEffect_InitWave
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- b _081120C6
-_0811207C:
- cmp r6, 0x1
- bne _08112090
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _08112098
- .pool
-_08112090:
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_08112098:
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- b _081120C6
- .pool
-_081120A8:
- cmp r6, 0x1
- bne _081120B8
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _081120C2
-_081120B8:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_081120C2:
- ldr r0, =sub_81120DC
- str r0, [r5]
-_081120C6:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
-_081120CC:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8111E78
-
- thumb_func_start sub_81120DC
-sub_81120DC: @ 81120DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0
- bne _08112114
- ldr r1, =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- strh r0, [r4, 0xC]
-_08112114:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _08112136
- ldr r1, =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- movs r1, 0x10
- subs r1, r0
- strh r1, [r4, 0xE]
-_08112136:
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0xC]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- bne _0811215E
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, =sub_8112170
- str r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
-_0811215E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81120DC
-
- thumb_func_start sub_8112170
-sub_8112170: @ 8112170
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _081121DC
- cmp r0, 0x1
- bgt _081121A8
- cmp r0, 0
- beq _081121AE
- b _08112258
- .pool
-_081121A8:
- cmp r0, 0x2
- beq _081121F0
- b _08112258
-_081121AE:
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0x1
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- cmp r6, 0x1
- bne _081121D0
- movs r1, 0x80
- lsls r1, 2
- b _081121D4
- .pool
-_081121D0:
- movs r1, 0x80
- lsls r1, 3
-_081121D4:
- movs r0, 0
- bl ClearGpuRegBits
- b _08112258
-_081121DC:
- ldrh r0, [r4, 0x10]
- ldr r3, =0x00003c0d
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- b _08112258
- .pool
-_081121F0:
- ldr r3, =gSprites
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl obj_delete_but_dont_free_vram
- ldr r0, =0x00002771
- bl FreeSpritePaletteByTag
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- cmp r6, 0x1
- bne _08112248
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- bl SetGpuRegBits
- b _08112252
- .pool
-_08112248:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
-_08112252:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08112258:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8112170
-
- thumb_func_start sub_8112264
-sub_8112264: @ 8112264
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081122AC
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, =gBattleAnimTarget
- b _081122D0
- .pool
-_081122AC:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, =gBattleAnimAttacker
-_081122D0:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xE0
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- mov r9, r0
- mov r8, r5
- mov r2, r9
- subs r4, r2, r5
- lsls r4, 16
- lsrs r4, 16
- lsls r0, r6, 4
- strh r0, [r7, 0x2E]
- lsls r0, r5, 4
- strh r0, [r7, 0x30]
- mov r1, r10
- subs r0, r1, r6
- lsls r0, 4
- ldr r5, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r7, 0x32]
- lsls r4, 16
- asrs r4, 12
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r7, 0x34]
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0x36]
- mov r1, r10
- strh r1, [r7, 0x38]
- mov r2, r9
- strh r2, [r7, 0x3A]
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r7, 0x3C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x5]
- strh r6, [r7, 0x20]
- mov r2, r8
- strh r2, [r7, 0x22]
- ldr r0, =sub_8112384
- str r0, [r7, 0x1C]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112264
-
- thumb_func_start sub_8112384
-sub_8112384: @ 8112384
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x36]
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _081123BC
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x2E]
- adds r0, r4
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r1, r4
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _081123BC
- strh r0, [r2, 0x2E]
-_081123BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8112384
-
- thumb_func_start sub_81123C4
-sub_81123C4: @ 81123C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- str r1, [sp]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0
- ldr r1, [sp]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- movs r0, 0x10
- strh r0, [r1, 0x1A]
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_80A861C
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08112434
- b _08112530
-_08112434:
- movs r4, 0
-_08112436:
- lsls r1, r4, 16
- asrs r3, r1, 16
- ldr r0, =gBattleAnimAttacker
- ldrb r2, [r0]
- str r1, [sp, 0x10]
- cmp r3, r2
- beq _08112502
- movs r0, 0x2
- eors r2, r0
- cmp r3, r2
- beq _08112502
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08112502
- ldr r6, [sp, 0x4]
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- asrs r7, r0, 16
- ldr r0, =gUnknown_08596DB8
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _08112502
- adds r0, r4, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_80A861C
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r1, =gSprites
- adds r4, r5, r1
- lsls r0, r6, 4
- strh r0, [r4, 0x2E]
- lsls r0, r7, 4
- strh r0, [r4, 0x30]
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 4
- ldr r3, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- lsls r0, r3, 16
- asrs r0, 16
- subs r0, r7
- lsls r0, 4
- ldr r2, =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- ldr r0, =gSprites + 0x1C
- adds r5, r0
- ldr r0, =sub_8112384
- str r0, [r5]
- ldr r2, [sp]
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- adds r1, 0xD
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
-_08112502:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08112436
- b _081125B4
- .pool
-_08112530:
- ldr r0, =gUnknown_08596DB8
- ldr r7, [sp, 0x4]
- ldr r2, [sp, 0x8]
- lsls r1, r2, 16
- asrs r1, 16
- str r1, [sp, 0xC]
- adds r1, r7, 0
- ldr r2, [sp, 0xC]
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _081125B4
- movs r3, 0x30
- mov r10, r3
- movs r0, 0x28
- mov r9, r0
- ldr r6, =gSprites
- mov r1, r8
- lsls r5, r1, 4
- add r5, r8
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, r7, 4
- strh r0, [r4, 0x2E]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 4
- strh r0, [r4, 0x30]
- subs r0, r3, r7
- lsls r0, 4
- ldr r3, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- ldr r1, [sp, 0xC]
- subs r0, r3, r1
- lsls r0, 4
- ldr r2, =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, =sub_8112384
- str r0, [r5]
- mov r1, r8
- ldr r0, [sp]
- strh r1, [r0, 0x22]
- movs r0, 0x1
- ldr r2, [sp]
- strh r0, [r2, 0x20]
-_081125B4:
- ldr r0, =sub_81125E0
- ldr r3, [sp]
- str r0, [r3]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81123C4
-
- thumb_func_start sub_81125E0
-sub_81125E0: @ 81125E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _08112696
- cmp r1, 0x1
- bgt _08112608
- cmp r1, 0
- beq _08112616
- b _08112752
- .pool
-_08112608:
- cmp r1, 0x2
- bne _0811260E
- b _08112728
-_0811260E:
- cmp r1, 0x3
- bne _08112614
- b _0811273C
-_08112614:
- b _08112752
-_08112616:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811267C
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811267C
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811264C
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _0811265A
- adds r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _0811265A
-_0811264C:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811265A
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_0811265A:
- ldrh r1, [r4, 0x1A]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- ble _0811267C
- movs r0, 0
- strh r0, [r4, 0x16]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_0811267C:
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811268C
- subs r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _08112752
-_0811268C:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08112752
- b _08112734
-_08112696:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08112752
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _081126C6
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081126D4
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _081126D4
-_081126C6:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _081126D4
- adds r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_081126D4:
- ldrh r1, [r4, 0x1A]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r4, 0x18]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _08112752
- movs r5, 0
- b _08112718
-_081126F4:
- adds r1, r5, 0
- adds r1, 0xD
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08112718:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _081126F4
- b _08112734
- .pool
-_08112728:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- ble _08112752
-_08112734:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08112752
-_0811273C:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08112752:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81125E0
-
- thumb_func_start sub_8112758
-sub_8112758: @ 8112758
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f1f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0xC8
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0x10
- bl SetGpuReg
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _081127A0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _081127B8
-_081127A0:
- movs r6, 0x28
- b _081127BA
- .pool
-_081127B8:
- movs r6, 0xC8
-_081127BA:
- ldr r1, =gBattle_WIN0H
- lsls r3, r6, 16
- asrs r2, r3, 16
- lsls r0, r2, 8
- orrs r0, r2
- strh r0, [r1]
- ldr r1, =gBattle_WIN0V
- movs r5, 0x28
- ldr r0, =0x00002828
- strh r0, [r1]
- lsrs r3, 16
- movs r1, 0xF0
- subs r1, r2
- movs r4, 0x48
- ldr r2, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- strh r3, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r5, [r0, 0xE]
- strh r4, [r0, 0x10]
- strh r6, [r0, 0x12]
- strh r5, [r0, 0x14]
- ldr r1, =sub_811280C
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112758
-
- thumb_func_start sub_811280C
-sub_811280C: @ 811280C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811292C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- ldrh r5, [r4, 0xA]
- ldrh r7, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- mov r10, r0
- ldrh r2, [r4, 0x10]
- str r2, [sp, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r2, [r4, 0x14]
- mov r8, r2
- lsls r1, 16
- asrs r6, r1, 16
- cmp r6, 0xF
- ble _08112848
- b _08112938
-_08112848:
- lsls r0, 16
- asrs r0, 16
- bl __floatsidf
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- lsls r0, r5, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _08112930 @ =0x3FB00000
- ldr r3, _08112934 @ =0x00000000
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r0, r7, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _08112930 @ =0x3FB00000
- ldr r3, _08112934 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- adds r5, r1, 0
- adds r4, r0, 0
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _08112930 @ =0x3FB00000
- ldr r3, _08112934 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, [sp, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _08112930 @ =0x3FB00000
- ldr r3, _08112934 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r5, r0, 16
- b _08112966
- .align 2, 0
-_0811292C:
- .4byte gTasks
-_08112930:
- .4byte 0x3FB00000
-_08112934:
- .4byte 0x00000000
-_08112938:
- movs r2, 0
- mov r9, r2
- movs r7, 0xF0
- movs r6, 0
- movs r5, 0x70
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80A75AC
- lsls r0, 16
- lsrs r0, 16
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08112988 @=sub_8112994
- str r0, [r4]
-_08112966:
- ldr r1, _0811298C @=gBattle_WIN0H
- mov r2, r9
- lsls r0, r2, 8
- orrs r7, r0
- strh r7, [r1]
- ldr r1, _08112990 @=gBattle_WIN0V
- lsls r0, r6, 8
- orrs r5, r0
- strh r5, [r1]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112988:
- .4byte sub_8112994
-_0811298C:
- .4byte gBattle_WIN0H
-_08112990:
- .4byte gBattle_WIN0V
- thumb_func_end sub_811280C
-
- thumb_func_start sub_8112994
-sub_8112994: @ 8112994
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081129DA
- ldr r0, =gBattle_WIN0H
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_081129DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112994
-
- thumb_func_start sub_81129F0
-sub_81129F0: @ 81129F0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08112A24
- movs r2, 0x18
- ldr r3, =0x0000fffe
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
- b _08112A28
- .pool
-_08112A24:
- ldr r2, =0x0000ffe8
- movs r3, 0x2
-_08112A28:
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r3, [r4, 0x30]
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, =sub_8112A4C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81129F0
-
- thumb_func_start sub_8112A4C
-sub_8112A4C: @ 8112A4C
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _08112A5E
- subs r0, r1, 0x1
- b _08112AC2
-_08112A5E:
- ldrh r0, [r3, 0x30]
- ldrh r4, [r3, 0x24]
- adds r1, r0, r4
- strh r1, [r3, 0x24]
- adds r0, r1, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _08112AC4
- ldrh r0, [r3, 0x20]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0
- strh r0, [r3, 0x24]
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08112AC0
- movs r0, 0x1E
- strh r0, [r3, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r3, 0x1C]
- ldr r1, =sub_8112ACC
- adds r0, r3, 0
- bl StoreSpriteCallbackInData6
- b _08112AC4
- .pool
-_08112AC0:
- movs r0, 0x28
-_08112AC2:
- strh r0, [r3, 0x2E]
-_08112AC4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8112A4C
-
- thumb_func_start sub_8112ACC
-sub_8112ACC: @ 8112ACC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08112AF6
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- b _08112B3A
-_08112AF6:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bgt _08112B06
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08112B3A
-_08112B06:
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x10
- subs r1, r0
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _08112B3A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_8112B44
- str r0, [r4, 0x1C]
-_08112B3A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112ACC
-
- thumb_func_start sub_8112B44
-sub_8112B44: @ 8112B44
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112B44
-
- thumb_func_start sub_8112B78
-sub_8112B78: @ 8112B78
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0xC
- bl Sin
- strh r0, [r5, 0x24]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08112B9C
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_08112B9C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08112BE8
- ldr r0, =0x0000050b
- strh r0, [r5, 0x3A]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldrh r1, [r5, 0x3A]
- movs r0, 0x52
- bl SetGpuReg
- b _08112C40
- .pool
-_08112BE8:
- cmp r0, 0x1E
- ble _08112C40
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x3A]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- movs r6, 0xFF
- ands r6, r1
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r7, r0, 16
- cmp r7, 0x10
- bls _08112C0C
- movs r7, 0x10
-_08112C0C:
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r0, 0
- bge _08112C18
- movs r6, 0
-_08112C18:
- lsls r4, r7, 8
- orrs r4, r6
- lsls r1, r4, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- strh r4, [r5, 0x3A]
- cmp r7, 0x10
- bne _08112C40
- cmp r6, 0
- bne _08112C40
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_8112C4C
- str r0, [r5, 0x1C]
-_08112C40:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112B78
-
- thumb_func_start sub_8112C4C
-sub_8112C4C: @ 8112C4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyAnimSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8112C4C
-
- thumb_func_start sub_8112C6C
-sub_8112C6C: @ 8112C6C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- movs r6, 0
- strh r6, [r4, 0x8]
- movs r0, 0x10
- mov r8, r0
- mov r0, r8
- strh r0, [r4, 0xA]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- ldrb r0, [r5]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_80A861C
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- adds r1, 0x8
- strh r1, [r4, 0x1E]
- strh r6, [r4, 0x16]
- ldrb r0, [r5]
- bl sub_80A8328
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- ldrb r0, [r5]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r4, 0x14]
- strh r6, [r4, 0xE]
- mov r0, r8
- strh r0, [r4, 0x10]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- strh r6, [r4, 0x18]
- ldr r0, =sub_8112D10
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112C6C
-
- thumb_func_start sub_8112D10
-sub_8112D10: @ 8112D10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _08112D2A
- b _08112E96
-_08112D2A:
- lsls r0, 2
- ldr r1, =_08112D3C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08112D3C:
- .4byte _08112D54
- .4byte _08112DC4
- .4byte _08112E06
- .4byte _08112E1A
- .4byte _08112E70
- .4byte _08112E80
-_08112D54:
- movs r6, 0
-_08112D56:
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- ldrb r3, [r4, 0x14]
- ldr r0, =gUnknown_08596E30
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08112DAA
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- strh r7, [r5, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _08112D8C
- movs r1, 0x1
-_08112D8C:
- strh r1, [r5, 0x30]
- movs r0, 0x2A
- muls r0, r6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x1E]
- strh r0, [r5, 0x34]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_08112DAA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _08112D56
- b _08112E78
- .pool
-_08112DC4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08112DE2
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bgt _08112DF0
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08112DF0
-_08112DE2:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- ble _08112DF0
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_08112DF0:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r2, [r4, 0xE]
- ldrh r1, [r4, 0x10]
- cmp r0, 0xE
- bne _08112E60
- cmp r1, 0x4
- bne _08112E60
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08112E5A
-_08112E06:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _08112E96
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08112E78
-_08112E1A:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08112E38
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08112E46
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08112E46
-_08112E38:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _08112E46
- adds r0, r1, 0x1
- strh r0, [r4, 0x10]
-_08112E46:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r2, [r4, 0xE]
- ldrh r1, [r4, 0x10]
- cmp r0, 0
- bne _08112E60
- cmp r1, 0x10
- bne _08112E60
- movs r0, 0x1
- strh r0, [r4, 0x18]
-_08112E5A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08112E60:
- lsls r1, 8
- orrs r1, r2
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _08112E96
-_08112E70:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08112E96
-_08112E78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08112E96
-_08112E80:
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_08112E96:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8112D10
-
- thumb_func_start sub_8112E9C
-sub_8112E9C: @ 8112E9C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08112EAE
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- b _08112EB2
-_08112EAE:
- ldrh r0, [r4, 0x32]
- subs r0, 0x2
-_08112EB2:
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7E
- bhi _08112EF4
- ldr r2, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- b _08112F08
- .pool
-_08112EF4:
- ldr r2, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x3
- ldrb r1, [r0, 0x12]
- ands r1, r2
-_08112F08:
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r0, 3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r1, 0x7
- bl Sin
- strh r0, [r4, 0x26]
- ldr r2, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x18
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08112F56
- ldrh r0, [r1, 0x16]
- subs r0, 0x1
- strh r0, [r1, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_08112F56:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112E9C
-
- thumb_func_start sub_8112F60
-sub_8112F60: @ 8112F60
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r2, =gBattlerSpriteIds
- ldr r1, =gBattleAnimAttacker
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- strh r1, [r0, 0x38]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0xA
- strh r1, [r0, 0x30]
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x34]
- ldr r1, =sub_8112FB8
- str r1, [r0, 0x1C]
- ldr r2, =gSprites
- movs r3, 0x38
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- bx lr
- .pool
- thumb_func_end sub_8112F60
-
- thumb_func_start sub_8112FB8
-sub_8112FB8: @ 8112FB8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x34
- ldrsh r3, [r5, r1]
- cmp r3, 0
- beq _08113020
- subs r0, 0x1
- strh r0, [r5, 0x34]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r4, =gSprites
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Cos
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x32]
- ldrh r2, [r5, 0x2E]
- adds r1, r0, r2
- strh r1, [r5, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08113054
- ldr r2, =0xffffff00
- adds r0, r1, r2
- strh r0, [r5, 0x2E]
- b _08113054
- .pool
-_08113020:
- ldr r2, =gSprites
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x8
- strh r1, [r0, 0x22]
- ldr r0, =move_anim_8074EE0
- str r0, [r5, 0x1C]
-_08113054:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8112FB8
-
- thumb_func_start sub_8113064
-sub_8113064: @ 8113064
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081130B4
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r2, 0x8]
- adds r1, r2, 0
- b _081130BE
- .pool
-_081130B4:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_081130BE:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A66DC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113064
-
- thumb_func_start sub_8113100
-sub_8113100: @ 8113100
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80A6838
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08113164
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x32]
- ldrh r1, [r2, 0x4]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- b _0811318E
- .pool
-_08113164:
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0811318E:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, =sub_80A6EEC
- str r0, [r5, 0x1C]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113100
-
- thumb_func_start sub_81131B4
-sub_81131B4: @ 81131B4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081131D0
- ldr r4, =gBattleAnimAttacker
- b _081131D2
- .pool
-_081131D0:
- ldr r4, =gBattleAnimTarget
-_081131D2:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, =gBattleAnimArgs
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_80A6864
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, =sub_80A67D8
- str r0, [r5, 0x1C]
- ldr r1, =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81131B4
-
- thumb_func_start sub_8113224
-sub_8113224: @ 8113224
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0811323E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0811323E:
- adds r0, r4, 0
- bl sub_8113100
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113224
-
- thumb_func_start sub_8113250
-sub_8113250: @ 8113250
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x36]
- movs r0, 0x1
- strh r0, [r6, 0x38]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r6, 0x3A]
- ldr r4, =gBattlerAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_80A861C
- lsls r7, r0, 16
- lsrs r5, r7, 16
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_80A861C
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r5, r0
- bls _081132B0
- lsrs r0, r7, 17
- b _081132B2
- .pool
-_081132B0:
- lsrs r0, r1, 17
-_081132B2:
- strh r0, [r6, 0x3C]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Cos
- strh r0, [r6, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- ldr r0, =sub_81132E0
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113250
-
- thumb_func_start sub_81132E0
-sub_81132E0: @ 81132E0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _081132F2
- cmp r5, 0x1
- beq _0811335E
- b _081133E2
-_081132F2:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _08113344
- strh r5, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _08113344
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08113344
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_08113344:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _081133E2
- movs r0, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081133E2
-_0811335E:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x95
- bgt _08113386
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x95
- ble _08113386
- movs r0, 0x96
- strh r0, [r4, 0x3C]
-_08113386:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _081133CE
- movs r0, 0
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _081133CE
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _081133CE
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_081133CE:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _081133E2
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081133E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81132E0
-
- thumb_func_start sub_81133E8
-sub_81133E8: @ 81133E8
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08113424
- ldr r0, =0x04000014
- str r0, [sp]
- ldr r0, =gBattle_BG1_X
- b _0811342A
- .pool
-_08113424:
- ldr r0, =0x04000018
- str r0, [sp]
- ldr r0, =gBattle_BG2_X
-_0811342A:
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r5, [r0, 0x9]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0xE]
- adds r0, 0x20
- strh r0, [r4, 0x10]
- cmp r1, 0
- bge _0811345A
- strh r5, [r4, 0xE]
-_0811345A:
- ldrh r3, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bgt _08113488
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0811346C:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _0811346C
-_08113488:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- ldr r0, =sub_81134B8
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81133E8
-
- thumb_func_start sub_81134B8
-sub_81134B8: @ 81134B8
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, =gTasks
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _0811356E
- lsls r0, 2
- ldr r1, =_081134E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081134E4:
- .4byte _081134F8
- .4byte _0811351A
- .4byte _0811352A
- .4byte _08113556
- .4byte _08113568
-_081134F8:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811354E
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- adds r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0811354E
- b _08113548
-_0811351A:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _0811354E
- b _08113548
-_0811352A:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811354E
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- subs r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811354E
-_08113548:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811354E:
- adds r0, r2, 0
- bl sub_8113574
- b _0811356E
-_08113556:
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0811356E
- .pool
-_08113568:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_0811356E:
- pop {r0}
- bx r0
- thumb_func_end sub_81134B8
-
- thumb_func_start sub_8113574
-sub_8113574: @ 8113574
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r3, [r5, 0x12]
- ldrh r4, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r4, r0
- bgt _081135CA
- ldr r7, =gScanlineEffectRegBuffers
- mov r12, r7
- ldr r0, =gSineTable
- mov r8, r0
- ldr r6, =gScanlineEffect
-_08113592:
- lsls r2, r4, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- lsls r0, r3, 1
- add r0, r8
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x14
- ldrsh r0, [r5, r7]
- muls r0, r1
- asrs r0, 7
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r2]
- adds r3, 0x8
- movs r0, 0xFF
- ands r3, r0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0x10
- ldrsh r0, [r5, r7]
- cmp r4, r0
- ble _08113592
-_081135CA:
- ldrh r0, [r5, 0x12]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113574
-
- thumb_func_start sub_81135EC
-sub_81135EC: @ 81135EC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x5
- bl __divsi3
- adds r6, r0, 0
- ldr r1, =gBattleAnimAttacker
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r5, 0x8]
- adds r0, r3
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r4, 0x30]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- lsls r6, 16
- asrs r6, 16
- adds r1, r6, 0
- bl Sin
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- ldrh r2, [r5]
- adds r3, r2, 0
- muls r3, r1
- adds r1, r3, 0
- ldrh r3, [r4, 0x20]
- adds r1, r3
- strh r1, [r4, 0x20]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x34]
- ldr r0, =sub_811369C
- str r0, [r4, 0x1C]
- adds r4, 0x2E
- ldr r2, =gUnknown_0203A100
- movs r1, 0x6
-_08113674:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08113674
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81135EC
-
- thumb_func_start sub_811369C
-sub_811369C: @ 811369C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _081136E0
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081136E0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811369C
-
- thumb_func_start sub_81136E8
-sub_81136E8: @ 81136E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =gBattleAnimArgs
- ldrh r1, [r1]
- strh r1, [r0, 0x8]
- ldr r1, =gBattleAnimAttacker
- ldrb r4, [r1]
- movs r1, 0x10
- strh r1, [r0, 0xA]
- movs r0, 0x52
- bl SetGpuReg
- adds r0, r4, 0
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08113734
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _0811373C
- .pool
-_08113734:
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_0811373C:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_811375C
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81136E8
-
- thumb_func_start sub_811375C
-sub_811375C: @ 811375C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0xA]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- ldrb r2, [r6, 0x8]
- cmp r0, r2
- bne _081137D8
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 8
- orrs r1, r0
- movs r5, 0
- strh r1, [r6, 0xA]
- ldrh r1, [r6, 0xA]
- movs r0, 0x52
- bl SetGpuReg
- strh r5, [r6, 0xC]
- cmp r4, 0x10
- bne _081137DE
- ldr r2, =gSprites
- ldr r1, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _081137DE
- .pool
-_081137D8:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
-_081137DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811375C
-
- thumb_func_start sub_81137E4
-sub_81137E4: @ 81137E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r2, 0x8]
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r2, 0xA]
- ldr r0, =sub_811381C
- str r0, [r2]
- movs r0, 0x52
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81137E4
-
- thumb_func_start sub_811381C
-sub_811381C: @ 811381C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0xA]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- ldrb r2, [r6, 0x8]
- cmp r0, r2
- bne _0811387C
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 8
- orrs r1, r0
- movs r5, 0
- strh r1, [r6, 0xA]
- ldrh r1, [r6, 0xA]
- movs r0, 0x52
- bl SetGpuReg
- strh r5, [r6, 0xC]
- cmp r4, 0
- bne _08113882
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _08113882
- .pool
-_0811387C:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
-_08113882:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811381C
-
- thumb_func_start sub_8113888
-sub_8113888: @ 8113888
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081138BC
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- b _081138C4
- .pool
-_081138BC:
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
-_081138C4:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113888
-
- thumb_func_start sub_81138D4
-sub_81138D4: @ 81138D4
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, =gBattleAnimTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- movs r0, 0x7E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80A6E14
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldr r0, =0x0000ffd8
- strh r0, [r4, 0x3A]
- ldr r1, =sub_8113950
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81138D4
-
- thumb_func_start sub_8113950
-sub_8113950: @ 8113950
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r5, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r2, r5, r0
- strh r2, [r4, 0x34]
- ldrh r3, [r4, 0x32]
- ldrh r6, [r4, 0x36]
- adds r1, r3, r6
- strh r1, [r4, 0x36]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- movs r6, 0x3C
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _08113992
- adds r0, r2, r5
- strh r0, [r4, 0x34]
- adds r1, r3
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
-_08113992:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r6, [r4, 0x26]
- adds r0, r6
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- cmp r0, 0x7F
- ble _081139C2
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x14
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_081139C2:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _081139D4
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081139D4:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8113950
-
- thumb_func_start sub_81139DC
-sub_81139DC: @ 81139DC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x32]
- ldr r0, =sub_8113A18
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81139DC
-
- thumb_func_start sub_8113A18
-sub_8113A18: @ 8113A18
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _08113A4E
- ldr r0, =sub_8113A58
- str r0, [r2, 0x1C]
-_08113A4E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113A18
-
- thumb_func_start sub_8113A58
-sub_8113A58: @ 8113A58
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x36]
- ldrh r0, [r3, 0x2E]
- subs r1, r0
- strh r1, [r3, 0x36]
- ldrh r0, [r3, 0x38]
- ldrh r2, [r3, 0x30]
- subs r0, r2
- strh r0, [r3, 0x38]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r3, 0x24]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08113A8A
- adds r0, r3, 0
- bl move_anim_8074EE0
-_08113A8A:
- pop {r0}
- bx r0
- thumb_func_end sub_8113A58
-
- thumb_func_start sub_8113A90
-sub_8113A90: @ 8113A90
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _08113AAC
- ldr r0, =gBattleAnimAttacker
- b _08113AAE
- .pool
-_08113AAC:
- ldr r0, =gBattleAnimTarget
-_08113AAE:
- ldrb r5, [r0]
- movs r6, 0x14
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- ldr r7, =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _08113B0C
- cmp r0, 0x1
- bgt _08113AE8
- cmp r0, 0
- beq _08113AF2
- b _08113B60
- .pool
-_08113AE8:
- cmp r0, 0x2
- beq _08113B26
- cmp r0, 0x3
- beq _08113B3E
- b _08113B60
-_08113AF2:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r4, 0x22]
- b _08113B60
-_08113B0C:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_80A861C
- subs r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x10
- strh r0, [r4, 0x22]
- b _08113B60
-_08113B26:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x8
- b _08113B54
-_08113B3E:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_80A861C
- adds r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_80A861C
- adds r0, 0x10
-_08113B54:
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r6, 0xEC
-_08113B60:
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- lsls r0, r6, 24
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r0, 0xC
- strh r0, [r4, 0x36]
- ldr r0, =0x0000fff4
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80A68D4
- ldr r0, =sub_8113B90
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113A90
-
- thumb_func_start sub_8113B90
-sub_8113B90: @ 8113B90
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08113BA4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_08113BA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8113B90
-
- thumb_func_start sub_8113BAC
-sub_8113BAC: @ 8113BAC
- push {r4-r7,lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r5, r1, r0
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- strh r1, [r5, 0x12]
- strh r0, [r5, 0x10]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x24]
- adds r0, 0x20
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08113C1C
- ldr r0, =0x0000fff4
- b _08113C1E
- .pool
-_08113C1C:
- ldr r0, =0x0000ffc0
-_08113C1E:
- strh r0, [r5, 0x18]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _08113C80
- add r4, sp, 0xC
- adds r0, r4, 0
- bl sub_80A6B30
- ldr r0, =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldrb r1, [r4, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- ldr r0, =0x04000016
- str r0, [sp]
- movs r7, 0x2
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08113CB0
- ldr r1, =gBattle_BG2_X
- b _08113CAA
- .pool
-_08113C80:
- ldr r0, =gBattle_BG2_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
- ldr r0, =0x0400001a
- str r0, [sp]
- movs r7, 0x4
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08113CB0
- ldr r1, =gBattle_BG1_X
-_08113CAA:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
-_08113CB0:
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r2, sp
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- mov r0, sp
- strb r1, [r0, 0x9]
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- strh r0, [r5, 0x20]
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- strh r1, [r5, 0xC]
- movs r0, 0x3
- bl sub_8114374
- movs r3, 0
- ldr r4, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_08113CDC:
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x1C]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _08113CDC
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- movs r0, 0x3F
- eors r7, r0
- movs r1, 0xFC
- lsls r1, 6
- adds r0, r1, 0
- orrs r7, r0
- movs r0, 0x4A
- adds r1, r7, 0
- bl SetGpuReg
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r2, =gBattle_WIN0H
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, =gBattle_WIN0V
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, =sub_8113D60
- str r0, [r5]
- add sp, 0x1C
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113BAC
-
- thumb_func_start sub_8113D60
-sub_8113D60: @ 8113D60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08113D7A
- b _08113E72
-_08113D7A:
- lsls r0, 2
- ldr r1, =_08113D8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08113D8C:
- .4byte _08113DA0
- .4byte _08113E02
- .4byte _08113E1C
- .4byte _08113E58
- .4byte _08113E6C
-_08113DA0:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08113E72
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08113DD0
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0xC
- beq _08113DDE
- adds r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _08113DDE
-_08113DD0:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _08113DDE
- subs r0, r1, 0x1
- strh r0, [r4, 0x20]
-_08113DDE:
- ldrh r1, [r4, 0x20]
- lsls r1, 8
- ldrh r0, [r4, 0x1E]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _08113E72
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _08113E72
- b _08113E5E
-_08113E02:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_8114244
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _08113E72
- b _08113E5E
-_08113E1C:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_8114244
- ldrh r1, [r4, 0x24]
- adds r1, 0x4
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r2, r0, 0x4
- strh r2, [r4, 0x26]
- lsls r1, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _08113E3E
- strh r2, [r4, 0x24]
-_08113E3E:
- ldr r3, =gBattle_WIN0H
- ldrh r2, [r4, 0x24]
- lsls r0, r2, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r3]
- lsls r2, 16
- lsls r1, 16
- cmp r2, r1
- bne _08113E72
- b _08113E5E
- .pool
-_08113E58:
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_08113E5E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08113E72
- .pool
-_08113E6C:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08113E72:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8113D60
-
- thumb_func_start sub_8113E78
-sub_8113E78: @ 8113E78
- push {r4-r7,lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _08113E94
- b _081140A6
-_08113E94:
- lsls r0, 2
- ldr r1, =_08113EA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08113EA8:
- .4byte _08113EBC
- .4byte _08113F40
- .4byte _08113F84
- .4byte _08113FF0
- .4byte _08114058
-_08113EBC:
- bl IsContest
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08113EF8
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- b _081140A6
- .pool
-_08113EF8:
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _08113F24
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =gBattle_BG2_X
- b _08113F2E
- .pool
-_08113F24:
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =gBattle_BG1_X
-_08113F2E:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
- b _08114044
- .pool
-_08113F40:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08113F68
- mov r0, sp
- bl sub_80A6B30
- ldr r0, =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- b _08113F78
- .pool
-_08113F68:
- ldr r0, =gBattle_BG2_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
-_08113F78:
- movs r0, 0x3
- bl sub_8114374
- b _08114044
- .pool
-_08113F84:
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_80A861C
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x4
- strh r1, [r5, 0x24]
- adds r0, 0x4
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08113FD8
- ldr r0, =0x0000fff4
- b _08113FDA
- .pool
-_08113FD8:
- ldr r0, =0x0000ffc0
-_08113FDA:
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- movs r0, 0x8
- strh r0, [r5, 0x20]
- b _08114044
- .pool
-_08113FF0:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08114000
- ldr r0, =0x04000016
- b _08114002
- .pool
-_08114000:
- ldr r0, =0x0400001a
-_08114002:
- str r0, [sp, 0x10]
- movs r3, 0
- add r4, sp, 0x10
- ldr r6, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r7, r6, r0
-_08114010:
- lsls r1, r3, 1
- adds r2, r1, r6
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r2]
- adds r1, r7
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _08114010
- ldr r1, =0xa2600001
- str r1, [r4, 0x4]
- movs r2, 0
- movs r0, 0x1
- strb r0, [r4, 0x8]
- strb r2, [r4, 0x9]
- ldr r0, [sp, 0x10]
- ldr r2, [r4, 0x8]
- bl ScanlineEffect_SetParams
-_08114044:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _081140A6
- .pool
-_08114058:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08114070
- ldr r1, =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- b _08114078
- .pool
-_08114070:
- ldr r1, =0x00003f3b
- movs r0, 0x4A
- bl SetGpuReg
-_08114078:
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r2, =gBattle_WIN0H
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, =gBattle_WIN0V
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldr r1, =0x0000080c
- movs r0, 0x52
- bl SetGpuReg
- ldr r0, =sub_81140C8
- str r0, [r5]
-_081140A6:
- add sp, 0x1C
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8113E78
-
- thumb_func_start sub_81140C8
-sub_81140C8: @ 81140C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _081140E2
- b _08114232
-_081140E2:
- lsls r0, 2
- ldr r1, =_081140F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081140F4:
- .4byte _08114108
- .4byte _08114134
- .4byte _0811419C
- .4byte _081141FE
- .4byte _08114210
-_08114108:
- ldrh r0, [r4, 0x12]
- adds r0, 0x8
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x16]
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _0811411E
- strh r2, [r4, 0x12]
-_0811411E:
- adds r0, r4, 0
- bl sub_8114244
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _08114132
- b _08114232
-_08114132:
- b _08114204
-_08114134:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- subs r0, r1
- cmp r0, 0x3F
- bgt _08114150
- ldrh r0, [r4, 0x24]
- subs r0, 0x4
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x4
- strh r0, [r4, 0x26]
- b _08114154
-_08114150:
- movs r0, 0x1
- strh r0, [r4, 0xA]
-_08114154:
- ldr r2, =gBattle_WIN0H
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x14]
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _08114176
- strh r2, [r4, 0x10]
-_08114176:
- adds r0, r4, 0
- bl sub_8114244
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08114232
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _08114232
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08114204
- .pool
-_0811419C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08114232
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081141CC
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081141DA
- subs r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _081141DA
-_081141CC:
- ldrh r1, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _081141DA
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
-_081141DA:
- ldrh r1, [r4, 0x20]
- lsls r1, 8
- ldrh r0, [r4, 0x1E]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08114232
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _08114232
- b _08114204
-_081141FE:
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_08114204:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08114232
- .pool
-_08114210:
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_08114232:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81140C8
-
- thumb_func_start sub_8114244
-sub_8114244: @ 8114244
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r0, [r6, 0x12]
- ldrh r4, [r6, 0x10]
- subs r0, r4
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _08114338
- movs r2, 0x22
- ldrsh r0, [r6, r2]
- bl __divsi3
- mov r8, r0
- movs r3, 0x14
- ldrsh r0, [r6, r3]
- lsls r5, r0, 8
- lsls r0, r4, 16
- movs r4, 0
- cmp r0, 0
- ble _081142A4
- ldr r0, =gScanlineEffectRegBuffers
- mov r12, r0
- ldr r7, =gScanlineEffect
-_08114278:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- add r3, r12
- adds r1, r2, 0
- subs r1, 0x9F
- ldrh r0, [r6, 0x1C]
- subs r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r2, r0
- blt _08114278
-_081142A4:
- ldrh r4, [r6, 0x10]
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bgt _081142EE
- ldr r0, =gScanlineEffectRegBuffers
- mov r12, r0
- ldr r7, =gScanlineEffect
-_081142B8:
- asrs r4, r3, 16
- cmp r4, 0
- blt _081142DA
- asrs r1, r5, 8
- subs r1, r4
- lsls r3, r4, 1
- ldrb r2, [r7, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- add r3, r12
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6, 0x1C]
- adds r1, r2
- strh r1, [r3]
-_081142DA:
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _081142B8
-_081142EE:
- movs r3, 0x1C
- ldrsh r0, [r6, r3]
- adds r0, 0x9F
- lsls r2, r4, 16
- asrs r1, r2, 16
- subs r5, r0, r1
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bge _08114366
- ldr r7, =gScanlineEffectRegBuffers
- ldr r4, =gScanlineEffect
-_08114306:
- asrs r3, r2, 16
- cmp r3, 0
- blt _0811431E
- lsls r2, r3, 1
- ldrb r1, [r4, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- strh r5, [r2]
- subs r5, 0x1
-_0811431E:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- blt _08114306
- b _08114366
- .pool
-_08114338:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- adds r5, r0, 0
- adds r5, 0x9F
- movs r4, 0
- ldr r3, =gScanlineEffectRegBuffers
- movs r2, 0xF0
- lsls r2, 3
- adds r6, r3, r2
-_0811434A:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r2, r0, 1
- adds r1, r2, r3
- strh r5, [r1]
- adds r2, r6
- strh r5, [r2]
- subs r5, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _0811434A
-_08114366:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114244
-
- thumb_func_start sub_8114374
-sub_8114374: @ 8114374
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- ldr r7, =gSprites
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r0, 0xD
- negs r0, r0
- adds r6, r0, 0
-_0811438A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081143AA
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r0, r6
- orrs r0, r5
- strb r0, [r1, 0x5]
-_081143AA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _0811438A
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114374
-
- thumb_func_start sub_81143C0
-sub_81143C0: @ 81143C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r6, =gBattleAnimAttacker
- ldrb r0, [r6]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- ldrb r0, [r6]
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_80A438C
- ldr r0, =gSprites
- mov r9, r0
- ldr r0, =gBattlerSpriteIds
- mov r8, r0
- ldrb r0, [r6]
- add r0, r8
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r7, 0x5
- negs r7, r7
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0811444E
- ldrb r0, [r6]
- eors r0, r5
- movs r1, 0x1
- eors r4, r1
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_80A438C
- ldrb r0, [r6]
- eors r0, r5
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
-_0811444E:
- mov r0, r10
- bl DestroyAnimVisualTask
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81143C0
-
- thumb_func_start sub_8114470
-sub_8114470: @ 8114470
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r5, 0
- bl sub_80A477C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _081144AC
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_80A477C
-_081144AC:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114470
-
- thumb_func_start sub_81144BC
-sub_81144BC: @ 81144BC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_80A67D8
- str r0, [r4, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81144BC
-
- thumb_func_start sub_81144F8
-sub_81144F8: @ 81144F8
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r0, =gBattle_WIN0H
- strh r6, [r0]
- ldr r0, =gBattle_WIN0V
- strh r6, [r0]
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000c08
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _0811455C
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_0811455C:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _081145D6
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081145D6
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0811458C
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _081145D6
-_0811458C:
- ldrb r0, [r4]
- movs r5, 0x2
- eors r0, r5
- bl IsBattlerSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081145D6
- ldr r3, =gSprites
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r4]
- eors r0, r5
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- movs r6, 0x1
-_081145D6:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08114614
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r5, [r0]
- b _0811465C
- .pool
-_08114614:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08114640
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _08114650
- .pool
-_08114640:
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_08114650:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
-_0811465C:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A89C8
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C1D210
- bl sub_80A6D48
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C1D0AC
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08C1D1E8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r2, =gBattle_BG1_X
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x60
- strh r0, [r2]
- ldr r2, =gBattle_BG1_Y
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- ldr r2, =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _08114708
- adds r0, r1, 0
- movs r1, 0
- bl sub_80A750C
- b _08114714
- .pool
-_08114708:
- lsls r0, r1, 4
- ldrh r3, [r2, 0x4]
- movs r1, 0x10
- movs r2, 0xB
- bl BlendPalette
-_08114714:
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xE]
- strh r6, [r0, 0x14]
- ldr r1, =sub_8114748
- str r1, [r0]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81144F8
-
- thumb_func_start sub_8114748
-sub_8114748: @ 8114748
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r2, =gBattle_BG1_X
- ldrh r3, [r2]
- subs r1, r3, 0x4
- strh r1, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x80
- beq _08114776
- b _08114886
-_08114776:
- strh r5, [r4, 0x1C]
- adds r0, r3, 0
- adds r0, 0x7C
- strh r0, [r2]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08114824
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081147B8
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_80A750C
-_081147B8:
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08114886
- ldr r2, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- b _08114886
- .pool
-_08114824:
- cmp r0, 0x3
- bne _08114886
- ldr r0, =gBattle_WIN0H
- strh r5, [r0]
- ldr r0, =gBattle_WIN0V
- strh r5, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08114856
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_08114856:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08114886:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114748
-
- thumb_func_start sub_811489C
-sub_811489C: @ 811489C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0x7
- bhi _08114900
- lsls r0, r1, 2
- ldr r1, =_081148C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081148C4:
- .4byte _081148E4
- .4byte _081148E4
- .4byte _081148E4
- .4byte _081148E4
- .4byte _081148F0
- .4byte _081148F4
- .4byte _081148F8
- .4byte _081148FC
-_081148E4:
- ldrb r0, [r2]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- b _08114902
-_081148F0:
- movs r4, 0
- b _08114908
-_081148F4:
- movs r4, 0x2
- b _08114908
-_081148F8:
- movs r4, 0x1
- b _08114908
-_081148FC:
- movs r4, 0x3
- b _08114908
-_08114900:
- movs r2, 0xFF
-_08114902:
- movs r0, 0
- cmp r0, 0
- beq _0811492E
-_08114908:
- adds r0, r4, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0811492C
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r2, [r0]
- b _0811492E
- .pool
-_0811492C:
- movs r2, 0xFF
-_0811492E:
- cmp r2, 0xFF
- beq _0811494A
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- ldr r1, =gBattleAnimArgs
- ldrb r1, [r1, 0x2]
- bl sub_80A750C
-_0811494A:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811489C
-
- thumb_func_start sub_8114960
-sub_8114960: @ 8114960
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gAnimMoveTurn
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _08114974
- ldr r1, =gBattleAnimArgs
- movs r0, 0
- strh r0, [r1, 0xE]
-_08114974:
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _08114980
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_08114980:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114960
-
- thumb_func_start sub_8114994
-sub_8114994: @ 8114994
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80A68D4
- ldr r0, =sub_81149FC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114994
-
- thumb_func_start sub_81149FC
-sub_81149FC: @ 81149FC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08114A50
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80A68D4
- ldr r0, =sub_8114A60
- str r0, [r5, 0x1C]
-_08114A50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81149FC
-
- thumb_func_start sub_8114A60
-sub_8114A60: @ 8114A60
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _08114A74
- adds r0, r4, 0
- bl DestroyAnimSprite
-_08114A74:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8114A60
-
- thumb_func_start sub_8114A7C
-sub_8114A7C: @ 8114A7C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80A6980
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08114A9C
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_08114A9C:
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, =gBattleAnimTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r6, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114A7C
-
- thumb_func_start sub_8114AF0
-sub_8114AF0: @ 8114AF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80A69CC
- ldr r4, =gBattleAnimTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord2
- lsls r0, 24
- lsrs r7, r0, 24
- bl Random2
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- bl Random2
- ands r4, r0
- adds r1, r5, 0
- cmp r1, 0x10
- ble _08114B38
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_08114B38:
- lsls r0, r4, 16
- asrs r1, r0, 16
- cmp r1, 0x10
- ble _08114B48
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_08114B48:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- strh r0, [r6, 0x2E]
- mov r1, r8
- adds r0, r1, r5
- strh r0, [r6, 0x32]
- adds r0, r7, r4
- strh r0, [r6, 0x36]
- ldr r0, =sub_80A6EEC
- str r0, [r6, 0x1C]
- ldr r1, =move_anim_8074EE0
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114AF0
-
- thumb_func_start sub_8114B80
-sub_8114B80: @ 8114B80
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x1
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r6, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08114BF4
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x2]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r6, 0x4]
- adds r0, r3
- strh r0, [r5, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- ble _08114BDA
- movs r1, 0x1
-_08114BDA:
- strh r1, [r5, 0x2E]
- ldr r0, =sub_8114C10
- b _08114C02
- .pool
-_08114BF4:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x22]
- negs r0, r0
- strh r0, [r5, 0x26]
- ldr r0, =sub_8114C4C
-_08114C02:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114B80
-
- thumb_func_start sub_8114C10
-sub_8114C10: @ 8114C10
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08114C2E
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
-_08114C2E:
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _08114C46
- adds r0, r2, 0
- bl DestroyAnimSprite
-_08114C46:
- pop {r0}
- bx r0
- thumb_func_end sub_8114C10
-
- thumb_func_start sub_8114C4C
-sub_8114C4C: @ 8114C4C
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _08114C5E
- cmp r1, 0x1
- beq _08114C74
- b _08114CB6
-_08114C5E:
- ldrh r0, [r3, 0x26]
- adds r0, 0x4
- strh r0, [r3, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _08114CB6
- strh r1, [r3, 0x26]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _08114CB6
-_08114C74:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _08114CB6
- movs r0, 0
- strh r0, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- 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
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08114CB6
- adds r0, r3, 0
- bl DestroyAnimSprite
-_08114CB6:
- pop {r0}
- bx r0
- thumb_func_end sub_8114C4C
-
- thumb_func_start sub_8114CBC
-sub_8114CBC: @ 8114CBC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r1, r0, r1
- ldr r0, =gBattleAnimArgs
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _08114CE8
- ldr r0, =sub_8114CFC
- b _08114CEA
- .pool
-_08114CE8:
- ldr r0, =sub_8114EB4
-_08114CEA:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114CBC
-
- thumb_func_start sub_8114CFC
-sub_8114CFC: @ 8114CFC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08114D16
- b _08114EAA
-_08114D16:
- lsls r0, 2
- ldr r1, =_08114D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08114D28:
- .4byte _08114D3C
- .4byte _08114DC4
- .4byte _08114DD4
- .4byte _08114E78
- .4byte _08114E8C
-_08114D3C:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _08114D70
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, =gBattle_BG1_Y
- b _08114D78
- .pool
-_08114D70:
- ldr r0, =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, =gBattle_BG2_Y
-_08114D78:
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- cmp r1, 0
- bge _08114D9A
- movs r0, 0
- strh r0, [r4, 0x24]
-_08114D9A:
- ldr r2, =gSprites
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08114E7E
- .pool
-_08114DC4:
- ldrb r0, [r4, 0x1E]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- bl sub_81150E0
- b _08114E7E
-_08114DD4:
- ldrh r0, [r4, 0xC]
- adds r0, 0x6
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08114DF6
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_08114DF6:
- ldr r1, =gSineTable
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- ldrh r3, [r4, 0xE]
- adds r2, r0, r3
- strh r2, [r4, 0x12]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08114E20
- ldr r1, =gBattle_BG1_Y
- b _08114E22
- .pool
-_08114E20:
- ldr r1, =gBattle_BG2_Y
-_08114E22:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _08114EAA
- ldrh r0, [r4, 0x24]
- movs r1, 0x78
- subs r2, r1, r0
- strh r2, [r4, 0x12]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _08114E4C
- ldr r1, =gBattle_BG1_Y
- b _08114E4E
- .pool
-_08114E4C:
- ldr r1, =gBattle_BG2_Y
-_08114E4E:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- ldr r2, =gSprites
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3, 0
- subs r0, r2
- strh r0, [r1, 0x24]
- b _08114E7E
- .pool
-_08114E78:
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_08114E7E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08114EAA
- .pool
-_08114E8C:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
- ldr r2, =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08114EAA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114CFC
-
- thumb_func_start sub_8114EB4
-sub_8114EB4: @ 8114EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- movs r4, 0
- strh r4, [r1, 0x24]
- strh r4, [r1, 0x26]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08114F00
- ldr r0, =gBattle_BG1_Y
- b _08114F02
- .pool
-_08114F00:
- ldr r0, =gBattle_BG2_Y
-_08114F02:
- strh r4, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114EB4
-
- thumb_func_start sub_8114F14
-sub_8114F14: @ 8114F14
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r1, r0, r1
- ldr r0, =gBattleAnimArgs
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _08114F40
- ldr r0, =sub_8114F54
- b _08114F42
- .pool
-_08114F40:
- ldr r0, =sub_8114FD8
-_08114F42:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8114F14
-
- thumb_func_start sub_8114F54
-sub_8114F54: @ 8114F54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _08114F78
- cmp r5, 0x1
- beq _08114FCC
- b _08114FD2
- .pool
-_08114F78:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r3, =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r5, [r0, 0x24]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x22]
- movs r0, 0xA0
- subs r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08114FD2
- .pool
-_08114FCC:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08114FD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8114F54
-
- thumb_func_start sub_8114FD8
-sub_8114FD8: @ 8114FD8
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _081150DA
- lsls r0, 2
- ldr r1, =_08115004
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08115004:
- .4byte _08115018
- .4byte _0811506C
- .4byte _0811507A
- .4byte _08115094
- .4byte _081150D4
-_08115018:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl sub_80A8364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _08115044
- ldr r0, =gBattle_BG1_X
- b _08115046
- .pool
-_08115044:
- ldr r0, =gBattle_BG2_X
-_08115046:
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- b _081150C2
- .pool
-_0811506C:
- ldrb r0, [r4, 0x1E]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0
- bl sub_81150E0
- b _081150C2
-_0811507A:
- ldr r2, =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x60
- strh r1, [r0, 0x26]
- b _081150C2
- .pool
-_08115094:
- ldr r2, =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _081150DA
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_081150C2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081150DA
- .pool
-_081150D4:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_081150DA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8114FD8
-
- thumb_func_start sub_81150E0
-sub_81150E0: @ 81150E0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- cmp r0, 0x1
- bne _08115104
- ldr r0, =gBattle_BG1_X
- ldrh r3, [r0]
- ldr r0, =0x04000014
- b _0811510A
- .pool
-_08115104:
- ldr r0, =gBattle_BG2_X
- ldrh r3, [r0]
- ldr r0, =0x04000018
-_0811510A:
- str r0, [sp]
- lsls r0, r1, 16
- cmp r0, 0
- bge _08115114
- movs r1, 0
-_08115114:
- lsls r2, r1, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- cmp r2, r0
- bge _08115140
- ldr r5, =gScanlineEffectRegBuffers
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_08115126:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r5
- strh r3, [r0]
- adds r1, r6
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r2, r1, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _08115126
-_08115140:
- lsls r1, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _0811516E
- ldr r4, =gScanlineEffectRegBuffers
- lsls r0, r3, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_08115158:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- adds r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _08115158
-_0811516E:
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl ScanlineEffect_SetParams
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81150E0
-
- thumb_func_start sub_81151A0
-sub_81151A0: @ 81151A0
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r7, r0, 0
- cmp r1, 0
- bne _081151BC
- ldr r0, =gBattleAnimAttacker
- b _081151BE
- .pool
-_081151BC:
- ldr r0, =gBattleAnimTarget
-_081151BE:
- ldrb r4, [r0]
- movs r6, 0x18
- adds r1, r7, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _081151DA
- negs r0, r6
- lsls r0, 16
- lsrs r6, r0, 16
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x4]
-_081151DA:
- adds r0, r4, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1E
- strh r0, [r5, 0x22]
- ldrh r1, [r7, 0xA]
- strh r1, [r5, 0x2E]
- ldrh r1, [r7, 0x4]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x32]
- ldrh r1, [r7, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80A68D4
- ldr r0, =sub_8115228
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81151A0
-
- thumb_func_start sub_8115228
-sub_8115228: @ 8115228
- push {r4,lr}
- adds r4, r0, 0
- bl TranslateAnimArc
- lsls r0, 24
- cmp r0, 0
- beq _0811523C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_0811523C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8115228
-
- thumb_func_start sub_8115244
-sub_8115244: @ 8115244
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08115260
- ldr r0, =gBattleAnimAttacker
- b _08115262
- .pool
-_08115260:
- ldr r0, =gBattleAnimTarget
-_08115262:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =0x0000fff0
- adds r0, r2
- ldr r4, =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- lsls r1, 5
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- bl GetBattlerYCoordWithElevation
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r6, 0x22]
- ldrh r2, [r6, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r1, r0
- ldr r3, =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData6
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldr r0, =sub_80A64B0
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115244
-
- thumb_func_start sub_81152DC
-sub_81152DC: @ 81152DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- ldr r0, =gBattleAnimArgs
- ldrh r2, [r0, 0x2]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r6, r0, 0
- cmp r1, 0
- beq _08115308
- adds r0, r2, 0x3
- b _08115314
- .pool
-_08115308:
- ldr r0, =gAnimMovePower
- ldrh r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0x3
-_08115314:
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x24]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xE]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _08115340
- cmp r0, 0x5
- bne _08115380
- ldr r0, =gBattle_BG3_X
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, =sub_81153AC
- b _0811539E
- .pool
-_08115340:
- movs r0, 0
- strh r0, [r4, 0x22]
- movs r5, 0
-_08115346:
- lsls r0, r5, 24
- lsrs r0, 24
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _08115370
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- adds r0, 0x9
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x8
- adds r1, r0
- ldr r0, =gBattlerSpriteIds
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r1]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_08115370:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08115346
- b _0811539C
- .pool
-_08115380:
- ldrb r0, [r6]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- cmp r0, 0xFF
- bne _08115398
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _081153A0
-_08115398:
- movs r0, 0x1
- strh r0, [r4, 0x22]
-_0811539C:
- ldr r0, =sub_81154A4
-_0811539E:
- str r0, [r4]
-_081153A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81152DC
-
- thumb_func_start sub_81153AC
-sub_81153AC: @ 81153AC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _08115430
- cmp r1, 0x1
- bgt _081153D4
- cmp r1, 0
- beq _081153DA
- b _0811549C
- .pool
-_081153D4:
- cmp r1, 0x2
- beq _08115490
- b _0811549C
-_081153DA:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811549C
- strh r1, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08115404
- ldr r1, =gBattle_BG3_X
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _0811540E
- .pool
-_08115404:
- ldr r0, =gBattle_BG3_X
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x26]
- subs r1, r2
- strh r1, [r0]
-_0811540E:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bne _0811549C
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- b _08115484
- .pool
-_08115430:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811549C
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- ands r1, r0
- cmp r1, 0
- bne _0811545C
- ldr r1, =gBattle_BG3_X
- ldrh r0, [r3, 0x24]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _08115466
- .pool
-_0811545C:
- ldr r0, =gBattle_BG3_X
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x24]
- subs r1, r2
- strh r1, [r0]
-_08115466:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0811549C
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0811549C
-_08115484:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0811549C
- .pool
-_08115490:
- ldr r1, =gBattle_BG3_X
- ldrh r0, [r3, 0x22]
- strh r0, [r1]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_0811549C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81153AC
-
- thumb_func_start sub_81154A4
-sub_81154A4: @ 81154A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _08115504
- cmp r5, 0x1
- bgt _081154CC
- cmp r5, 0
- beq _081154D2
- b _0811557E
- .pool
-_081154CC:
- cmp r5, 0x2
- beq _08115540
- b _0811557E
-_081154D2:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811557E
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_8115588
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0811557E
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- b _08115538
-_08115504:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0811557E
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_8115588
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0811557E
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0811557E
-_08115538:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0811557E
-_08115540:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r4, r7]
- cmp r2, r0
- bge _08115578
- ldr r0, =gSprites
- mov r12, r0
- adds r5, r4, 0
- adds r5, 0x8
- movs r6, 0
-_08115554:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- strh r6, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _08115554
-_08115578:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_0811557E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81154A4
-
- thumb_func_start sub_8115588
-sub_8115588: @ 8115588
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xC]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _081155B0
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r2, [r3, 0x24]
- adds r0, r4, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- b _081155C0
-_081155B0:
- movs r1, 0x24
- ldrsh r0, [r3, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_081155C0:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r3, r7]
- cmp r2, r0
- bge _081155F4
- ldr r6, =gSprites
- adds r5, r3, 0
- adds r5, 0x8
-_081155D0:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- cmp r2, r0
- blt _081155D0
-_081155F4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115588
-
- thumb_func_start AnimTask_IsPowerOver99
-AnimTask_IsPowerOver99: @ 8115600
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, =gBattleAnimArgs
- movs r2, 0
- ldr r0, =gAnimMovePower
- ldrh r0, [r0]
- cmp r0, 0x63
- bls _08115614
- movs r2, 0x1
-_08115614:
- strh r2, [r3, 0x1E]
- adds r0, r1, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsPowerOver99
-
- thumb_func_start sub_8115628
-sub_8115628: @ 8115628
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _08115648
- ldr r0, =gBattleAnimTarget
- b _0811564A
- .pool
-_08115648:
- ldr r0, =gBattleAnimAttacker
-_0811564A:
- ldrb r0, [r0]
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- ble _0811565A
- movs r0, 0x2
- eors r5, r0
-_0811565A:
- ldr r0, =sub_81156D0
- ldrb r1, [r6, 0x2]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x20
- subs r1, r0
- ldr r2, =0x000001ff
- adds r0, r2, 0
- ands r1, r0
- strh r1, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x3
- bl GetBattlerSpriteCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x40
- subs r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0xC]
- ldr r2, =gBattle_BG3_X
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- ldr r0, =gBattle_BG3_Y
- strh r1, [r0]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0xE]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115628
-
- thumb_func_start sub_81156D0
-sub_81156D0: @ 81156D0
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, =gTasks
- adds r2, r0, r1
- ldr r0, =gBattleAnimArgs
- movs r4, 0xE
- ldrsh r1, [r0, r4]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _08115710
- ldr r0, =gBattle_BG3_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG3_Y
- strh r1, [r0]
- adds r0, r3, 0
- bl DestroyTask
- b _0811571C
- .pool
-_08115710:
- ldr r1, =gBattle_BG3_X
- ldrh r0, [r2, 0xA]
- strh r0, [r1]
- ldr r1, =gBattle_BG3_Y
- ldrh r0, [r2, 0xC]
- strh r0, [r1]
-_0811571C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81156D0
-
- thumb_func_start sub_811572C
-sub_811572C: @ 811572C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0811576C
- ldrh r0, [r5, 0x6]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _0811577A
- .pool
-_0811576C:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0811577A:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x34]
- ldr r1, =sub_8115798
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811572C
-
- thumb_func_start sub_8115798
-sub_8115798: @ 8115798
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x1E
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x7F
- bhi _081157CA
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _081157D2
-_081157CA:
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_081157D2:
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _081157F6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081157F6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8115798
-
- thumb_func_start sub_81157FC
-sub_81157FC: @ 81157FC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_811583C
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl BeginNormalPaletteFade
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_8115884
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81157FC
-
- thumb_func_start sub_811583C
-sub_811583C: @ 811583C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x1
- mov r8, r0
- mov r1, r8
- ands r1, r4
- mov r8, r1
- lsls r0, 16
- asrs r1, r0, 17
- ands r1, r4
- asrs r2, r0, 18
- ands r2, r4
- asrs r3, r0, 19
- ands r3, r4
- asrs r6, r0, 20
- ands r6, r4
- asrs r5, r0, 21
- ands r5, r4
- asrs r0, 22
- ands r0, r4
- str r6, [sp]
- str r5, [sp, 0x4]
- str r0, [sp, 0x8]
- mov r0, r8
- bl sub_80A75AC
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811583C
-
- thumb_func_start sub_8115884
-sub_8115884: @ 8115884
- push {lr}
- adds r2, r0, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811589A
- adds r0, r2, 0
- bl DestroyAnimSprite
-_0811589A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115884
-
- thumb_func_start sub_81158A4
-sub_81158A4: @ 81158A4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x34]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xC]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4]
- strh r0, [r5, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- bl sub_811583C
- ldrb r1, [r4, 0x8]
- ldrh r2, [r4, 0x6]
- bl BlendPalettes
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_81158F8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81158A4
-
- thumb_func_start sub_81158F8
-sub_81158F8: @ 81158F8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0811590C
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _0811597C
-_0811590C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811597C
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08115930
- ldr r0, =sub_8115984
- str r0, [r4, 0x1C]
- b _0811597C
- .pool
-_08115930:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- bl sub_811583C
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08115956
- ldrh r1, [r4, 0x36]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x34]
- adds r0, r3, 0
- bl BlendPalettes
- b _08115964
-_08115956:
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x38]
- adds r0, r3, 0
- bl BlendPalettes
-_08115964:
- ldrh r0, [r4, 0x30]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- subs r0, 0x1
- strh r0, [r4, 0x32]
-_0811597C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81158F8
-
- thumb_func_start sub_8115984
-sub_8115984: @ 8115984
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081159AA
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- bl sub_811583C
- movs r1, 0
- movs r2, 0
- bl BlendPalettes
- adds r0, r4, 0
- bl DestroyAnimSprite
-_081159AA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115984
-
- thumb_func_start sub_81159B4
-sub_81159B4: @ 81159B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r2, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x30]
- movs r0, 0x8
- strh r0, [r4, 0x32]
- movs r0, 0x28
- strh r0, [r4, 0x34]
- movs r0, 0x70
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r1, =sub_80A634C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81159B4
-
- thumb_func_start sub_8115A04
-sub_8115A04: @ 8115A04
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, =gBattleAnimArgs
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_8115A54
- ldr r0, =sub_8115AA4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115A04
-
- thumb_func_start sub_8115A54
-sub_8115A54: @ 8115A54
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- bl sub_811583C
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115A54
-
- thumb_func_start sub_8115AA4
-sub_8115AA4: @ 8115AA4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08115B06
- ldr r1, =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _08115B00
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08115AE4
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _08115AE8
- .pool
-_08115AE4:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_08115AE8:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08115AF8
- movs r2, 0
-_08115AF8:
- adds r0, r4, 0
- bl sub_8115A54
- b _08115B06
-_08115B00:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08115B06:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8115AA4
-
- thumb_func_start sub_8115B0C
-sub_8115B0C: @ 8115B0C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r3, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldr r2, =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0xE]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x12]
- strh r5, [r0, 0x18]
- movs r4, 0
- ldr r0, =gBattlersCount
- ldrb r1, [r0]
- mov r9, r3
- mov r8, r2
- cmp r5, r1
- bge _08115B74
- ldr r0, =gBattleAnimAttacker
- ldrb r3, [r0]
- ldr r7, =gBattleAnimTarget
- movs r0, 0x1
- mov r12, r0
- adds r2, r1, 0
-_08115B5A:
- cmp r4, r3
- beq _08115B6E
- ldrb r1, [r7]
- cmp r4, r1
- beq _08115B6E
- adds r1, r4, 0
- adds r1, 0x10
- mov r0, r12
- lsls r0, r1
- orrs r5, r0
-_08115B6E:
- adds r4, 0x1
- cmp r4, r2
- blt _08115B5A
-_08115B74:
- mov r2, r8
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _08115B82
- movs r0, 0xE
- orrs r5, r0
-_08115B82:
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- add r4, r9
- lsrs r0, r5, 16
- strh r0, [r4, 0x1A]
- movs r0, 0xFF
- ands r5, r0
- strh r5, [r4, 0x1C]
- ldrb r2, [r4, 0x10]
- adds r0, r6, 0
- movs r1, 0
- bl sub_8115BC8
- ldr r0, =sub_8115C18
- str r0, [r4]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115B0C
-
- thumb_func_start sub_8115BC8
-sub_8115BC8: @ 8115BC8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- ldrh r1, [r4, 0x1C]
- orrs r0, r1
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115BC8
-
- thumb_func_start sub_8115C18
-sub_8115C18: @ 8115C18
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08115C7A
- ldr r1, =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _08115C74
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08115C58
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _08115C5C
- .pool
-_08115C58:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_08115C5C:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08115C6C
- movs r2, 0
-_08115C6C:
- adds r0, r4, 0
- bl sub_8115BC8
- b _08115C7A
-_08115C74:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08115C7A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8115C18
-
- thumb_func_start sub_8115C80
-sub_8115C80: @ 8115C80
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, =gBattleAnimArgs
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_8115CD0
- ldr r0, =sub_8115D2C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115C80
-
- thumb_func_start sub_8115CD0
-sub_8115CD0: @ 8115CD0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x8]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115CD0
-
- thumb_func_start sub_8115D2C
-sub_8115D2C: @ 8115D2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08115D8E
- ldr r1, =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _08115D88
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08115D6C
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _08115D70
- .pool
-_08115D6C:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_08115D70:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08115D80
- movs r2, 0
-_08115D80:
- adds r0, r4, 0
- bl sub_8115CD0
- b _08115D8E
-_08115D88:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08115D8E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8115D2C
-
- thumb_func_start sub_8115D94
-sub_8115D94: @ 8115D94
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r5, =gBattleAnimArgs
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r5]
- strh r0, [r4, 0x16]
- ldrh r0, [r5]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldrb r3, [r5, 0x8]
- ldrh r0, [r5, 0x6]
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =sub_8115E00
- str r0, [r4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115D94
-
- thumb_func_start sub_8115E00
-sub_8115E00: @ 8115E00
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08115E28
- subs r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _08115EAC
- .pool
-_08115E28:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08115EAC
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _08115E4C
- ldr r0, =sub_8115EB8
- str r0, [r4]
- b _08115EAC
- .pool
-_08115E4C:
- ldrh r0, [r4, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08115E7A
- ldrb r3, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- b _08115E8A
-_08115E7A:
- ldrb r3, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
-_08115E8A:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- eors r0, r2
- strh r0, [r1, 0xA]
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
-_08115EAC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115E00
-
- thumb_func_start sub_8115EB8
-sub_8115EB8: @ 8115EB8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08115EFE
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- str r5, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_08115EFE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115EB8
-
- thumb_func_start sub_8115F10
-sub_8115F10: @ 8115F10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r6, [r0]
- ldr r0, =gBattleAnimTarget
- ldrb r7, [r0]
- ldr r4, =gBattleAnimArgs
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08115F4A
- str r2, [sp]
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80A75AC
- adds r2, r0, 0
-_08115F4A:
- ldrh r1, [r4, 0x2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08115F5C
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r6
- orrs r2, r0
-_08115F5C:
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08115F6E
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r7
- orrs r2, r0
-_08115F6E:
- adds r0, r2, 0
- bl InvertPlttBuffer
- mov r0, r8
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115F10
-
- thumb_func_start sub_8115F94
-sub_8115F94: @ 8115F94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08115FD6
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x10]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x12]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x16]
-_08115FD6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- mov r9, r0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- mov r10, r0
- ldrh r1, [r4, 0xC]
- movs r7, 0x80
- lsls r7, 1
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08115FF8
- ldr r5, =0x0000ffff
-_08115FF8:
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08116028
- ldr r2, =gSprites
- ldr r0, =gHealthboxSpriteIds
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- lsls r1, r0
- lsls r1, 16
- orrs r5, r1
-_08116028:
- ldrh r1, [r4, 0xE]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0811603C
- adds r0, r6, 0
- mov r2, r9
- lsls r0, r2
- lsls r0, 16
- orrs r5, r0
-_0811603C:
- ldrh r1, [r4, 0x10]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08116050
- adds r0, r6, 0
- mov r1, r10
- lsls r0, r1
- lsls r0, 16
- orrs r5, r0
-_08116050:
- movs r1, 0x12
- ldrsb r1, [r4, r1]
- movs r2, 0x14
- ldrsb r2, [r4, r2]
- movs r3, 0x16
- ldrsb r3, [r4, r3]
- adds r0, r5, 0
- bl TintPlttBuffer
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0811607A
- adds r0, r5, 0
- bl UnfadePlttBuffer
- mov r0, r8
- bl DestroyAnimVisualTask
-_0811607A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8115F94
-
- thumb_func_start sub_81160A4
-sub_81160A4: @ 81160A4
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _081160EC
- cmp r0, 0x1
- bgt _081160DC
- cmp r0, 0
- beq _081160E2
- b _08116104
- .pool
-_081160DC:
- cmp r0, 0x2
- beq _081160F4
- b _08116104
-_081160E2:
- ldr r1, =gBattle_BG3_X
- b _081160F6
- .pool
-_081160EC:
- ldr r1, =gBattle_BG3_Y
- b _081160F6
- .pool
-_081160F4:
- ldr r1, =gSpriteCoordOffsetX
-_081160F6:
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- b _0811610C
- .pool
-_08116104:
- ldr r1, =gSpriteCoordOffsetY
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
-_0811610C:
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r0, 16
- orrs r1, r0
- ldrh r0, [r1]
- strh r0, [r4, 0x36]
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08116130
- bl sub_81161F4
-_08116130:
- ldr r0, =sub_8116148
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81160A4
-
- thumb_func_start sub_8116148
-sub_8116148: @ 8116148
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _0811618A
- subs r0, r1, 0x1
- strh r0, [r3, 0x34]
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _0811616A
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _081161E2
-_0811616A:
- ldrh r0, [r3, 0x32]
- strh r0, [r3, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- ldrh r0, [r3, 0x2E]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- b _081161E2
-_0811618A:
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- ldrh r0, [r3, 0x36]
- strh r0, [r1]
- ldrh r0, [r3, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _081161DC
- movs r4, 0
- ldr r5, =gBattlersCount
- ldrb r0, [r5]
- cmp r4, r0
- bcs _081161DC
- ldr r2, =gSprites
- mov r12, r2
- ldr r6, =gBattlerSpriteIds
- movs r7, 0x3
- negs r7, r7
-_081161BA:
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- cmp r4, r0
- bcc _081161BA
-_081161DC:
- adds r0, r3, 0
- bl DestroyAnimSprite
-_081161E2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116148
-
- thumb_func_start sub_81161F4
-sub_81161F4: @ 81161F4
- push {r4-r6,lr}
- ldr r6, =gSprites
- ldr r4, =gBattlerSpriteIds
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x3
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r3, =gBattleAnimTarget
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r0, =gBattleAnimArgs
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _0811627C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- b _08116298
- .pool
-_0811627C:
- cmp r0, 0
- bne _08116284
- ldrb r0, [r5]
- b _08116286
-_08116284:
- ldrb r0, [r3]
-_08116286:
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
-_08116298:
- orrs r1, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81161F4
-
- thumb_func_start sub_81162A4
-sub_81162A4: @ 81162A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r3, =gBattleAnimArgs
- ldrh r1, [r3]
- strh r1, [r2, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x18]
- ldr r4, =gBattle_BG3_X
- ldrh r1, [r3]
- strh r1, [r4]
- ldr r4, =gBattle_BG3_Y
- ldrh r1, [r3, 0x2]
- strh r1, [r4]
- ldr r1, =sub_81162F8
- str r1, [r2]
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81162A4
-
- thumb_func_start sub_81162F8
-sub_81162F8: @ 81162F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _0811637E
- ldr r0, =gBattle_BG3_X
- ldrh r2, [r0]
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- adds r6, r0, 0
- cmp r2, r1
- bne _08116330
- ldrh r0, [r3, 0x8]
- negs r0, r0
- b _08116332
- .pool
-_08116330:
- ldrh r0, [r3, 0x8]
-_08116332:
- strh r0, [r6]
- ldr r2, =gBattle_BG3_Y
- ldrh r3, [r2]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- mov r7, r12
- adds r4, r0, r7
- movs r7, 0xA
- ldrsh r0, [r4, r7]
- cmn r3, r0
- bne _08116354
- movs r0, 0
- b _08116358
- .pool
-_08116354:
- ldrh r0, [r4, 0xA]
- negs r0, r0
-_08116358:
- strh r0, [r2]
- adds r0, r1, r5
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x18]
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0xC]
- subs r1, 0x1
- strh r1, [r0, 0xC]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0
- bne _08116382
- strh r1, [r6]
- strh r1, [r2]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _08116382
-_0811637E:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_08116382:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81162F8
-
- thumb_func_start sub_8116388
-sub_8116388: @ 8116388
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081163AC
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- b _081163B4
- .pool
-_081163AC:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A6980
-_081163B4:
- ldr r0, =sub_80A67BC
- str r0, [r5, 0x1C]
- ldr r1, =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116388
-
- thumb_func_start sub_81163D0
-sub_81163D0: @ 81163D0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081163F4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- b _081163FC
- .pool
-_081163F4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A6980
-_081163FC:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, =sub_80A67BC
- str r0, [r5, 0x1C]
- ldr r1, =sub_810E2C8
- adds r0, r5, 0
- bl StoreSpriteCallbackInData6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81163D0
-
- thumb_func_start sub_8116420
-sub_8116420: @ 8116420
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08116444
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08116444
- ldr r1, =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_08116444:
- adds r0, r4, 0
- bl sub_8116388
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116420
-
- thumb_func_start sub_8116458
-sub_8116458: @ 8116458
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08116474
- bl Random2
- movs r1, 0x3
- ands r1, r0
- strh r1, [r5, 0x2]
-_08116474:
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08116494
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A69CC
- b _0811649C
- .pool
-_08116494:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80A6980
-_0811649C:
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x30
- bl __umodsi3
- ldr r1, =0x0000ffe8
- adds r0, r1
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- ldr r1, =0x0000fff4
- adds r0, r1
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116458
-
- thumb_func_start sub_81164F0
-sub_81164F0: @ 81164F0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gBattleAnimArgs
- ldrb r0, [r5]
- bl GetAnimBattlerSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x26]
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A67BC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81164F0
-
- thumb_func_start sub_8116560
-sub_8116560: @ 8116560
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0811657C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A69CC
- b _08116584
- .pool
-_0811657C:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A6980
-_08116584:
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x2E]
- ldr r1, =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData6
- ldr r0, =sub_80A64B0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116560
-
- thumb_func_start sub_81165A8
-sub_81165A8: @ 81165A8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gBattleAnimArgs
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081165CC
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A69CC
- b _081165D4
- .pool
-_081165CC:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A6980
-_081165D4:
- ldr r0, =sub_81165E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81165A8
-
- thumb_func_start sub_81165E4
-sub_81165E4: @ 81165E4
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- 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
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0811661A
- adds r0, r3, 0
- bl DestroyAnimSprite
-_0811661A:
- pop {r0}
- bx r0
- thumb_func_end sub_81165E4
-
- thumb_func_start sub_8116620
-sub_8116620: @ 8116620
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_811583C
- adds r6, r0, 0
- ldrh r3, [r4]
- lsls r3, 16
- asrs r0, r3, 23
- movs r4, 0x1
- ands r0, r4
- asrs r1, r3, 24
- ands r1, r4
- asrs r2, r3, 25
- ands r2, r4
- asrs r3, 26
- ands r3, r4
- bl sub_80A76C4
- orrs r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8116874
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116620
-
- thumb_func_start sub_8116664
-sub_8116664: @ 8116664
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- movs r0, 0x1
- bl sub_811583C
- adds r5, r0, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- bhi _0811670E
- lsls r0, 2
- ldr r1, =_08116698
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08116698:
- .4byte _081166BA
- .4byte _081166C6
- .4byte _081166B8
- .4byte _081166C4
- .4byte _081166D4
- .4byte _081166EC
- .4byte _081166F4
- .4byte _08116700
-_081166B8:
- movs r5, 0
-_081166BA:
- mov r0, sp
- ldr r1, =gBattleAnimAttacker
- b _081166CA
- .pool
-_081166C4:
- movs r5, 0
-_081166C6:
- mov r0, sp
- ldr r1, =gBattleAnimTarget
-_081166CA:
- ldrb r1, [r1]
- strb r1, [r0]
- b _0811670E
- .pool
-_081166D4:
- mov r1, sp
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- b _0811670E
- .pool
-_081166EC:
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- b _0811670E
-_081166F4:
- movs r5, 0
- mov r2, sp
- ldr r0, =gBattleAnimAttacker
- b _08116706
- .pool
-_08116700:
- movs r5, 0
- mov r2, sp
- ldr r0, =gBattleAnimTarget
-_08116706:
- ldrb r0, [r0]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2]
-_0811670E:
- movs r4, 0
- mov r6, sp
-_08116712:
- ldrb r0, [r6]
- cmp r4, r0
- beq _0811673C
- ldrb r0, [r6, 0x1]
- cmp r4, r0
- beq _0811673C
- adds r0, r4, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0811673C
- adds r0, r4, 0
- bl sub_80A77AC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- orrs r5, r1
-_0811673C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08116712
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_8116874
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116664
-
- thumb_func_start sub_811675C
-sub_811675C: @ 811675C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_811583C
- adds r2, r0, 0
- ldr r0, =gBattleTerrain
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _08116832
- lsls r0, 2
- ldr r1, =_0811678C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0811678C:
- .4byte _081167B4
- .4byte _081167C4
- .4byte _081167D0
- .4byte _081167E0
- .4byte _081167EC
- .4byte _081167FC
- .4byte _0811680C
- .4byte _0811681C
- .4byte _0811682C
- .4byte _0811682C
-_081167B4:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00000b0c
- b _08116830
- .pool
-_081167C4:
- ldr r1, =gBattleAnimArgs
- movs r0, 0x9E
- lsls r0, 4
- b _08116830
- .pool
-_081167D0:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00002f1e
- b _08116830
- .pool
-_081167E0:
- ldr r1, =gBattleAnimArgs
- movs r0, 0x90
- lsls r0, 7
- b _08116830
- .pool
-_081167EC:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00007ecb
- b _08116830
- .pool
-_081167FC:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00007ecb
- b _08116830
- .pool
-_0811680C:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00002a16
- b _08116830
- .pool
-_0811681C:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00000d2e
- b _08116830
- .pool
-_0811682C:
- ldr r1, =gBattleAnimArgs
- ldr r0, =0x00007fff
-_08116830:
- strh r0, [r1, 0x8]
-_08116832:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_8116874
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811675C
-
- thumb_func_start AnimTask_BlendParticle
-AnimTask_BlendParticle: @ 8116848
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimArgs
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- adds r0, r4, 0
- bl sub_8116874
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_BlendParticle
-
- thumb_func_start sub_8116874
-sub_8116874: @ 8116874
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- strh r1, [r2, 0x8]
- lsrs r1, 16
- strh r1, [r2, 0xA]
- ldr r3, =gBattleAnimArgs
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x10]
- ldrh r1, [r3, 0x8]
- strh r1, [r2, 0x12]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0x1C]
- ldr r1, =sub_81168B8
- str r1, [r2]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116874
-
- thumb_func_start sub_81168B8
-sub_81168B8: @ 81168B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r2, =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1A]
- mov r8, r0
- movs r4, 0x1A
- ldrsh r1, [r3, r4]
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- mov r9, r2
- cmp r1, r0
- bne _0811694E
- strh r6, [r3, 0x1A]
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r0, 16
- orrs r4, r0
- mov r8, r5
- cmp r4, 0
- beq _0811691A
- adds r5, r3, 0
-_081168F8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811690C
- ldrb r2, [r5, 0x1C]
- ldrh r3, [r5, 0x12]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
-_0811690C:
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r4, 1
- cmp r4, 0
- bne _081168F8
-_0811691A:
- mov r4, r8
- adds r0, r4, r7
- lsls r0, 3
- mov r1, r9
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- movs r4, 0x1C
- ldrsh r3, [r2, r4]
- movs r4, 0x10
- ldrsh r1, [r2, r4]
- cmp r3, r1
- bge _0811693C
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- b _08116954
- .pool
-_0811693C:
- cmp r3, r1
- ble _08116946
- subs r0, 0x1
- strh r0, [r2, 0x1C]
- b _08116954
-_08116946:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
- b _08116954
-_0811694E:
- mov r0, r8
- adds r0, 0x1
- strh r0, [r3, 0x1A]
-_08116954:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81168B8
-
- thumb_func_start sub_8116960
-sub_8116960: @ 8116960
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gBattleAnimArgs
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrb r4, [r4, 0x8]
- str r4, [sp]
- bl BeginHardwarePaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81169A0
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116960
-
- thumb_func_start sub_81169A0
-sub_81169A0: @ 81169A0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081169B8
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_081169B8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81169A0
-
- thumb_func_start sub_81169C0
-sub_81169C0: @ 81169C0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r1, r0
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2]
- movs r3, 0
- strh r0, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x4]
- strh r0, [r1, 0xE]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0x10]
- strh r3, [r1, 0x12]
- ldr r0, =sub_81169F8
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81169C0
-
- thumb_func_start sub_81169F8
-sub_81169F8: @ 81169F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08116ABC
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08116A28
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _08116ACA
- .pool
-_08116A28:
- ldrb r0, [r4, 0x8]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- blt _08116AA6
- ldr r6, =gSprites
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r6
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x2
- cmp r0, 0
- beq _08116A50
- movs r2, 0x1
-_08116A50:
- lsls r2, 2
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x5]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0xE]
- strh r1, [r0, 0x2E]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x30]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strh r1, [r0, 0x32]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_8116AD0
- str r1, [r0]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_08116AA6:
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- b _08116ACA
- .pool
-_08116ABC:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08116ACA
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_08116ACA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81169F8
-
- thumb_func_start sub_8116AD0
-sub_8116AD0: @ 8116AD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08116AE4
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _08116B08
-_08116AE4:
- ldr r3, =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_08116B08:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116AD0
-
- thumb_func_start sub_8116B14
-sub_8116B14: @ 8116B14
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, =gBattle_WIN0H
- strh r7, [r0]
- ldr r0, =gBattle_WIN0V
- strh r7, [r0]
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000c08
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0xA
- bl GetGpuReg
- add r4, sp, 0x10
- strh r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r4]
- mov r2, sp
- adds r2, 0x11
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08116BA2
- ldrb r1, [r4]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
-_08116BA2:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _08116C26
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08116C26
- ldr r5, =gBattleAnimAttacker
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08116BD2
- ldrb r0, [r5]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _08116C26
-_08116BD2:
- ldrb r0, [r5]
- movs r6, 0x2
- eors r0, r6
- bl IsBattlerSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08116C26
- ldr r3, =gSprites
- ldr r1, =gBattlerSpriteIds
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
- movs r7, 0x1
-_08116C26:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08116C64
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r5, [r0]
- b _08116CAC
- .pool
-_08116C64:
- ldr r4, =gBattleAnimAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08116C90
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _08116CA0
- .pool
-_08116C90:
- ldr r1, =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_08116CA0:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
-_08116CAC:
- movs r0, 0
- bl GetAnimBattlerSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A89C8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r0, sp
- bl sub_80A6B30
- ldr r1, =gUnknown_08C20684
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C20668
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_08597418
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- adds r1, 0x1
- movs r2, 0x2
- bl LoadPalette
- ldr r2, =gBattle_BG1_X
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r2, =gBattle_BG1_Y
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r1, =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r7, [r0, 0x14]
- ldr r1, =sub_8116D64
- str r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116B14
-
- thumb_func_start sub_8116D64
-sub_8116D64: @ 8116D64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x1C]
- adds r0, 0x4
- movs r1, 0
- mov r8, r1
- strh r0, [r5, 0x1C]
- ldr r7, =gBattle_BG1_Y
- ldrh r2, [r7]
- subs r1, r2, 0x4
- strh r1, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _08116E86
- mov r0, r8
- strh r0, [r5, 0x1C]
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r7]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _08116E86
- movs r0, 0
- bl sub_80A477C
- ldr r0, =gBattle_WIN0H
- mov r1, r8
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08116DF6
- movs r0, 0xA
- bl GetGpuReg
- add r1, sp, 0x10
- strh r0, [r1]
- ldrb r2, [r1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrh r1, [r1]
- movs r0, 0xA
- bl SetGpuReg
-_08116DF6:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl GetAnimBattlerSpriteId
- ldr r4, =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldrb r0, [r0, 0x9]
- bl sub_80A6C68
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08116E7C
- ldr r2, =gBattlerSpriteIds
- ldr r0, =gBattleAnimAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_08116E7C:
- mov r2, r8
- strh r2, [r7]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08116E86:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116D64
-
- thumb_func_start sub_8116EB4
-sub_8116EB4: @ 8116EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203A110
- movs r0, 0x18
- bl AllocZeroed
- str r0, [r4]
- movs r2, 0
- ldr r3, =gBattleAnimArgs
-_08116EC8:
- ldr r1, [r4]
- lsls r0, r2, 1
- adds r1, 0x4
- adds r1, r0
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08116EC8
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_8116F04
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116EB4
-
- thumb_func_start sub_8116F04
-sub_8116F04: @ 8116F04
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_0203A110
- ldr r1, [r0]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08116F24
- ldr r0, =gBattleAnimAttacker
- b _08116F26
- .pool
-_08116F24:
- ldr r0, =gBattleAnimTarget
-_08116F26:
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r4, =gUnknown_0203A110
- ldr r2, [r4]
- ldrb r0, [r2]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2, 0x1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08116F56
- ldr r1, [r4]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08116F5C
- ldrb r0, [r1, 0x1]
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _08116F5C
-_08116F56:
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0xA]
-_08116F5C:
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0
- bl SetAnimBgAttribute
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl SetAnimBgAttribute
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08116FBA
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x1
- bl SetAnimBgAttribute
-_08116FBA:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _08117036
- ldr r4, =gUnknown_0203A110
- ldr r1, [r4]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08117036
- ldrb r0, [r1]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08116FEC
- ldr r0, [r4]
- ldrb r0, [r0]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _08117036
-_08116FEC:
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl IsBattlerSpriteVisible
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _08117036
- ldr r3, =gSprites
- ldr r1, =gBattlerSpriteIds
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl SetAnimBgAttribute
- ldr r0, [r4]
- strb r5, [r0, 0x2]
-_08117036:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08117078
- ldr r0, =gUnknown_0203A110
- ldr r1, [r0]
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- b _081170C4
- .pool
-_08117078:
- ldr r4, =gUnknown_0203A110
- ldr r0, [r4]
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _081170A8
- ldr r1, =gBattlerPartyIndexes
- ldr r0, [r4]
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _081170BA
- .pool
-_081170A8:
- ldr r1, =gBattlerPartyIndexes
- ldr r0, [r4]
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_081170BA:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- ldr r1, [r4]
-_081170C4:
- strh r0, [r1, 0x14]
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81170EC
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8116F04
-
- thumb_func_start sub_81170EC
-sub_81170EC: @ 81170EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r6, =gBattlerSpriteIds
- ldr r4, =gUnknown_0203A110
- ldr r2, [r4]
- ldrb r0, [r2]
- adds r1, r0, r6
- ldrb r1, [r1]
- ldrh r2, [r2, 0x14]
- bl sub_80A89C8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, [r4]
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0811712E
- ldrb r0, [r2, 0x1]
- adds r1, r0, r6
- ldrb r1, [r1]
- ldrh r2, [r2, 0x14]
- bl sub_80A89C8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_0811712E:
- mov r0, sp
- bl sub_80A6B30
- ldr r0, [r4]
- movs r4, 0x4
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bne _08117158
- ldr r1, =gUnknown_08C2D930
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
- b _08117162
- .pool
-_08117158:
- ldr r1, =gUnknown_08C2DA4C
- mov r0, sp
- movs r2, 0
- bl sub_80A6D60
-_08117162:
- mov r0, sp
- ldrb r0, [r0, 0x9]
- ldr r1, =gUnknown_08C2D720
- mov r2, sp
- ldrh r2, [r2, 0xA]
- bl sub_80A6CC0
- ldr r0, =gUnknown_0203A110
- ldr r0, [r0]
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x6
- bhi _081171F8
- lsls r0, 2
- ldr r1, =_08117198
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08117198:
- .4byte _081171B4
- .4byte _081171BC
- .4byte _081171C4
- .4byte _081171CC
- .4byte _081171D4
- .4byte _081171DC
- .4byte _081171E4
-_081171B4:
- ldr r0, =gUnknown_08C2DB88
- b _081171E6
- .pool
-_081171BC:
- ldr r0, =gUnknown_08C2DB68
- b _081171E6
- .pool
-_081171C4:
- ldr r0, =gUnknown_08C2DBA8
- b _081171E6
- .pool
-_081171CC:
- ldr r0, =gUnknown_08C2DBC8
- b _081171E6
- .pool
-_081171D4:
- ldr r0, =gUnknown_08C2DC08
- b _081171E6
- .pool
-_081171DC:
- ldr r0, =gUnknown_08C2DC28
- b _081171E6
- .pool
-_081171E4:
- ldr r0, =gUnknown_08C2DC48
-_081171E6:
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08117206
- .pool
-_081171F8:
- ldr r0, =gUnknown_08C2DBE8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_08117206:
- ldr r3, =gBattle_BG1_X
- movs r2, 0
- strh r2, [r3]
- ldr r0, =gBattle_BG1_Y
- strh r2, [r0]
- ldr r1, =gUnknown_0203A110
- ldr r0, [r1]
- movs r4, 0x4
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0x1
- bne _08117248
- movs r0, 0x40
- strh r0, [r3]
- ldr r2, =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- ldr r1, =0x0000fffd
- b _08117254
- .pool
-_08117248:
- ldr r2, =gTasks
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x3
-_08117254:
- strh r1, [r0, 0xA]
- ldr r0, [r4]
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08117274
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- strh r1, [r0, 0x10]
- movs r1, 0x14
- b _08117280
- .pool
-_08117274:
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0xD
- strh r1, [r0, 0x10]
- movs r1, 0x1E
-_08117280:
- strh r1, [r0, 0x12]
- adds r1, r3, r5
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- ldr r3, [r4]
- ldrh r0, [r3, 0xA]
- strh r0, [r1, 0xC]
- mov r4, r8
- strh r4, [r1, 0xE]
- ldrb r0, [r3, 0x2]
- strh r0, [r1, 0x14]
- ldr r2, =gBattlerSpriteIds
- ldrb r0, [r3, 0x1]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x16]
- ldr r0, =sub_81172EC
- str r0, [r1]
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _081172CC
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning2
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xEF
- bl PlaySE12WithPanning
- b _081172E0
- .pool
-_081172CC:
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning2
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xF5
- bl PlaySE12WithPanning
-_081172E0:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81170EC
-
- thumb_func_start sub_81172EC
-sub_81172EC: @ 81172EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, =gBattle_BG1_Y
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- movs r0, 0x26
- ldrsh r2, [r5, r0]
- cmp r2, 0x1
- beq _08117362
- cmp r2, 0x1
- bgt _08117320
- cmp r2, 0
- beq _0811732A
- b _08117478
- .pool
-_08117320:
- cmp r2, 0x2
- beq _08117378
- cmp r2, 0x3
- beq _081173B6
- b _08117478
-_0811732A:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- cmp r0, 0
- bgt _08117338
- b _08117478
-_08117338:
- strh r2, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- adds r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- beq _08117360
- b _08117478
-_08117360:
- b _081173AE
-_08117362:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- cmp r0, r1
- beq _08117376
- b _08117478
-_08117376:
- b _081173AE
-_08117378:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- cmp r0, 0
- ble _08117478
- movs r0, 0
- strh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08117478
- movs r0, 0
- bl sub_80A477C
-_081173AE:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
- b _08117478
-_081173B6:
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081173E6
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl SetAnimBgAttribute
-_081173E6:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0811743A
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_0811743A:
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08117466
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_08117466:
- ldr r4, =gUnknown_0203A110
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08117478:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81172EC
-
- thumb_func_start sub_8117494
-sub_8117494: @ 8117494
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80A76C4
- adds r6, r0, 0
- movs r1, 0
- bl sub_81175C4
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- lsrs r0, r6, 16
- movs r5, 0
- strh r0, [r4, 0x24]
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A75AC
- adds r6, r0, 0
- ldr r1, =0x0000ffff
- ands r6, r1
- adds r0, r6, 0
- bl sub_81175C4
- strh r6, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r0, =sub_8117500
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117494
-
- thumb_func_start sub_8117500
-sub_8117500: @ 8117500
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _08117544
- cmp r1, 0x1
- bgt _08117528
- cmp r1, 0
- beq _0811752E
- b _081175BE
- .pool
-_08117528:
- cmp r1, 0x2
- beq _081175B8
- b _081175BE
-_0811752E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _081175BE
- strh r1, [r4, 0xA]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- b _081175AC
-_08117544:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081175BE
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- movs r5, 0
- movs r6, 0x1
-_08117560:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _0811757A
- lsls r0, r5, 20
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- ldr r3, =0x0000ffff
- bl BlendPalette
-_0811757A:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _0811759A
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- movs r3, 0
- bl BlendPalette
-_0811759A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _08117560
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081175BE
-_081175AC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081175BE
- .pool
-_081175B8:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_081175BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8117500
-
- thumb_func_start sub_81175C4
-sub_81175C4: @ 81175C4
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r2, 0
-_081175CE:
- movs r0, 0x1
- ands r0, r3
- lsrs r4, r3, 1
- adds r5, r2, 0x1
- cmp r0, 0
- beq _081175FA
- lsls r0, r2, 20
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x10
- cmp r2, r0
- bge _081175FA
- ldr r1, =gPlttBufferFaded
- adds r3, r0, 0
-_081175EA:
- lsls r0, r2, 1
- adds r0, r1
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _081175EA
-_081175FA:
- adds r3, r4, 0
- lsls r0, r5, 16
- lsrs r2, r0, 16
- cmp r2, 0x1F
- bls _081175CE
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81175C4
-
- thumb_func_start sub_8117610
-sub_8117610: @ 8117610
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r2, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r3, [r0]
- movs r5, 0x1
-_08117620:
- cmp r3, r2
- beq _0811762E
- adds r1, r2, 0
- adds r1, 0x10
- adds r0, r5, 0
- lsls r0, r1
- orrs r4, r0
-_0811762E:
- adds r2, 0x1
- cmp r2, 0x3
- bls _08117620
- movs r2, 0x5
- ldr r0, =gBattleAnimArgs
- adds r1, r0, 0
- adds r1, 0x8
-_0811763C:
- ldrh r0, [r1]
- strh r0, [r1, 0x2]
- subs r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _0811763C
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8116874
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117610
-
- thumb_func_start sub_8117660
-sub_8117660: @ 8117660
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl sub_80A6DAC
- ldr r0, =sub_81176D8
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0811769C
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _0811769C
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_0811769C:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r2, =gBattleAnimArgs
- ldrh r0, [r2]
- strh r0, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117660
-
- thumb_func_start sub_81176D8
-sub_81176D8: @ 81176D8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0xA]
- ldrh r0, [r1, 0x1C]
- adds r3, r0
- movs r4, 0
- mov r12, r4
- strh r3, [r1, 0x1C]
- ldrh r2, [r1, 0xC]
- ldrh r7, [r1, 0x1E]
- adds r2, r7
- strh r2, [r1, 0x1E]
- ldr r6, =gBattle_BG3_X
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r4, [r6]
- adds r0, r4
- strh r0, [r6]
- ldr r4, =gBattle_BG3_Y
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r7, [r4]
- adds r0, r7
- strh r0, [r4]
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1, 0x1C]
- ands r2, r0
- strh r2, [r1, 0x1E]
- ldr r0, =gBattleAnimArgs
- movs r3, 0xE
- ldrsh r2, [r0, r3]
- movs r7, 0xE
- ldrsh r0, [r1, r7]
- cmp r2, r0
- bne _0811773E
- mov r0, r12
- strh r0, [r6]
- strh r0, [r4]
- movs r0, 0x1
- bl sub_80A6DAC
- adds r0, r5, 0
- bl DestroyTask
-_0811773E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81176D8
-
- thumb_func_start AnimTask_IsAttackerOpponentSide
-AnimTask_IsAttackerOpponentSide: @ 8117754
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- ldr r1, =gBattleAnimArgs
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsAttackerOpponentSide
-
- thumb_func_start AnimTask_IsTargetOpponentSide
-AnimTask_IsTargetOpponentSide: @ 8117780
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- ldr r1, =gBattleAnimArgs
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsTargetOpponentSide
-
- thumb_func_start AnimTask_IsTargetPartner
-AnimTask_IsTargetPartner: @ 81177AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r5, =gBattleAnimArgs
- movs r4, 0
- ldr r0, =gBattleAnimAttacker
- ldrb r2, [r0]
- movs r0, 0x2
- ldr r1, =gBattleAnimTarget
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bne _081177C8
- movs r4, 0x1
-_081177C8:
- strh r4, [r5, 0xE]
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsTargetPartner
-
- thumb_func_start sub_81177E4
-sub_81177E4: @ 81177E4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, =gSprites
-_081177EE:
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- cmp r4, r0
- beq _0811782C
- lsls r0, r4, 24
- lsrs r0, 24
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _0811782C
- ldr r0, =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldr r1, =gBattleAnimArgs
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r3, [r1]
- ands r3, r0
- lsls r3, 2
- ldrb r0, [r2]
- movs r7, 0x5
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_0811782C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _081177EE
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81177E4
-
- thumb_func_start sub_8117854
-sub_8117854: @ 8117854
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r1, [sp, 0x44]
- ldr r4, [sp, 0x48]
- ldr r5, [sp, 0x4C]
- ldr r6, [sp, 0x50]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x14]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x18]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x1C]
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- movs r0, 0
- str r0, [sp, 0x20]
- movs r0, 0x2
- adds r6, r7, 0
- eors r6, r0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _081178B6
- mov r1, r8
- cmp r1, 0
- beq _081178BA
- adds r0, r6, 0
- bl IsBattlerSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _081178BA
-_081178B6:
- movs r2, 0
- mov r8, r2
-_081178BA:
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f3d
- movs r0, 0x4A
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 8
- movs r0, 0
- bl SetGpuRegBits
- ldr r1, =0x00003f42
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0xA
- bl GetGpuReg
- add r4, sp, 0x10
- strh r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- mov r2, sp
- adds r2, 0x11
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08117930
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_08117930:
- ldrh r1, [r4]
- movs r0, 0xA
- bl SetGpuReg
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08117964
- ldr r0, =gContestResources
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r4, [r0]
- b _081179A2
- .pool
-_08117964:
- adds r0, r7, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- beq _08117988
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- b _08117996
- .pool
-_08117988:
- ldr r1, =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
-_08117996:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_081179A2:
- ldr r5, =gBattlerSpriteIds
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_80A89C8
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r8
- cmp r0, 0
- beq _081179CC
- adds r0, r6, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_80A89C8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
-_081179CC:
- mov r0, sp
- bl sub_80A6B30
- mov r0, sp
- ldr r1, [sp, 0x58]
- movs r2, 0
- bl sub_80A6D60
- mov r0, sp
- ldrb r0, [r0, 0x9]
- mov r1, sp
- ldrh r2, [r1, 0xA]
- ldr r1, [sp, 0x54]
- bl sub_80A6CC0
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- ldr r0, [sp, 0x5C]
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- ldr r1, =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0xA]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0x10]
- mov r1, r10
- strh r1, [r0, 0x12]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r0, 0x14]
- strh r7, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0xE]
- ldr r1, =sub_8117A60
- str r1, [r0]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117854
-
- thumb_func_start sub_8117A60
-sub_8117A60: @ 8117A60
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0xA
- ldrsh r2, [r3, r0]
- adds r5, r1, 0
- cmp r2, 0
- bge _08117A7E
- negs r2, r2
-_08117A7E:
- ldrh r0, [r3, 0x22]
- adds r4, r0, r2
- strh r4, [r3, 0x22]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _08117AA4
- ldr r2, =gBattle_BG1_Y
- lsls r1, r4, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- b _08117AB0
- .pool
-_08117AA4:
- ldr r1, =gBattle_BG1_Y
- lsls r0, r4, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
-_08117AB0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r5
- ldrh r1, [r5, 0x22]
- movs r0, 0xFF
- ands r0, r1
- movs r2, 0
- strh r0, [r5, 0x22]
- movs r3, 0x26
- ldrsh r0, [r5, r3]
- cmp r0, 0x1
- beq _08117B1A
- cmp r0, 0x1
- bgt _08117AD8
- cmp r0, 0
- beq _08117ADE
- b _08117C0C
- .pool
-_08117AD8:
- cmp r0, 0x2
- beq _08117B34
- b _08117C0C
-_08117ADE:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r5, r3]
- cmp r0, r1
- bge _08117AF2
- b _08117C0C
-_08117AF2:
- strh r2, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- adds r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _08117C0C
- b _08117B2C
-_08117B1A:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- cmp r0, r1
- bne _08117C0C
-_08117B2C:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
- b _08117C0C
-_08117B34:
- ldrh r0, [r5, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r5, r3]
- cmp r0, r1
- blt _08117C0C
- strh r2, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r1, 0x1
- strh r1, [r5, 0x20]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x20
- ldrsh r4, [r5, r0]
- cmp r4, 0
- bne _08117C0C
- movs r0, 0
- bl sub_80A477C
- ldr r0, =gBattle_WIN0H
- strh r4, [r0]
- ldr r0, =gBattle_WIN0V
- strh r4, [r0]
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _08117BB2
- movs r0, 0xA
- bl GetGpuReg
- mov r1, sp
- strh r0, [r1]
- mov r2, sp
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, sp
- ldrh r1, [r0]
- movs r0, 0xA
- bl SetGpuReg
-_08117BB2:
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- eors r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r3, 0x8
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08117C06
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_08117C06:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_08117C0C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117A60
-
- thumb_func_start AnimTask_GetBattleTerrain
-AnimTask_GetBattleTerrain: @ 8117C24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBattleAnimArgs
- ldr r1, =gBattleTerrain
- ldrb r1, [r1]
- strh r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_GetBattleTerrain
-
- thumb_func_start sub_8117C44
-sub_8117C44: @ 8117C44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 6
- bl AllocZeroed
- ldr r1, =gMonSpritesGfxPtr
- ldr r1, [r1]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117C44
-
- thumb_func_start sub_8117C70
-sub_8117C70: @ 8117C70
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, =gMonSpritesGfxPtr
- ldr r0, [r6]
- movs r5, 0xBE
- lsls r5, 1
- adds r0, r5
- ldr r0, [r0]
- bl Free
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117C70
-
- thumb_func_start sub_8117CA0
-sub_8117CA0: @ 8117CA0
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08117CE4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A75AC
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08117CFC
- movs r2, 0x1
-_08117CD2:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08117CD2
- b _08117CFC
- .pool
-_08117CE4:
- cmp r0, 0x1
- bne _08117CF0
- ldr r0, =gBattleAnimAttacker
- b _08117CF6
- .pool
-_08117CF0:
- cmp r0, 0x2
- bne _08117CFC
- ldr r0, =gBattleAnimTarget
-_08117CF6:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_08117CFC:
- ldr r0, =gMonSpritesGfxPtr
- ldr r1, [r0]
- ldr r0, =gBattleAnimArgs
- movs r2, 0x2
- ldrsh r0, [r0, r2]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r2
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- lsls r1, r4, 5
- ldr r2, =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117CA0
-
- thumb_func_start sub_8117D3C
-sub_8117D3C: @ 8117D3C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08117D80
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A75AC
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08117D98
- movs r2, 0x1
-_08117D6E:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08117D6E
- b _08117D98
- .pool
-_08117D80:
- cmp r0, 0x1
- bne _08117D8C
- ldr r0, =gBattleAnimAttacker
- b _08117D92
- .pool
-_08117D8C:
- cmp r0, 0x2
- bne _08117D98
- ldr r0, =gBattleAnimTarget
-_08117D92:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_08117D98:
- lsls r0, r4, 5
- ldr r1, =gPlttBufferUnfaded
- adds r0, r1
- ldr r1, =gMonSpritesGfxPtr
- ldr r2, [r1]
- ldr r1, =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- movs r3, 0xBE
- lsls r3, 1
- adds r2, r3
- ldr r2, [r2]
- lsls r1, 5
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117D3C
-
- thumb_func_start sub_8117DD8
-sub_8117DD8: @ 8117DD8
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08117E1C
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80A75AC
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08117E34
- movs r2, 0x1
-_08117E0A:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08117E0A
- b _08117E34
- .pool
-_08117E1C:
- cmp r0, 0x1
- bne _08117E28
- ldr r0, =gBattleAnimAttacker
- b _08117E2E
- .pool
-_08117E28:
- cmp r0, 0x2
- bne _08117E34
- ldr r0, =gBattleAnimTarget
-_08117E2E:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_08117E34:
- lsls r1, r4, 5
- ldr r0, =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117DD8
-
- thumb_func_start AnimTask_IsContest
-AnimTask_IsContest: @ 8117E60
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08117E80
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
- strh r0, [r1, 0xE]
- b _08117E84
- .pool
-_08117E80:
- ldr r0, =gBattleAnimArgs
- strh r1, [r0, 0xE]
-_08117E84:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsContest
-
- thumb_func_start sub_8117E94
-sub_8117E94: @ 8117E94
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBattleAnimAttacker
- ldr r1, =gBattlerTarget
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, =gBattleAnimTarget
- ldr r1, =gEffectBattler
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117E94
-
- thumb_func_start AnimTask_IsTargetSameSide
-AnimTask_IsTargetSameSide: @ 8117EC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattleAnimAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldr r0, =gBattleAnimTarget
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08117EF8
- ldr r1, =gBattleAnimArgs
- movs r0, 0x1
- b _08117EFC
- .pool
-_08117EF8:
- ldr r1, =gBattleAnimArgs
- movs r0, 0
-_08117EFC:
- strh r0, [r1, 0xE]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimTask_IsTargetSameSide
-
- thumb_func_start sub_8117F10
-sub_8117F10: @ 8117F10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBattleAnimTarget
- ldr r1, =gBattlerTarget
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117F10
-
- thumb_func_start sub_8117F30
-sub_8117F30: @ 8117F30
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBattleAnimAttacker
- ldr r1, =gBattlerAttacker
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, =gBattleAnimTarget
- ldr r1, =gEffectBattler
- ldrb r1, [r1]
- strb r1, [r2]
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117F30
-
- thumb_func_start sub_8117F60
-sub_8117F60: @ 8117F60
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _08117F78
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _08117FB4
-_08117F78:
- ldr r0, =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- ldr r0, =gBattleSpritesDataPtr
- ldr r4, [r0]
- ldr r2, =gBattleAnimAttacker
- ldrb r0, [r2]
- ldr r1, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- strh r0, [r3, 0x8]
- ldrb r1, [r2]
- ldr r0, [r4]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r0, =sub_8117FD0
- str r0, [r3]
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08117FB4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117F60
-
- thumb_func_start sub_8117FD0
-sub_8117FD0: @ 8117FD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _08118014
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gBattleAnimAttacker
- ldrb r3, [r0]
- ldr r0, [r1]
- lsls r3, 2
- adds r3, r0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
-_08118014:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8117FD0
-
- thumb_func_start SetAnimBgAttribute
-SetAnimBgAttribute: @ 811802C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r6, 0x3
- bls _08118040
- b _08118132
-_08118040:
- ldr r0, =gUnknown_0859741A
- adds r0, r6, r0
- ldrb r0, [r0]
- bl GetGpuReg
- ldr r1, =gUnknown_0203A114
- strh r0, [r1]
- cmp r5, 0x6
- bhi _08118124
- lsls r0, r5, 2
- ldr r1, =_08118068
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118068:
- .4byte _08118084
- .4byte _08118098
- .4byte _081180B0
- .4byte _081180C8
- .4byte _081180E0
- .4byte _081180FC
- .4byte _08118110
-_08118084:
- ldr r2, =gUnknown_0203A114
- lsls r3, r4, 6
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x1]
- b _08118124
- .pool
-_08118098:
- ldr r3, =gUnknown_0203A114
- movs r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 5
- ldrb r2, [r3, 0x1]
- movs r0, 0x21
- negs r0, r0
- b _0811811E
- .pool
-_081180B0:
- ldr r3, =gUnknown_0203A114
- movs r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
- ldrb r2, [r3]
- movs r0, 0x41
- negs r0, r0
- b _081180EE
- .pool
-_081180C8:
- ldr r3, =gUnknown_0203A114
- movs r0, 0x3
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0xD
- negs r0, r0
- b _081180EE
- .pool
-_081180E0:
- ldr r3, =gUnknown_0203A114
- movs r0, 0x3
- adds r1, r4, 0
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x4
- negs r0, r0
-_081180EE:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08118124
- .pool
-_081180FC:
- ldr r2, =gUnknown_0203A114
- lsls r3, r4, 7
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- b _08118124
- .pool
-_08118110:
- ldr r3, =gUnknown_0203A114
- movs r0, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldrb r2, [r3, 0x1]
- movs r0, 0x20
- negs r0, r0
-_0811811E:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x1]
-_08118124:
- ldr r0, =gUnknown_0859741A
- adds r0, r6, r0
- ldrb r0, [r0]
- ldr r1, =gUnknown_0203A114
- ldrh r1, [r1]
- bl SetGpuReg
-_08118132:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetAnimBgAttribute
-
- thumb_func_start GetAnimBgAttribute
-GetAnimBgAttribute: @ 8118140
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r2, 0x3
- bhi _081181C8
- ldr r0, =gUnknown_0859741E
- adds r0, r2, r0
- ldrb r0, [r0]
- bl GetGpuReg
- mov r1, sp
- strh r0, [r1]
- cmp r4, 0x6
- bhi _081181C8
- lsls r0, r4, 2
- ldr r1, =_08118174
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118174:
- .4byte _08118190
- .4byte _08118198
- .4byte _081181A0
- .4byte _081181A8
- .4byte _081181B0
- .4byte _081181B8
- .4byte _081181C0
-_08118190:
- ldr r0, [sp]
- lsls r0, 16
- lsrs r0, 30
- b _081181CA
-_08118198:
- ldr r0, [sp]
- lsls r0, 18
- lsrs r0, 31
- b _081181CA
-_081181A0:
- ldr r0, [sp]
- lsls r0, 25
- lsrs r0, 31
- b _081181CA
-_081181A8:
- ldr r0, [sp]
- lsls r0, 28
- lsrs r0, 30
- b _081181CA
-_081181B0:
- ldr r0, [sp]
- lsls r0, 30
- lsrs r0, 30
- b _081181CA
-_081181B8:
- ldr r0, [sp]
- lsls r0, 24
- lsrs r0, 31
- b _081181CA
-_081181C0:
- ldr r0, [sp]
- lsls r0, 19
- lsrs r0, 27
- b _081181CA
-_081181C8:
- movs r0, 0
-_081181CA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetAnimBgAttribute
-
- thumb_func_start HandleIntroSlide
-HandleIntroSlide: @ 81181D4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, =gBattleTypeFlags
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- ands r0, r1
- cmp r0, 0
- beq _08118208
- ldr r0, =gPartnerTrainerId
- ldrh r1, [r0]
- ldr r0, =0x00000c03
- cmp r1, r0
- beq _08118208
- ldr r0, =sub_8118D68
- b _08118258
- .pool
-_08118208:
- ldr r2, [r2]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0811821C
- ldr r0, =task00_battle_intro_wireless
- b _08118258
- .pool
-_0811821C:
- ldr r0, =0x003f0100
- ands r0, r2
- cmp r0, 0
- beq _08118230
- ldr r0, =task_battle_intro_anim
- b _08118258
- .pool
-_08118230:
- movs r0, 0x80
- lsls r0, 5
- ands r2, r0
- cmp r2, 0
- beq _08118250
- ldr r0, =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08118250
- movs r4, 0x3
- ldr r0, =task00_battle_intro_80BC6C8
- b _08118258
- .pool
-_08118250:
- ldr r1, =gUnknown_08597424
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
-_08118258:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleIntroSlide
-
- thumb_func_start sub_811828C
-sub_811828C: @ 811828C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- ldr r0, =gBattle_BG2_X
- strh r1, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r1, [r0]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r4, =0x00003f3f
- movs r0, 0x48
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x4A
- adds r1, r4, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_811828C
-
- thumb_func_start task_battle_intro_80BC47C
-task_battle_intro_80BC47C: @ 81182EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x6
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x4
- bls _08118318
- b _0811852A
-_08118318:
- lsls r0, 2
- ldr r1, =_08118330
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118330:
- .4byte _08118344
- .4byte _08118374
- .4byte _0811839C
- .4byte _081183E4
- .4byte _08118524
-_08118344:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08118360
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x10
- b _0811836A
- .pool
-_08118360:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x1
-_0811836A:
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _0811852A
-_08118374:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r3, r8
- adds r1, r0, r3
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _0811838C
- b _0811852A
-_0811838C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- b _0811852A
-_0811839C:
- ldr r1, =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _081183B4
- b _0811852A
-_081183B4:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, =gIntroSlideFlags
- ldrh r1, [r2]
- ldr r0, =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _0811852A
- .pool
-_081183E4:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- mov r5, r8
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r5, 0xE
- ldrsh r1, [r2, r5]
- mov r12, r0
- cmp r1, 0
- beq _08118400
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _0811842E
-_08118400:
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _08118420
- ldr r2, =gBattle_BG1_Y
- ldrh r1, [r2]
- ldr r0, =0x0000ffb0
- cmp r1, r0
- beq _0811842E
- subs r0, r1, 0x2
- b _0811842C
- .pool
-_08118420:
- ldr r2, =gBattle_BG1_Y
- ldrh r1, [r2]
- ldr r0, =0x0000ffc8
- cmp r1, r0
- beq _0811842E
- subs r0, r1, 0x1
-_0811842C:
- strh r0, [r2]
-_0811842E:
- ldr r2, =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08118442
- ldr r3, =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_08118442:
- mov r5, r12
- adds r0, r5, r4
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0811845A
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_0811845A:
- movs r3, 0
- ldr r5, =gScanlineEffect
- mov r9, r5
- ldr r7, =gScanlineEffectRegBuffers
- mov r6, r9
- adds r5, r1, 0
-_08118466:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _08118466
- cmp r3, 0x9F
- bgt _081184AA
- ldr r7, =gScanlineEffectRegBuffers
- ldr r6, =gScanlineEffect
- ldr r1, =gTasks
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_08118490:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _08118490
-_081184AA:
- mov r3, r12
- adds r0, r3, r4
- lsls r0, 3
- mov r5, r8
- adds r1, r0, r5
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _0811852A
- movs r0, 0x3
- mov r3, r9
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, =0x0600e000
- ldr r2, =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _0811852A
- .pool
-_08118524:
- adds r0, r4, 0
- bl sub_811828C
-_0811852A:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_battle_intro_80BC47C
-
- thumb_func_start task00_battle_intro_80BC6C8
-task00_battle_intro_80BC6C8: @ 8118538
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x3
- beq _08118578
- cmp r0, 0x3
- bgt _08118568
- cmp r0, 0x2
- beq _0811856C
- b _08118580
- .pool
-_08118568:
- cmp r0, 0x4
- bne _08118580
-_0811856C:
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x8
- b _0811857E
- .pool
-_08118578:
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x6
-_0811857E:
- strh r0, [r1]
-_08118580:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r4, r1, r2
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- adds r6, r0, 0
- cmp r1, 0x4
- bne _081185E4
- ldr r7, =gBattle_BG1_Y
- ldrh r0, [r4, 0x14]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081185A6
- ldr r1, =0x000001ff
- adds r0, r1
-_081185A6:
- asrs r0, 9
- subs r0, 0x8
- strh r0, [r7]
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0xB3
- bgt _081185C8
- adds r0, r1, 0x4
- b _081185CA
- .pool
-_081185C8:
- adds r0, r1, 0x6
-_081185CA:
- strh r0, [r4, 0x14]
- ldr r2, =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- movs r0, 0xB4
- lsls r0, 1
- cmp r1, r0
- bne _081185E4
- movs r0, 0
- strh r0, [r3, 0x14]
-_081185E4:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _081185F4
- b _0811881A
-_081185F4:
- lsls r0, 2
- ldr r1, =_08118608
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118608:
- .4byte _0811861C
- .4byte _0811864C
- .4byte _08118678
- .4byte _081186C8
- .4byte _08118814
-_0811861C:
- ldr r1, =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x10
- strh r3, [r2, 0x10]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08118640
- strh r3, [r2, 0xC]
- b _08118644
- .pool
-_08118640:
- movs r0, 0x1
- strh r0, [r2, 0xC]
-_08118644:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0811881A
-_0811864C:
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _08118662
- b _0811881A
-_08118662:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- b _0811881A
- .pool
-_08118678:
- ldr r1, =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _08118690
- b _0811881A
-_08118690:
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, =gIntroSlideFlags
- ldrh r1, [r2]
- ldr r0, =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _0811881A
- .pool
-_081186C8:
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08118708
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _08118728
- ldr r1, =0x00001842
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0xF
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- b _08118728
- .pool
-_08118708:
- ldrh r2, [r1, 0x10]
- movs r0, 0x1F
- ands r0, r2
- cmp r0, 0
- beq _08118728
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _08118728
- adds r0, r2, 0
- adds r0, 0xFF
- strh r0, [r1, 0x10]
- movs r0, 0x4
- strh r0, [r1, 0x12]
-_08118728:
- ldr r2, =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _0811873C
- ldr r3, =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_0811873C:
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08118752
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_08118752:
- movs r3, 0
- ldr r0, =gScanlineEffect
- mov r8, r0
- ldr r2, =gScanlineEffectRegBuffers
- mov r12, r2
- mov r7, r8
- adds r4, r1, 0
-_08118760:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _08118760
- cmp r3, 0x9F
- bgt _081187A4
- ldr r0, =gScanlineEffectRegBuffers
- mov r12, r0
- ldr r7, =gScanlineEffect
- ldr r1, =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r1
-_0811878A:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _0811878A
-_081187A4:
- ldr r1, =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _0811881A
- movs r0, 0x3
- mov r3, r8
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, =0x0600e000
- ldr r2, =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _0811881A
- .pool
-_08118814:
- adds r0, r5, 0
- bl sub_811828C
-_0811881A:
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _08118832
- ldrh r1, [r1, 0x10]
- movs r0, 0x52
- bl SetGpuReg
-_08118832:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task00_battle_intro_80BC6C8
-
- thumb_func_start task_battle_intro_anim
-task_battle_intro_anim: @ 8118844
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _0811886E
- b _08118A96
-_0811886E:
- lsls r0, 2
- ldr r1, =_08118884
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118884:
- .4byte _08118898
- .4byte _081188F0
- .4byte _0811891C
- .4byte _0811896C
- .4byte _08118A90
-_08118898:
- ldr r1, =0x00001842
- movs r0, 0x50
- bl SetGpuReg
- ldr r4, =0x00000808
- movs r0, 0x52
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- strh r4, [r2, 0x10]
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x02000002
- ands r0, r1
- cmp r0, 0
- beq _081188E4
- movs r0, 0x10
- b _081188E6
- .pool
-_081188E4:
- movs r0, 0x1
-_081188E6:
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _08118A96
-_081188F0:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _08118908
- b _08118A96
-_08118908:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- b _08118A96
- .pool
-_0811891C:
- ldr r1, =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _08118934
- b _08118A96
-_08118934:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, =gIntroSlideFlags
- ldrh r1, [r2]
- ldr r0, =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _08118A96
- .pool
-_0811896C:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r2, r1, r4
- ldrh r3, [r2, 0xE]
- movs r6, 0xE
- ldrsh r1, [r2, r6]
- mov r12, r0
- cmp r1, 0
- beq _08118986
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _081189A6
-_08118986:
- ldrh r1, [r2, 0x10]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _081189A6
- ldrh r0, [r2, 0x12]
- subs r0, 0x1
- strh r0, [r2, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _081189A6
- adds r0, r1, 0
- adds r0, 0xFF
- strh r0, [r2, 0x10]
- movs r0, 0x6
- strh r0, [r2, 0x12]
-_081189A6:
- ldr r2, =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _081189BA
- ldr r3, =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_081189BA:
- mov r6, r12
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r4
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _081189D0
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_081189D0:
- movs r3, 0
- ldr r6, =gScanlineEffect
- mov r8, r6
- ldr r7, =gScanlineEffectRegBuffers
- adds r4, r1, 0
-_081189DA:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _081189DA
- cmp r3, 0x9F
- bgt _08118A1E
- ldr r7, =gScanlineEffectRegBuffers
- ldr r6, =gScanlineEffect
- ldr r1, =gTasks
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- adds r4, r0, r1
-_08118A04:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _08118A04
-_08118A1E:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _08118A96
- movs r0, 0x3
- mov r6, r8
- strb r0, [r6, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, =0x0600e000
- ldr r2, =0x05000200
- mov r0, sp
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _08118A96
- .pool
-_08118A90:
- adds r0, r5, 0
- bl sub_811828C
-_08118A96:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _08118AB0
- ldrh r1, [r1, 0x10]
- movs r0, 0x52
- bl SetGpuReg
-_08118AB0:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_battle_intro_anim
-
- thumb_func_start task00_battle_intro_wireless
-task00_battle_intro_wireless: @ 8118AC0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- ble _08118B36
- movs r2, 0x10
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _08118B36
- ldr r2, =gBattle_BG1_X
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _08118AFE
- cmp r1, 0x4F
- bhi _08118B18
-_08118AFE:
- adds r0, r1, 0x3
- strh r0, [r2]
- ldr r1, =gBattle_BG2_X
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- b _08118B36
- .pool
-_08118B18:
- str r5, [sp]
- ldr r1, =0x0600e000
- ldr r4, =0x05000200
- mov r0, sp
- adds r2, r4, 0
- bl CpuSet
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldr r1, =0x0600f000
- adds r2, r4, 0
- bl CpuSet
- movs r0, 0x1
- strh r0, [r7, 0x10]
-_08118B36:
- ldr r0, =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- mov r9, r0
- adds r5, r2, 0
- cmp r1, 0x4
- bls _08118B4E
- b _08118D5A
-_08118B4E:
- lsls r0, r1, 2
- ldr r1, =_08118B6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118B6C:
- .4byte _08118B80
- .4byte _08118B92
- .4byte _08118C38
- .4byte _08118C7C
- .4byte _08118D54
-_08118B80:
- adds r0, r5, r6
- lsls r0, 3
- add r0, r9
- movs r1, 0x20
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08118D5A
-_08118B92:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r9
- adds r1, r0, r2
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _08118BA8
- b _08118D5A
-_08118BA8:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r4, =gSprites
- ldr r5, =gBattleStruct
- ldr r0, [r5]
- adds r0, 0x7D
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x8
- mov r9, r3
- mov r3, r9
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldr r3, [r5]
- adds r0, r3, 0
- adds r0, 0x7D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1C
- adds r1, r4
- mov r8, r1
- add r0, r8
- ldr r6, =sub_8038B74
- str r6, [r0]
- adds r3, 0x7E
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- ands r2, r1
- mov r3, r9
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldr r0, [r5]
- adds r0, 0x7E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- str r6, [r0]
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- ldr r1, =0x00003f06
- movs r0, 0x4A
- bl SetGpuReg
- b _08118D5A
- .pool
-_08118C38:
- ldr r1, =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _08118C50
- b _08118D5A
-_08118C50:
- adds r1, r5, r6
- lsls r1, 3
- add r1, r9
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, =gIntroSlideFlags
- ldrh r1, [r2]
- ldr r0, =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _08118D5A
- .pool
-_08118C7C:
- ldr r2, =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08118C90
- ldr r3, =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_08118C90:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r9
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08118CA6
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_08118CA6:
- movs r3, 0
- ldr r0, =gScanlineEffect
- mov r12, r0
- ldr r2, =gScanlineEffectRegBuffers
- mov r8, r2
- mov r7, r12
- adds r4, r1, 0
-_08118CB4:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _08118CB4
- cmp r3, 0x9F
- bgt _08118CF8
- ldr r0, =gScanlineEffectRegBuffers
- mov r8, r0
- ldr r7, =gScanlineEffect
- ldr r1, =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r4, r0, r1
-_08118CDE:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _08118CDE
-_08118CF8:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r9
- adds r1, r0, r2
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08118D5A
- movs r0, 0x3
- mov r2, r12
- strb r0, [r2, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- b _08118D5A
- .pool
-_08118D54:
- adds r0, r6, 0
- bl sub_811828C
-_08118D5A:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task00_battle_intro_wireless
-
- thumb_func_start sub_8118D68
-sub_8118D68: @ 8118D68
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0x5
- bls _08118D86
- b _08118FB2
-_08118D86:
- lsls r0, 2
- ldr r1, =_08118D98
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08118D98:
- .4byte _08118DB0
- .4byte _08118DBE
- .4byte _08118E4C
- .4byte _08118EA8
- .4byte _08118F00
- .4byte _08118FAC
-_08118DB0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0xC]
- b _08118F84
-_08118DBE:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r6
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _08118DD4
- b _08118FB2
-_08118DD4:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, =0x00005c0a
- movs r0, 0xA
- bl SetGpuReg
- ldr r1, =0x00005e0a
- movs r0, 0xC
- bl SetGpuReg
- movs r0, 0
- bl GetGpuReg
- adds r1, r0, 0
- ldr r2, =0x0000f040
- adds r0, r2, 0
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- bl SetGpuReg
- movs r1, 0xF8
- lsls r1, 6
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f3f
- movs r0, 0x4A
- bl SetGpuReg
- ldr r1, =gBattle_BG0_Y
- ldr r2, =0x0000ffd0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattle_BG1_X
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, =gBattle_BG2_X
- subs r2, 0xC0
- adds r0, r2, 0
- strh r0, [r1]
- b _08118FB2
- .pool
-_08118E4C:
- ldr r2, =gBattle_WIN0V
- ldrh r3, [r2]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- adds r1, r3, r0
- strh r1, [r2]
- movs r5, 0xFF
- lsls r5, 8
- ands r1, r5
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- beq _08118E6E
- adds r0, r3, 0
- adds r0, 0xFF
- strh r0, [r2]
-_08118E6E:
- ldrh r0, [r2]
- adds r1, r5, 0
- ands r1, r0
- movs r0, 0x80
- lsls r0, 6
- cmp r1, r0
- beq _08118E7E
- b _08118FB2
-_08118E7E:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r6
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- ldr r2, =gIntroSlideFlags
- ldrh r1, [r2]
- ldr r0, =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _08118FB2
- .pool
-_08118EA8:
- ldr r3, =gBattle_WIN0V
- ldrh r2, [r3]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- movs r1, 0x98
- lsls r1, 7
- cmp r0, r1
- beq _08118EC2
- movs r1, 0xFF
- lsls r1, 2
- adds r0, r2, r1
- strh r0, [r3]
-_08118EC2:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r6
- ldrh r1, [r3, 0xC]
- movs r2, 0xC
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _08118ED8
- subs r0, r1, 0x2
- strh r0, [r3, 0xC]
-_08118ED8:
- ldr r1, =gBattle_BG1_X
- ldrh r0, [r3, 0xC]
- strh r0, [r1]
- ldr r2, =gBattle_BG2_X
- negs r1, r0
- strh r1, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _08118FB2
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _08118FB2
- .pool
-_08118F00:
- ldr r1, =gBattle_BG0_Y
- ldrh r0, [r1]
- adds r3, r0, 0x2
- strh r3, [r1]
- ldr r1, =gBattle_BG2_Y
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- ldr r5, =gBattle_WIN0V
- ldrh r2, [r5]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- movs r1, 0xA0
- lsls r1, 7
- cmp r0, r1
- beq _08118F28
- adds r0, r2, 0
- adds r0, 0xFF
- strh r0, [r5]
-_08118F28:
- lsls r0, r3, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08118FB2
- str r0, [sp]
- ldr r1, =0x0600e000
- ldr r2, =0x05000800
- mov r0, sp
- bl CpuSet
- movs r0, 0
- bl GetGpuReg
- ldr r1, =0x0000bfff
- ands r1, r0
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r1, 0x9C
- lsls r1, 8
- movs r0, 0xA
- bl SetGpuReg
- movs r1, 0xBC
- lsls r1, 7
- movs r0, 0xC
- bl SetGpuReg
- ldr r1, =gScanlineEffect
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
-_08118F84:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08118FB2
- .pool
-_08118FAC:
- adds r0, r4, 0
- bl sub_811828C
-_08118FB2:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8118D68
-
- thumb_func_start sub_8118FBC
-sub_8118FBC: @ 8118FBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- adds r6, r2, 0
- adds r4, r3, 0
- ldr r0, [sp, 0x24]
- ldr r7, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- mov r9, r2
- ldr r5, [sp, 0x30]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gMonSpritesGfxPtr
- ldr r2, [r1]
- lsls r4, 2
- adds r2, 0x4
- adds r2, r4
- ldr r1, =gBattleMonForms
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r2]
- adds r0, r1
- movs r2, 0x80
- lsls r2, 3
- adds r1, r7, 0
- bl CpuSet
- ldr r1, [sp]
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 5
- adds r1, r7, 0
- adds r3, r5, 0
- bl LoadBgTiles
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bge _08119068
- mov r12, r0
- mov r2, r8
- lsls r7, r2, 1
-_0811903A:
- mov r1, r8
- adds r2, r1, 0
- adds r2, 0x8
- adds r4, r6, 0x1
- cmp r1, r2
- bge _08119062
- mov r0, r10
- lsls r3, r0, 12
- lsls r0, r6, 6
- add r0, r9
- adds r6, r7, r0
- subs r1, r2, r1
-_08119052:
- adds r0, r5, 0
- orrs r0, r3
- strh r0, [r6]
- adds r5, 0x1
- adds r6, 0x2
- subs r1, 0x1
- cmp r1, 0
- bne _08119052
-_08119062:
- adds r6, r4, 0
- cmp r6, r12
- blt _0811903A
-_08119068:
- ldr r1, [sp]
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 4
- mov r1, r9
- movs r3, 0
- bl LoadBgTilemap
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8118FBC
-
- thumb_func_start sub_8119094
-sub_8119094: @ 8119094
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- mov r8, r5
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- mov r7, r8
- lsls r7, 16
- lsrs r6, r7, 16
- lsls r5, 24
- lsrs r5, 24
- mov r0, r9
- lsls r0, 24
- mov r9, r0
- ldr r4, =0x040000d4
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- lsrs r2, 22
- adds r0, 0x4
- adds r0, r2
- lsrs r3, 13
- ldr r0, [r0]
- adds r0, r3
- str r0, [r4]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r4, 0x4]
- ldr r0, =0x80000400
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, r7, 0
- lsrs r2, 21
- mov r6, r9
- lsrs r6, 15
- subs r4, r2, r6
- lsrs r0, r1, 24
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _08119148
- mov r9, r1
- mov r7, r12
- lsls r7, 1
- mov r8, r7
- lsls r5, 11
- str r5, [sp]
-_08119110:
- mov r2, r12
- adds r3, r2, 0
- adds r3, 0x8
- adds r5, r0, 0x1
- cmp r2, r3
- bge _08119142
- mov r1, r10
- lsls r6, r1, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- ldr r1, [sp]
- adds r0, r1, r0
- mov r7, r8
- adds r1, r7, r0
- subs r2, r3, r2
-_08119132:
- adds r0, r4, 0
- orrs r0, r6
- strh r0, [r1]
- adds r4, 0x1
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _08119132
-_08119142:
- adds r0, r5, 0
- cmp r0, r9
- blt _08119110
-_08119148:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8119094
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
index b31af7d1e..362183765 100644
--- a/asm/battle_anim_815A0D4.s
+++ b/asm/battle_anim_815A0D4.s
@@ -125,7 +125,7 @@ sub_815A1B0: @ 815A1B0
adds r4, r0, 0
movs r0, 0x5A
strh r0, [r4, 0x2E]
- ldr r0, =sub_80A64B0
+ ldr r0, =WaitAnimForDuration
str r0, [r4, 0x1C]
movs r0, 0x7
strh r0, [r4, 0x30]
@@ -259,7 +259,7 @@ _0815A2B2:
strh r0, [r5, 0x2E]
strh r7, [r5, 0x32]
strh r6, [r5, 0x36]
- ldr r0, =sub_80A6EEC
+ ldr r0, =StartAnimLinearTranslation
str r0, [r5, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
@@ -767,7 +767,7 @@ sub_815A6C4: @ 815A6C4
sub sp, 0x4
adds r4, r0, 0
movs r1, 0x1
- bl sub_80A69CC
+ bl InitAnimSpritePos
ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
mov r5, sp
@@ -802,7 +802,7 @@ _0815A6F8:
ldr r0, =0x0000ffce
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_80A68D4
+ bl InitAnimArcTranslation
ldr r0, =sub_815A73C
str r0, [r4, 0x1C]
add sp, 0x4
@@ -824,7 +824,7 @@ sub_815A73C: @ 815A73C
movs r0, 0x1E
strh r0, [r4, 0x2E]
strh r1, [r4, 0x30]
- ldr r0, =sub_80A64B0
+ ldr r0, =WaitAnimForDuration
str r0, [r4, 0x1C]
ldr r1, =sub_815A76C
adds r0, r4, 0
@@ -2216,7 +2216,7 @@ sub_815B27C: @ 815B27C
bne _0815B290
adds r0, r5, 0
movs r1, 0
- bl sub_80A69CC
+ bl InitAnimSpritePos
_0815B290:
ldrh r0, [r5, 0x2E]
adds r0, 0x1
@@ -2291,7 +2291,7 @@ _0815B2D8:
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, =sub_80A6EEC
+ ldr r0, =StartAnimLinearTranslation
str r0, [r5, 0x1C]
_0815B324:
pop {r4,r5}
@@ -2810,7 +2810,7 @@ sub_815B70C: @ 815B70C
_0815B71E:
adds r0, r4, 0
movs r1, 0
- bl sub_80A69CC
+ bl InitAnimSpritePos
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
@@ -4309,7 +4309,7 @@ sub_815C400: @ 815C400
bne _0815C41E
adds r0, r4, 0
movs r1, 0
- bl sub_80A69CC
+ bl InitAnimSpritePos
ldrh r0, [r4, 0x2E]
adds r0, 0x1
strh r0, [r4, 0x2E]
@@ -8448,7 +8448,7 @@ _0815E4EE:
adds r0, r1
lsls r0, 2
adds r0, r4
- bl sub_80A68D4
+ bl InitAnimArcTranslation
mov r1, r10
ldrb r0, [r1]
bl GetBattlerSide
@@ -9605,7 +9605,7 @@ sub_815EE84: @ 815EE84
bne _0815EEA8
adds r0, r4, 0
movs r1, 0x1
- bl sub_80A69CC
+ bl InitAnimSpritePos
ldr r0, =gBattleAnimAttacker
b _0815EEAA
.pool
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index ab3f27799..c0881e682 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -1473,7 +1473,7 @@ sub_8171104: @ 8171104
ldr r0, =0x0000ffd8
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_80A68D4
+ bl InitAnimArcTranslation
ldr r0, =sub_8171134
str r0, [r4, 0x1C]
pop {r4}
@@ -2631,7 +2631,7 @@ _08171A26:
ldrsb r0, [r1, r0]
strh r0, [r5, 0x38]
adds r0, r5, 0
- bl sub_80A68D4
+ bl InitAnimArcTranslation
add r4, r10
ldr r0, =sub_8171AAC
str r0, [r4]
@@ -5571,7 +5571,7 @@ sub_817330C: @ 817330C
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0
- bl sub_80A69CC
+ bl InitAnimSpritePos
movs r0, 0x1E
strh r0, [r4, 0x2E]
movs r0, 0x1
@@ -5600,7 +5600,7 @@ sub_817330C: @ 817330C
ldr r0, =0x0000ffe0
strh r0, [r4, 0x38]
adds r0, r4, 0
- bl sub_80A68D4
+ bl InitAnimArcTranslation
ldr r2, =gSprites
ldr r1, =gBattlerSpriteIds
ldr r0, =gBattleAnimAttacker
diff --git a/asm/battle_anim_effects_1.s b/asm/battle_anim_effects_1.s
new file mode 100644
index 000000000..910b09b8c
--- /dev/null
+++ b/asm/battle_anim_effects_1.s
@@ -0,0 +1,9550 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FE840
+sub_80FE840: @ 80FE840
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FE87C
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ b _080FE87E
+ .pool
+_080FE87C:
+ ldrh r0, [r5, 0x8]
+_080FE87E:
+ strh r0, [r4, 0x34]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0xA]
+ strh r0, [r4, 0x36]
+ ldr r0, =sub_80FE898
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FE840
+
+ thumb_func_start sub_80FE898
+sub_80FE898: @ 80FE898
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080FE8D4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080FE8DA
+_080FE8D4:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FE8DA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE898
+
+ thumb_func_start sub_80FE8E0
+sub_80FE8E0: @ 80FE8E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r4, 0x1C]
+ ldr r1, =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FE8E0
+
+ thumb_func_start sub_80FE930
+sub_80FE930: @ 80FE930
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r5, =gBattleAnimArgs
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FE930
+
+ thumb_func_start sub_80FE988
+sub_80FE988: @ 80FE988
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r1, =sub_80FE9E4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FE988
+
+ thumb_func_start sub_80FE9E4
+sub_80FE9E4: @ 80FE9E4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FE9FA
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080FEA4E
+_080FE9FA:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080FEA14
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ adds r0, 0x1
+ b _080FEA1E
+ .pool
+_080FEA14:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ adds r0, 0x6
+_080FEA1E:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xF
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080FEA4E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FE9E4
+
+ thumb_func_start sub_80FEA58
+sub_80FEA58: @ 80FEA58
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ movs r2, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080FEAB2
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ movs r0, 0x6
+ strh r0, [r5, 0x8]
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0xF
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ movs r0, 0x50
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ ldr r4, =gUnknown_08592210
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl CreateSpriteAndAnimate
+_080FEAB2:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ bne _080FEAC0
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_080FEAC0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEA58
+
+ thumb_func_start sub_80FEAD8
+sub_80FEAD8: @ 80FEAD8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldr r0, =sub_80FEB28
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEAD8
+
+ thumb_func_start sub_80FEB28
+sub_80FEB28: @ 80FEB28
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FEB3C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FEB3C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEB28
+
+ thumb_func_start sub_80FEB44
+sub_80FEB44: @ 80FEB44
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random2
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x7
+ ands r1, r0
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FEB90
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x14
+ b _080FEB94
+ .pool
+_080FEB90:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x14
+_080FEB94:
+ strh r0, [r5, 0x20]
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ ands r0, r1
+ adds r0, 0x40
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_80A7160
+ bl Random2
+ movs r1, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x38]
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3A]
+ ldr r1, =sub_80FEBFC
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEB44
+
+ thumb_func_start sub_80FEBFC
+sub_80FEBFC: @ 80FEBFC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A70E8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FEC12
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ b _080FEC42
+_080FEC12:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7E
+ bgt _080FEC2E
+ ldrh r0, [r4, 0x3A]
+ b _080FEC32
+_080FEC2E:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+_080FEC32:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x18
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080FEC42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEBFC
+
+ thumb_func_start sub_80FEC48
+sub_80FEC48: @ 80FEC48
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FEC68
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080FEC68:
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl InitAnimArcTranslation
+ ldr r0, =sub_80FECB8
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEC48
+
+ thumb_func_start sub_80FECB8
+sub_80FECB8: @ 80FECB8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FECE2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r4, 0x1C]
+ ldr r1, =sub_80FECF0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_080FECE2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FECB8
+
+ thumb_func_start sub_80FECF0
+sub_80FECF0: @ 80FECF0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FECF0
+
+ thumb_func_start sub_80FED28
+sub_80FED28: @ 80FED28
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ ldr r5, =gBattleAnimArgs
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080FED52
+ ldrb r0, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080FED52:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldr r1, =sub_80FED74
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FED28
+
+ thumb_func_start sub_80FED74
+sub_80FED74: @ 80FED74
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x18
+ strh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080FEDC8
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ b _080FEDEC
+ .pool
+_080FEDC8:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080FEDDC
+ movs r2, 0x3
+_080FEDDC:
+ movs r0, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+_080FEDEC:
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080FEE10
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FEE10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FED74
+
+ thumb_func_start sub_80FEE1C
+sub_80FEE1C: @ 80FEE1C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEE36
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEE3E
+_080FEE36:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080FEE70
+_080FEE3E:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FEE60
+ movs r0, 0x2
+ movs r1, 0x4
+ movs r2, 0x3
+ bl SetAnimBgAttribute
+ b _080FEE6A
+ .pool
+_080FEE60:
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_080FEE6A:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_080FEE70:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEE1C
+
+ thumb_func_start sub_80FEE78
+sub_80FEE78: @ 80FEE78
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, =sub_80FEECC
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEE78
+
+ thumb_func_start sub_80FEECC
+sub_80FEECC: @ 80FEECC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEF38
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080FEF18
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ subs r0, 0x1
+ b _080FEF22
+ .pool
+_080FEF18:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ adds r0, 0x1
+_080FEF22:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080FEF3E
+ .pool
+_080FEF38:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FEF3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEECC
+
+ thumb_func_start sub_80FEF44
+sub_80FEF44: @ 80FEF44
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, =sub_80FEF98
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEF44
+
+ thumb_func_start sub_80FEF98
+sub_80FEF98: @ 80FEF98
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEFF0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x3B
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080FEFD0
+ adds r0, r1, 0
+ subs r0, 0xBB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _080FEFE4
+_080FEFD0:
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ eors r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_080FEFE4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080FEFF6
+_080FEFF0:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FEFF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEF98
+
+ thumb_func_start sub_80FEFFC
+sub_80FEFFC: @ 80FEFFC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, =sub_80FF044
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FEFFC
+
+ thumb_func_start sub_80FF044
+sub_80FF044: @ 80FF044
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x32]
+ movs r2, 0x32
+ ldrsh r3, [r1, r2]
+ cmp r3, 0
+ bne _080FF078
+ ldrh r0, [r1, 0x30]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080FF066
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+ strh r3, [r1, 0x32]
+ b _080FF06C
+_080FF066:
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ strh r2, [r1, 0x32]
+_080FF06C:
+ ldr r0, =sub_80FF090
+ str r0, [r1, 0x1C]
+ b _080FF08C
+ .pool
+_080FF078:
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ ldrh r0, [r1, 0x2E]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+_080FF08C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF044
+
+ thumb_func_start sub_80FF090
+sub_80FF090: @ 80FF090
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FF0B4
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+ negs r0, r0
+ b _080FF0BE
+ .pool
+_080FF0B4:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+_080FF0BE:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF0DE
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+_080FF0DE:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080FF0EC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FF0EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF090
+
+ thumb_func_start sub_80FF0F4
+sub_80FF0F4: @ 80FF0F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FF114
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080FF114:
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080FF154
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ b _080FF174
+ .pool
+_080FF154:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl SetAverageBattlerPositions
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+_080FF174:
+ strh r0, [r5, 0x36]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl InitAnimArcTranslation
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080FF1AC
+ movs r0, 0x1
+ b _080FF1AE
+ .pool
+_080FF1AC:
+ movs r0, 0
+_080FF1AE:
+ strh r0, [r5, 0x2E]
+ ldr r0, =sub_80FF1C0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF0F4
+
+ thumb_func_start sub_80FF1C0
+sub_80FF1C0: @ 80FF1C0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ ldrh r5, [r6, 0x2E]
+ ldrh r4, [r6, 0x3C]
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ adds r0, r6, 0
+ bl TranslateAnimArc
+ ldrh r0, [r6, 0x3C]
+ strh r5, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0xC8
+ ble _080FF1F2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ bgt _080FF1F2
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080FF1F8
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+_080FF1F2:
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080FF22A
+_080FF1F8:
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080FF22A
+ adds r3, r6, 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]
+ ldrh r0, [r6, 0x6]
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bne _080FF22A
+ movs r7, 0x1
+_080FF22A:
+ movs r2, 0x20
+ ldrsh r0, [r6, r2]
+ movs r2, 0x24
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080FF254
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080FF254
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080FF256
+_080FF254:
+ movs r7, 0x1
+_080FF256:
+ cmp r7, 0
+ beq _080FF260
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080FF260:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF1C0
+
+ thumb_func_start AnimMoveTwisterParticle
+AnimMoveTwisterParticle: @ 80FF268
+ push {r4,lr}
+ adds r4, r0, 0
+ bl IsDoubleBattle
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF28A
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl SetAverageBattlerPositions
+_080FF28A:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x36]
+ ldr r0, =sub_80FF2BC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimMoveTwisterParticle
+
+ thumb_func_start sub_80FF2BC
+sub_80FF2BC: @ 80FF2BC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bne _080FF2D2
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ b _080FF2E0
+_080FF2D2:
+ cmp r0, 0
+ ble _080FF2E0
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ subs r0, r1, 0x2
+ strh r0, [r4, 0x30]
+_080FF2E0:
+ ldrh r3, [r4, 0x32]
+ ldrh r5, [r4, 0x38]
+ adds r2, r3, r5
+ strh r2, [r4, 0x38]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r5, 0x36
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bge _080FF2F8
+ adds r0, r2, r3
+ strh r0, [r4, 0x38]
+_080FF2F8:
+ ldrh r1, [r4, 0x38]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r5, 0x38
+ ldrsh r0, [r4, r5]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080FF338
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ b _080FF346
+ .pool
+_080FF338:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+_080FF346:
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FF36A
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FF36A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF2BC
+
+ thumb_func_start sub_80FF374
+sub_80FF374: @ 80FF374
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80A6980
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, =gBattleAnimArgs
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, =sub_80FF3B0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF374
+
+ thumb_func_start sub_80FF3B0
+sub_80FF3B0: @ 80FF3B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _080FF3DA
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_80FF3EC
+ str r0, [r4, 0x1C]
+_080FF3DA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF3B0
+
+ thumb_func_start sub_80FF3EC
+sub_80FF3EC: @ 80FF3EC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080FF404
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ b _080FF408
+_080FF404:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0xB
+_080FF408:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080FF424
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x32]
+_080FF424:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF452
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080FF44C
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ b _080FF452
+_080FF44C:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FF452:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF3EC
+
+ thumb_func_start sub_80FF458
+sub_80FF458: @ 80FF458
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, =gSprites
+ mov r10, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r2, r10
+ adds r7, r0, r2
+ adds r0, r7, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080FF498
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _080FF51C
+ .pool
+_080FF498:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_80A7270
+ ldr r0, =gTasks
+ lsls r6, r4, 2
+ adds r6, r4
+ lsls r6, 3
+ adds r6, r0
+ ldrb r0, [r7, 0x5]
+ lsls r0, 28
+ lsrs r0, 30
+ strh r0, [r6, 0x24]
+ ldr r0, =gBattleAnimTarget
+ mov r9, r0
+ ldrb r0, [r0]
+ bl sub_80A8328
+ movs r1, 0x3
+ mov r8, r1
+ mov r1, r8
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ movs r0, 0x3
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ add r4, r10
+ ldrb r0, [r4, 0x5]
+ lsls r0, 28
+ lsrs r0, 30
+ strh r0, [r6, 0x26]
+ mov r2, r9
+ ldrb r1, [r2]
+ movs r0, 0x2
+ eors r0, r1
+ bl sub_80A8328
+ mov r1, r8
+ ands r1, r0
+ lsls r1, 2
+ ldrb r0, [r4, 0x5]
+ ands r5, r0
+ orrs r5, r1
+ strb r5, [r4, 0x5]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r6, 0x8]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r6, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r6, 0x1E]
+ ldr r0, =sub_80FF53C
+ str r0, [r6]
+_080FF51C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF458
+
+ thumb_func_start sub_80FF53C
+sub_80FF53C: @ 80FF53C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0
+ strh r1, [r4, 0x1C]
+ ldr r2, =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r5, 0x24]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FF586
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080FF586:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x10
+ strh r0, [r4, 0x1E]
+ movs r0, 0x1E
+ ldrsh r2, [r4, r0]
+ adds r0, r6, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r6, 0
+ bl sub_80A7E6C
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080FF5B4
+ strh r0, [r4, 0x8]
+ ldr r0, =sub_80FF5CC
+ str r0, [r4]
+_080FF5B4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF53C
+
+ thumb_func_start sub_80FF5CC
+sub_80FF5CC: @ 80FF5CC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _080FF660
+ ldr r0, =gTasks
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r7, r1, r0
+ movs r1, 0x8
+ ldrsh r5, [r7, r1]
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _080FF674
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80A7344
+ ldr r6, =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r6
+ strh r5, [r1, 0x24]
+ strh r5, [r1, 0x26]
+ movs r5, 0x3
+ ldrh r2, [r7, 0x24]
+ ands r2, r5
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x3
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x26]
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r1, 0x5]
+ ands r4, r2
+ orrs r4, r0
+ strb r4, [r1, 0x5]
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ b _080FF68E
+ .pool
+_080FF660:
+ ldr r1, =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080FF68E
+_080FF674:
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080FF68E
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_080FF68E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF5CC
+
+ thumb_func_start sub_80FF698
+sub_80FF698: @ 80FF698
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080FF6AA
+ cmp r0, 0x1
+ beq _080FF704
+ b _080FF756
+_080FF6AA:
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FF6C2
+ ldr r1, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080FF6C2:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080FF756
+ .pool
+_080FF704:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF756
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_80A70C0
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_080FF756:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF698
+
+ thumb_func_start sub_80FF768
+sub_80FF768: @ 80FF768
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080FF7D4
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1E
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r4, 0x6]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r2, 0x22
+ ldrsh r0, [r5, r2]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r0, 0x78
+ ble _080FF7D4
+ ldrh r0, [r5, 0x22]
+ adds r1, r0, 0
+ subs r1, 0x78
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ adds r1, r0
+ strh r1, [r5, 0x22]
+_080FF7D4:
+ ldr r0, =sub_80FF8DC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF768
+
+ thumb_func_start sub_80FF7EC
+sub_80FF7EC: @ 80FF7EC
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ adds r2, r0, 0
+ lsls r2, 24
+ subs r4, r5
+ lsls r4, 16
+ lsrs r2, 24
+ mov r1, r8
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r3, r4, 16
+ mov r10, r3
+ asrs r4, 16
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ muls r0, r4
+ movs r1, 0x64
+ str r2, [sp]
+ bl __divsi3
+ adds r5, r0
+ mov r3, r9
+ strh r5, [r3, 0x20]
+ ldr r2, [sp]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ add r8, r0
+ mov r1, r8
+ mov r0, r9
+ strh r1, [r0, 0x22]
+ ldrh r0, [r6, 0x2]
+ mov r3, r9
+ strh r0, [r3, 0x24]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r3, 0x26]
+ ldrb r0, [r6, 0x6]
+ adds r0, 0x1E
+ mov r1, r9
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0x8]
+ mov r0, r9
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0xA]
+ mov r1, r9
+ strh r0, [r1, 0x32]
+ ldr r0, =sub_80FF8DC
+ str r0, [r1, 0x1C]
+ ldr r1, =gUnknown_0203A0F8
+ mov r3, r9
+ ldrh r0, [r3, 0x20]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1, 0x2]
+ mov r0, r10
+ strh r0, [r1, 0x4]
+ ldr r2, [sp]
+ strh r2, [r1, 0x6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF7EC
+
+ thumb_func_start sub_80FF8DC
+sub_80FF8DC: @ 80FF8DC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ adds r1, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080FF91C
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ movs r2, 0x3E
+ adds r2, r3
+ mov r12, r2
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080FF91C:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ ble _080FF92E
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_080FF92E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF8DC
+
+ thumb_func_start sub_80FF934
+sub_80FF934: @ 80FF934
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080FF974
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x30]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x34]
+_080FF974:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+ ldrh r1, [r6, 0x30]
+ muls r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x2E
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0xFF
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080FF9AA
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_080FF9AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FF934
+
+ thumb_func_start sub_80FF9B8
+sub_80FF9B8: @ 80FF9B8
+ push {r4,r5,lr}
+ movs r2, 0x20
+ ldrsh r4, [r0, r2]
+ lsls r4, 8
+ movs r3, 0x22
+ ldrsh r2, [r0, r3]
+ orrs r4, r2
+ movs r5, 0x3A
+ ldrsh r2, [r0, r5]
+ lsls r2, 8
+ movs r5, 0x3C
+ ldrsh r3, [r0, r5]
+ orrs r2, r3
+ lsls r1, 8
+ strh r4, [r0, 0x38]
+ strh r2, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF9B8
+
+ thumb_func_start sub_80FF9E0
+sub_80FF9E0: @ 80FF9E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ ldrh r0, [r0, 0x38]
+ lsrs r1, r0, 8
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r1, r8
+ ldrh r0, [r1, 0x3A]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r1, [r1, 0x3C]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0xFF
+ ands r3, r1
+ cmp r2, 0
+ bne _080FFA1A
+ movs r2, 0x20
+ negs r2, r2
+ b _080FFA22
+_080FFA1A:
+ cmp r2, 0xFF
+ bne _080FFA22
+ movs r2, 0x88
+ lsls r2, 1
+_080FFA22:
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r1, r10
+ subs r0, r2, r1
+ lsls r5, r3, 16
+ asrs r5, 16
+ muls r0, r5
+ lsls r1, r6, 16
+ asrs r7, r1, 16
+ adds r1, r7, 0
+ bl __divsi3
+ adds r6, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r7, 0
+ bl __divsi3
+ add r6, r10
+ mov r1, r8
+ strh r6, [r1, 0x20]
+ add r0, r9
+ strh r0, [r1, 0x22]
+ adds r5, 0x1
+ lsls r5, 16
+ lsrs r3, r5, 16
+ asrs r5, 16
+ cmp r5, r7
+ beq _080FFA74
+ lsls r1, r7, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r1
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ movs r0, 0
+ b _080FFA76
+_080FFA74:
+ movs r0, 0x1
+_080FFA76:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF9E0
+
+ thumb_func_start sub_80FFA84
+sub_80FFA84: @ 80FFA84
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080FFA98
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080FFA98:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080FFAAC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FFAAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FFA84
+
+ thumb_func_start sub_80FFAB4
+sub_80FFAB4: @ 80FFAB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080FFADE
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080FFADE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80FF9E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFB0E
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, =sub_80FFA84
+ str r0, [r4, 0x1C]
+_080FFB0E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFAB4
+
+ thumb_func_start sub_80FFB18
+sub_80FFB18: @ 80FFB18
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080FFB68
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80FF9B8
+ movs r0, 0x1
+ b _080FFB7A
+ .pool
+_080FFB68:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80FF9B8
+ movs r0, 0x3
+_080FFB7A:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_80FFAB4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFB18
+
+ thumb_func_start sub_80FFB90
+sub_80FFB90: @ 80FFB90
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080FFBBA
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080FFBBA:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80FF9E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFBEC
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FFBEC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FFB90
+
+ thumb_func_start sub_80FFBF4
+sub_80FFBF4: @ 80FFBF4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080FFC38
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80FF9B8
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_80FFAB4
+ b _080FFC62
+ .pool
+_080FFC38:
+ movs r0, 0xFF
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFC50
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+_080FFC50:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80FF9B8
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_80FFB90
+_080FFC62:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFBF4
+
+ thumb_func_start sub_80FFC70
+sub_80FFC70: @ 80FFC70
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080FFC8A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A6980
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x30]
+_080FFC8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ muls r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FFCAA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FFCAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFC70
+
+ thumb_func_start sub_80FFCB4
+sub_80FFCB4: @ 80FFCB4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80A6980
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gBattleAnimTarget
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080FFD04
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80FF9B8
+ movs r0, 0x1
+ b _080FFD16
+ .pool
+_080FFD04:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80FF9B8
+ movs r0, 0x3
+_080FFD16:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_80FFD2C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFCB4
+
+ thumb_func_start sub_80FFD2C
+sub_80FFD2C: @ 80FFD2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080FFD56
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080FFD56:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FFD8A
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080FFD8A:
+ adds r0, r4, 0
+ bl sub_80FF9E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFDB2
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, =sub_80FFA84
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080FFDB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFD2C
+
+ thumb_func_start sub_80FFDBC
+sub_80FFDBC: @ 80FFDBC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080FFE50
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFDE4
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ strh r1, [r4, 0x30]
+ movs r1, 0x78
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080FFE06
+ .pool
+_080FFDE4:
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r3, [r0, r1]
+ adds r1, r3, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ adds r5, r0, 0
+ cmp r1, 0
+ bge _080FFDFA
+ adds r2, r3, 0
+ adds r2, 0xDF
+_080FFDFA:
+ asrs r0, r2, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x46
+ strh r0, [r4, 0x20]
+_080FFE06:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x32]
+ movs r0, 0x14
+ strh r0, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_80FFE58
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080FFE48
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080FFE4E
+ .pool
+_080FFE48:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080FFE4E:
+ strb r0, [r1]
+_080FFE50:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FFDBC
+
+ thumb_func_start sub_80FFE58
+sub_80FFE58: @ 80FFE58
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080FFE6A
+ cmp r0, 0x1
+ beq _080FFE9A
+ b _080FFEBA
+_080FFE6A:
+ ldrh r5, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4E
+ ble _080FFE82
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080FFEBA
+_080FFE82:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ adds r0, r5, r0
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x3
+ strh r1, [r4, 0x36]
+ strh r0, [r4, 0x22]
+ b _080FFEBA
+_080FFE9A:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080FFEBA
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FFEBA
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r0, =sub_80FFEC4
+ str r0, [r4, 0x1C]
+_080FFEBA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFE58
+
+ thumb_func_start sub_80FFEC4
+sub_80FFEC4: @ 80FFEC4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, =gUnknown_08592700
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r3, r0, r1
+ adds r0, r5, 0x1
+ adds r0, r3, r0
+ ldrh r2, [r4, 0x32]
+ movs r6, 0x32
+ ldrsh r1, [r4, r6]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080FFF10
+ adds r0, r5, 0x2
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x7F
+ bne _080FFEFC
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_80FFF7C
+ str r0, [r4, 0x1C]
+_080FFEFC:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080FFF76
+ .pool
+_080FFF10:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r1, r0, r5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFF5E
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080FFF56
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080FFF5C
+_080FFF56:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080FFF5C:
+ strb r0, [r1]
+_080FFF5E:
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+_080FFF76:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FFEC4
+
+ thumb_func_start sub_80FFF7C
+sub_80FFF7C: @ 80FFF7C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080FFF8E
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_080FFF8E:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FFF7C
+
+ thumb_func_start sub_80FFFC0
+sub_80FFFC0: @ 80FFFC0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_80A861C
+ strh r0, [r5, 0x1C]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_80A861C
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0x1
+ bne _08100028
+ movs r1, 0x1
+_08100028:
+ strh r1, [r5, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r5, r3]
+ lsls r0, 6
+ movs r1, 0x38
+ subs r1, r0
+ strh r1, [r5, 0x1A]
+ ldrh r0, [r5, 0x16]
+ subs r0, r1
+ ldrh r1, [r5, 0x14]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldr r0, =gUnknown_08592778
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1A
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ cmp r0, 0x40
+ bne _08100060
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08100060:
+ ldr r4, =gSprites
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x18]
+ strh r1, [r0, 0x30]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ muls r1, r0
+ ldrh r0, [r5, 0x14]
+ subs r0, r1
+ strh r0, [r2, 0x32]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x1A]
+ strh r1, [r0, 0x34]
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ muls r0, r2
+ ldrh r2, [r5, 0x16]
+ adds r0, r2
+ strh r0, [r1, 0x36]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_8100504
+ movs r1, 0xC
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x38]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl InitAnimArcTranslation
+ ldr r0, =sub_8100128
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80FFFC0
+
+ thumb_func_start sub_8100128
+sub_8100128: @ 8100128
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ cmp r5, 0x7
+ bne _08100150
+ b _08100380
+_08100150:
+ cmp r5, 0x7
+ bgt _0810019E
+ cmp r5, 0x3
+ bne _0810015A
+ b _08100272
+_0810015A:
+ cmp r5, 0x3
+ bgt _08100174
+ cmp r5, 0x1
+ beq _08100204
+ cmp r5, 0x1
+ bgt _08100254
+ cmp r5, 0
+ beq _081001E6
+ b _081004FC
+ .pool
+_08100174:
+ cmp r5, 0x5
+ bne _0810017A
+ b _081002E8
+_0810017A:
+ cmp r5, 0x5
+ ble _08100180
+ b _08100362
+_08100180:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100196
+ b _081004FC
+_08100196:
+ movs r0, 0x5
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _081004FA
+_0810019E:
+ cmp r5, 0xB
+ bne _081001A4
+ b _08100464
+_081001A4:
+ cmp r5, 0xB
+ bgt _081001D2
+ cmp r5, 0x9
+ bne _081001AE
+ b _081003D2
+_081001AE:
+ cmp r5, 0x9
+ ble _081001B4
+ b _08100448
+_081001B4:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ bne _081001CA
+ b _081004FC
+_081001CA:
+ movs r0, 0x9
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _081004FA
+_081001D2:
+ cmp r5, 0xD
+ bne _081001D8
+ b _081004D6
+_081001D8:
+ cmp r5, 0xD
+ bge _081001DE
+ b _081004B6
+_081001DE:
+ cmp r5, 0xFF
+ bne _081001E4
+ b _081004E6
+_081001E4:
+ b _081004FC
+_081001E6:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ bne _081001FC
+ b _081004FC
+_081001FC:
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _081004FA
+_08100204:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8100504
+ strh r0, [r4, 0x38]
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x2
+ strh r0, [r6, 0x10]
+ strh r5, [r6, 0xE]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_08100254:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810026A
+ b _081004FC
+_0810026A:
+ movs r0, 0x3
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _081004FA
+_08100272:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r1, r0
+ ldrh r0, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8100504
+ strh r0, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_081002E8:
+ ldrh r1, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r2, 0x1E
+ ldrsh r0, [r6, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8100504
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x3
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_08100362:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100378
+ b _081004FC
+_08100378:
+ movs r0, 0x7
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _081004FA
+_08100380:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8100504
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ adds r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x4
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_081003D2:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ ldrh r3, [r6, 0x16]
+ adds r0, r3
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8100504
+ strh r0, [r4, 0x38]
+ movs r0, 0x5
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_08100448:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _081004FC
+ movs r0, 0xB
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _081004FA
+_08100464:
+ ldrh r2, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r2, r0
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x18]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x1A]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8100504
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x6
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_081004B6:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_8100524
+ adds r0, r4, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _081004FC
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _081004FA
+_081004D6:
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _081004FC
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _081004FC
+_081004E6:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _081004FC
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ ldrh r0, [r6, 0x26]
+_081004FA:
+ strh r0, [r6, 0x8]
+_081004FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100128
+
+ thumb_func_start sub_8100504
+sub_8100504: @ 8100504
+ push {lr}
+ movs r2, 0x8
+ movs r3, 0x36
+ ldrsh r1, [r0, r3]
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _0810051A
+ negs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+_0810051A:
+ lsls r0, r2, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100504
+
+ thumb_func_start sub_8100524
+sub_8100524: @ 8100524
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081005BA
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ ldr r0, =gSprites
+ mov r8, r0
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ ldrh r2, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r2, r0
+ ldr r0, =gUnknown_08592778
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r3, [r6, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081005BA
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r0, r8
+ adds r4, r5, r0
+ strh r7, [r4, 0x3A]
+ movs r0, 0xC
+ strh r0, [r4, 0x3C]
+ ldr r0, =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldrh r2, [r6, 0x22]
+ movs r0, 0x1
+ ands r0, r2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x10]
+ adds r4, 0x43
+ strb r0, [r4]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r5, r0
+ ldr r0, =sub_81005D4
+ str r0, [r5]
+_081005BA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100524
+
+ thumb_func_start sub_81005D4
+sub_81005D4: @ 81005D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08100636
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ 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]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08100636
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_08100636:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81005D4
+
+ thumb_func_start sub_8100640
+sub_8100640: @ 8100640
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810065C
+ ldr r0, =gBattleAnimAttacker
+ b _0810065E
+ .pool
+_0810065C:
+ ldr r0, =gBattleAnimTarget
+_0810065E:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100688
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, =0x0000fff0
+ b _08100698
+ .pool
+_08100688:
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ lsls r0, 1
+_08100698:
+ strh r0, [r4, 0x20]
+ adds r7, r1, 0
+ adds r5, r7, 0
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _081006CE
+ cmp r0, 0x1
+ bgt _081006C0
+ cmp r0, 0
+ beq _081006CA
+ b _08100738
+ .pool
+_081006C0:
+ cmp r0, 0x2
+ beq _081006D4
+ cmp r0, 0x3
+ beq _08100700
+ b _08100738
+_081006CA:
+ ldrh r0, [r5]
+ b _081006E4
+_081006CE:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ b _0810071A
+_081006D4:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5]
+ adds r0, r5
+_081006E4:
+ strh r0, [r4, 0x22]
+ adds r0, r6, 0
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _08100738
+_08100700:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7]
+ adds r0, r7
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+_0810071A:
+ adds r0, r6, 0
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_08100738:
+ ldr r0, =sub_810074C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100640
+
+ thumb_func_start sub_810074C
+sub_810074C: @ 810074C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r3, [r4, r0]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ ldr r1, =gSineTable
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ muls r0, r3
+ strh r0, [r4, 0x24]
+ movs r5, 0x34
+ ldrsh r0, [r4, r5]
+ muls r0, r3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081007A4
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r5, 0x20
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ cmp r0, 0xF7
+ ble _081007BC
+ b _081007B6
+ .pool
+_081007A4:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _081007BC
+_081007B6:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_081007BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810074C
+
+ thumb_func_start sub_81007C4
+sub_81007C4: @ 81007C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081007E8
+ cmp r0, 0x1
+ beq _0810081C
+ b _08100876
+ .pool
+_081007E8:
+ ldr r0, =0x0000274f
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r4, r2, 0
+ adds r0, r4
+ strh r0, [r5, 0x18]
+ ldr r0, =0x000027b0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08100876
+ .pool
+_0810081C:
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ blt _08100876
+ strh r7, [r5, 0x1A]
+ ldrh r0, [r5, 0x18]
+ ldrb r2, [r5, 0x1C]
+ ldr r4, =gUnknown_08592878
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x20]
+ ldrb r2, [r5, 0x1C]
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bne _08100876
+ strh r7, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bne _08100876
+ strh r7, [r5, 0x1E]
+_08100876:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0810088A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_0810088A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81007C4
+
+ thumb_func_start sub_8100898
+sub_8100898: @ 8100898
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, =gBattleAnimArgs
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _081008B4
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+ b _0810098E
+ .pool
+_081008B4:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _081008C4
+ ldr r4, =gBattleAnimAttacker
+ b _081008C6
+ .pool
+_081008C4:
+ ldr r4, =gBattleAnimTarget
+_081008C6:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0x8]
+ strh r1, [r6, 0x2E]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _08100908
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x20]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x38]
+ strh r2, [r6, 0x3A]
+ b _08100918
+ .pool
+_08100908:
+ strh r5, [r6, 0x20]
+ strh r2, [r6, 0x22]
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x38]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x3A]
+_08100918:
+ ldrh r4, [r6, 0x20]
+ lsls r0, r4, 4
+ strh r0, [r6, 0x30]
+ ldrh r5, [r6, 0x22]
+ lsls r0, r5, 4
+ strh r0, [r6, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r6, r1]
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x34]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x38]
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x3A]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl ArcTan2Neg
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810097A
+ ldr r1, =0xffff8000
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0810097A:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_80A73E0
+ ldr r0, =sub_81009A0
+ str r0, [r6, 0x1C]
+_0810098E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100898
+
+ thumb_func_start sub_81009A0
+sub_81009A0: @ 81009A0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _081009D0
+ ldrh r0, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r0, r4
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r4, [r2, 0x32]
+ adds r1, r4
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x2E]
+ b _081009D6
+_081009D0:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_081009D6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81009A0
+
+ thumb_func_start sub_81009DC
+sub_81009DC: @ 81009DC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081009F2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_081009F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81009DC
+
+ thumb_func_start sub_81009F8
+sub_81009F8: @ 81009F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100A20
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ b _08100A2C
+ .pool
+_08100A20:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_08100A2C:
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81009F8
+
+ thumb_func_start sub_8100A50
+sub_8100A50: @ 8100A50
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100A6A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_08100A6A:
+ ldr r0, =sub_81009DC
+ str r0, [r5, 0x1C]
+ ldr r4, =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_80A6864
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100A50
+
+ thumb_func_start sub_8100A94
+sub_8100A94: @ 8100A94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A66DC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100A94
+
+ thumb_func_start sub_8100AE0
+sub_8100AE0: @ 8100AE0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100B14
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_08100B14:
+ ldr r0, =sub_8100CCC
+ str r0, [r5, 0x1C]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _08100B3C
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _08100B50
+ .pool
+_08100B3C:
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08100B50:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldr r1, =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x30]
+ adds r1, r0, r2
+ strh r1, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08100B7E
+ negs r0, r1
+ strh r0, [r5, 0x30]
+_08100B7E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100AE0
+
+ thumb_func_start sub_8100B88
+sub_8100B88: @ 8100B88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _08100BA8
+ cmp r0, 0x1
+ ble _08100C24
+ cmp r0, 0x2
+ beq _08100BC8
+ b _08100C24
+ .pool
+_08100BA8:
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ eors r4, r0
+ adds r0, r4, 0
+ b _08100C34
+ .pool
+_08100BC8:
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ movs r2, 0x2
+ mov r8, r2
+ mov r1, r8
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100C3E
+ ldrb r0, [r5]
+ mov r2, r8
+ eors r0, r2
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ lsrs r7, r0, 1
+ ldrb r0, [r5]
+ mov r1, r8
+ eors r0, r1
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ lsrs r4, r0, 1
+ b _08100C3E
+ .pool
+_08100C24:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+_08100C34:
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08100C3E:
+ strh r7, [r6, 0x20]
+ strh r4, [r6, 0x22]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100C56
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x8
+ strh r0, [r6, 0x22]
+_08100C56:
+ ldr r0, =sub_8100CCC
+ str r0, [r6, 0x1C]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _08100C7C
+ ldrh r0, [r3]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ b _08100C90
+ .pool
+_08100C7C:
+ ldrh r0, [r6, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r6, 0x20]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08100C90:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r6, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldr r1, =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r6, 0x30]
+ adds r1, r0, r2
+ strh r1, [r6, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r6, 0x32]
+ adds r0, r2
+ strh r0, [r6, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08100CBE
+ negs r0, r1
+ strh r0, [r6, 0x30]
+_08100CBE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100B88
+
+ thumb_func_start sub_8100CCC
+sub_8100CCC: @ 8100CCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08100CEE
+ adds r0, r1, 0
+ adds r0, 0x18
+ b _08100CF2
+_08100CEE:
+ adds r0, r1, 0
+ subs r0, 0x18
+_08100CF2:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x18
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _08100D28
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r4, 0x1C]
+_08100D28:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100CCC
+
+ thumb_func_start sub_8100D38
+sub_8100D38: @ 8100D38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ ble _08100DDC
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08100D94
+ adds r3, r5, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r4, =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ adds r1, r2, 0
+ ands r1, r3
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ b _08100DCA
+ .pool
+_08100D94:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_08100DCA:
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ b _08100DE0
+ .pool
+_08100DDC:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x32]
+_08100DE0:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xA
+ bne _08100E10
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+_08100E10:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100D38
+
+ thumb_func_start sub_8100E1C
+sub_8100E1C: @ 8100E1C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100E44
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _08100E4A
+ .pool
+_08100E44:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_08100E4A:
+ strh r0, [r5, 0x20]
+ ldr r4, =gBattleAnimArgs
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, =sub_8100E80
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100E1C
+
+ thumb_func_start sub_8100E80
+sub_8100E80: @ 8100E80
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _08100EAC
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ b _08100EB2
+_08100EAC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0xE
+_08100EB2:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x82
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08100EE8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08100EE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100E80
+
+ thumb_func_start sub_8100EF0
+sub_8100EF0: @ 8100EF0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100F06
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x8
+ strh r0, [r1, 0x2]
+_08100F06:
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord2
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100F44
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08100F6C
+_08100F44:
+ ldrb r0, [r6]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ b _08100F84
+ .pool
+_08100F6C:
+ ldrb r0, [r6]
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_08100F84:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, =0x00002828
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ movs r4, 0x10
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r0, [r5, 0x3C]
+ lsls r1, r0, 8
+ subs r4, r0
+ orrs r1, r4
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, =sub_8100FD4
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100EF0
+
+ thumb_func_start sub_8100FD4
+sub_8100FD4: @ 8100FD4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x60
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08101032
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, =gPlttBufferFaded
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r2, 0
+ adds r6, r1, 0
+ adds r3, r6, 0
+_0810100C:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r2, 0x1
+ adds r0, r2
+ lsls r1, r0, 1
+ adds r1, r3
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ cmp r2, 0x5
+ ble _0810100C
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_08101032:
+ ldrh r2, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _0810106C
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _08101080
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810106C
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ subs r2, 0x1
+ strh r2, [r4, 0x3C]
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+_0810106C:
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08101080
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _081010C2
+ .pool
+_08101080:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081010C2
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r2, 0x1
+ strh r2, [r4, 0x3C]
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081010C2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_80A67F4
+ str r0, [r4, 0x1C]
+_081010C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8100FD4
+
+ thumb_func_start sub_81010CC
+sub_81010CC: @ 81010CC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x0000ffe8
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ strh r5, [r4, 0x3A]
+ movs r0, 0x10
+ strh r0, [r4, 0x3C]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, =sub_8101138
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81010CC
+
+ thumb_func_start sub_8101138
+sub_8101138: @ 8101138
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08101146
+ b _08101290
+_08101146:
+ lsls r0, 2
+ ldr r1, =_08101154
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08101154:
+ .4byte _08101168
+ .4byte _081011CC
+ .4byte _081011E8
+ .4byte _08101266
+ .4byte _0810127A
+_08101168:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08101176
+ b _08101290
+_08101176:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101198
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _081011A6
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _081011A6
+_08101198:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _081011A6
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_081011A6:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _08101290
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08101290
+ strh r0, [r4, 0x30]
+ b _08101272
+_081011CC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08101290
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _08101272
+_081011E8:
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x4
+ bl sub_8101298
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0810120A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_0810120A:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _08101290
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08101230
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0810123E
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _0810123E
+_08101230:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _0810123E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_0810123E:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r0, [r4, 0x3A]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _08101290
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _08101290
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ b _08101272
+_08101266:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08101272:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08101290
+_0810127A:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08101290:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101138
+
+ thumb_func_start sub_8101298
+sub_8101298: @ 8101298
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xB
+ bgt _081012AA
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_081012AA:
+ ldrh r5, [r4, 0x34]
+ adds r0, r5, 0
+ subs r0, 0x12
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ cmp r0, 0x17
+ bhi _081012C0
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x2
+ strh r0, [r4, 0x36]
+_081012C0:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _081012CE
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_081012CE:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0x9
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081012F4
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_081012F4:
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08101304
+ movs r0, 0
+ strh r0, [r4, 0x34]
+_08101304:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101298
+
+ thumb_func_start sub_810130C
+sub_810130C: @ 810130C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08101320
+ adds r0, r4, 0
+ bl sub_80A6838
+_08101320:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_80A6864
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A656C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810130C
+
+ thumb_func_start sub_810135C
+sub_810135C: @ 810135C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08101378
+ ldr r0, =gBattleAnimAttacker
+ b _0810137A
+ .pool
+_08101378:
+ ldr r0, =gBattleAnimTarget
+_0810137A:
+ ldrb r6, [r0]
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _081013C4
+ movs r1, 0x2
+ adds r0, r6, 0
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081013C4
+ ldr r4, =gBattleAnimArgs
+ ldrb r1, [r4, 0xC]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ adds r0, r6, 0
+ bl SetAverageBattlerPositions
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_80A6864
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ b _08101414
+ .pool
+_081013C4:
+ ldr r4, =gBattleAnimArgs
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081013E8
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ b _081013FA
+ .pool
+_081013E8:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+_081013FA:
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_80A6864
+_08101414:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A656C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810135C
+
+ thumb_func_start sub_8101440
+sub_8101440: @ 8101440
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101474
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _0810148E
+ .pool
+_08101474:
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_0810148E:
+ ldr r0, =sub_81014A0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101440
+
+ thumb_func_start sub_81014A0
+sub_81014A0: @ 81014A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _081014D8
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1E
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 18
+ asrs r0, 16
+ movs r1, 0x3
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_081014D8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081014EC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081014EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81014A0
+
+ thumb_func_start sub_81014F4
+sub_81014F4: @ 81014F4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810152C
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _0810154A
+ .pool
+_0810152C:
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldr r0, =0x0000ffff
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0810154A:
+ ldr r0, =sub_8101560
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81014F4
+
+ thumb_func_start sub_8101560
+sub_8101560: @ 8101560
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _081015A4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_081015A4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101560
+
+ thumb_func_start sub_81015AC
+sub_81015AC: @ 81015AC
+ push {lr}
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x22]
+ movs r1, 0x14
+ strh r1, [r0, 0x2E]
+ ldr r1, =WaitAnimForDuration
+ str r1, [r0, 0x1C]
+ ldr r1, =sub_81015D4
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81015AC
+
+ thumb_func_start sub_81015D4
+sub_81015D4: @ 81015D4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r6, [r5, 0x38]
+ movs r1, 0x1
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _081015EA
+ cmp r0, 0x1
+ beq _08101604
+ b _0810166A
+_081015EA:
+ strh r1, [r5, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r5, 0x1C]
+ ldr r1, =sub_81015D4
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ b _0810166A
+ .pool
+_08101604:
+ ldrh r3, [r5, 0x24]
+ ldrh r0, [r5, 0x20]
+ adds r3, r0
+ movs r0, 0
+ strh r3, [r5, 0x20]
+ ldrh r4, [r5, 0x26]
+ ldrh r1, [r5, 0x22]
+ adds r4, r1
+ strh r4, [r5, 0x22]
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r2, =gUnknown_08592CD0
+ lsls r0, r6, 16
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r3, r1
+ strh r3, [r5, 0x32]
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r0
+ strh r4, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =sub_8101684
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xD2
+ bl PlaySE12WithPanning
+_0810166A:
+ ldrh r0, [r5, 0x38]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x38]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81015D4
+
+ thumb_func_start sub_8101684
+sub_8101684: @ 8101684
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _081016AC
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r2, 0x1C]
+ ldr r1, =sub_81016B8
+ adds r0, r2, 0
+ bl StoreSpriteCallbackInData6
+ b _081016B0
+ .pool
+_081016AC:
+ ldr r0, =sub_81015D4
+ str r0, [r2, 0x1C]
+_081016B0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101684
+
+ thumb_func_start sub_81016B8
+sub_81016B8: @ 81016B8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x6]
+ cmp r1, 0
+ bne _081016E0
+ movs r0, 0x3
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r5, 0x1C]
+ ldr r1, =sub_8101774
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ b _08101760
+ .pool
+_081016E0:
+ ldrh r0, [r5, 0x6]
+ cmp r0, 0x2
+ beq _08101700
+ cmp r0, 0x2
+ bgt _081016F0
+ cmp r0, 0x1
+ beq _081016F6
+ b _08101714
+_081016F0:
+ cmp r0, 0x3
+ beq _08101708
+ b _08101714
+_081016F6:
+ ldr r6, =0x0000fff8
+ adds r7, r6, 0
+ b _08101718
+ .pool
+_08101700:
+ ldr r7, =0x0000fff8
+ b _08101716
+ .pool
+_08101708:
+ movs r7, 0x8
+ ldr r6, =0x0000fff8
+ b _08101718
+ .pool
+_08101714:
+ movs r7, 0x8
+_08101716:
+ movs r6, 0x8
+_08101718:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =sub_8101820
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_08101760:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81016B8
+
+ thumb_func_start sub_8101774
+sub_8101774: @ 8101774
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08101794
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _081017A4
+ movs r0, 0x10
+ b _081017A2
+_08101794:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081017A4
+ movs r0, 0
+_081017A2:
+ strh r0, [r4, 0x30]
+_081017A4:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80A75AC
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =0x00007fff
+ bl BlendPalettes
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _0810180C
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ lsls r0, r1, 5
+ ldr r2, =gPlttBufferUnfaded + 0x210
+ adds r0, r2
+ lsls r1, 4
+ ldr r3, =0x00000101
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ b _08101814
+ .pool
+_0810180C:
+ cmp r0, 0
+ bne _08101814
+ ldr r0, =sub_8101820
+ str r0, [r4, 0x1C]
+_08101814:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101774
+
+ thumb_func_start sub_8101820
+sub_8101820: @ 8101820
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08101838
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ strh r0, [r2, 0x2E]
+ ldr r0, =sub_8101848
+ str r0, [r2, 0x1C]
+_08101838:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101820
+
+ thumb_func_start sub_8101848
+sub_8101848: @ 8101848
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0810187C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ 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]
+_0810187C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _08101890
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08101890:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101848
+
+ thumb_func_start sub_8101898
+sub_8101898: @ 8101898
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081018BC
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ b _0810190E
+ .pool
+_081018BC:
+ cmp r0, 0x2
+ bne _081018D8
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x20
+ b _0810190A
+_081018D8:
+ cmp r0, 0x3
+ bne _081018F4
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ b _0810190A
+_081018F4:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+_0810190A:
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_0810190E:
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldr r1, =sub_81015AC
+ str r1, [r3, 0x1C]
+ adds r0, r3, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101898
+
+ thumb_func_start sub_8101940
+sub_8101940: @ 8101940
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _0810197C
+ cmp r0, 0x1
+ bgt _0810196C
+ cmp r0, 0
+ beq _08101972
+ b _0810198C
+ .pool
+_0810196C:
+ cmp r0, 0x2
+ beq _08101984
+ b _0810198C
+_08101972:
+ ldr r0, =sub_8101998
+ b _0810198E
+ .pool
+_0810197C:
+ ldr r0, =sub_8101A74
+ b _0810198E
+ .pool
+_08101984:
+ ldr r0, =sub_8101AC4
+ b _0810198E
+ .pool
+_0810198C:
+ ldr r0, =sub_8101B84
+_0810198E:
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101940
+
+ thumb_func_start sub_8101998
+sub_8101998: @ 8101998
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x2E]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _081019B6
+ movs r1, 0x2
+_081019B6:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, =gBattlerSpriteIds
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, =sub_81019E8
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A6630
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101998
+
+ thumb_func_start sub_81019E8
+sub_81019E8: @ 81019E8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ bne _08101A24
+ ldr r1, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ movs r1, 0
+ bl sub_80A7270
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldr r2, =0xfffffd00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _08101A20
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0, 0
+_08101A20:
+ strh r1, [r5, 0x36]
+ strh r6, [r5, 0x38]
+_08101A24:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08101A5E
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, =sub_8101B84
+ str r0, [r5, 0x1C]
+_08101A5E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81019E8
+
+ thumb_func_start sub_8101A74
+sub_8101A74: @ 8101A74
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _08101A92
+ movs r0, 0x3
+ negs r0, r0
+ adds r1, r0, 0
+_08101A92:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, =gBattlerSpriteIds
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, =sub_8101B84
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A6630
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101A74
+
+ thumb_func_start sub_8101AC4
+sub_8101AC4: @ 8101AC4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08101ADE
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, =sub_8101AE8
+ str r0, [r1, 0x1C]
+_08101ADE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101AC4
+
+ thumb_func_start sub_8101AE8
+sub_8101AE8: @ 8101AE8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08101B38
+ ldr r1, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101B2C
+ movs r0, 0xFC
+ lsls r0, 8
+ strh r0, [r5, 0x36]
+ movs r0, 0xC0
+ lsls r0, 4
+ b _08101B36
+ .pool
+_08101B2C:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r5, 0x36]
+ movs r0, 0xF4
+ lsls r0, 8
+_08101B36:
+ strh r0, [r5, 0x38]
+_08101B38:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08101B78
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7344
+ ldr r0, =sub_8101B84
+ str r0, [r5, 0x1C]
+_08101B78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101AE8
+
+ thumb_func_start sub_8101B84
+sub_8101B84: @ 8101B84
+ push {lr}
+ bl DestroyAnimSprite
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101B84
+
+ thumb_func_start sub_8101B90
+sub_8101B90: @ 8101B90
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, =sub_8101BA0
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_8101B90
+
+ thumb_func_start sub_8101BA0
+sub_8101BA0: @ 8101BA0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _08101BFA
+ cmp r5, 0x1
+ bgt _08101BB6
+ cmp r5, 0
+ beq _08101BBC
+ b _08101C8E
+_08101BB6:
+ cmp r5, 0x2
+ beq _08101C4C
+ b _08101C8E
+_08101BBC:
+ strh r5, [r4, 0x30]
+ ldr r1, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r2]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldr r2, =0xfffffe00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _08101BE4
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+_08101BE4:
+ strh r1, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80A7270
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08101BFA:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08101C8E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08101C8E
+ .pool
+_08101C4C:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A73A0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08101C8E
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7344
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08101C8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101BA0
+
+ thumb_func_start sub_8101C94
+sub_8101C94: @ 8101C94
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r1, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrb r0, [r2]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r5, 0xA]
+ strh r4, [r5, 0xC]
+ ldr r0, =gBattleAnimArgs
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ beq _08101CE8
+ cmp r1, 0x1
+ beq _08101D04
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _08101D22
+ .pool
+_08101CE8:
+ strh r1, [r5, 0xC]
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r0, 0x3
+ strh r0, [r5, 0x12]
+ cmp r2, 0
+ bne _08101CFC
+ negs r0, r0
+ strh r0, [r5, 0x12]
+_08101CFC:
+ ldr r0, =sub_8101D2C
+ b _08101D20
+ .pool
+_08101D04:
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ movs r0, 0xC0
+ lsls r0, 3
+ strh r0, [r5, 0x10]
+ movs r1, 0xC0
+ strh r1, [r5, 0x12]
+ cmp r2, 0
+ bne _08101D1E
+ negs r0, r0
+ strh r0, [r5, 0x10]
+ negs r0, r1
+ strh r0, [r5, 0x12]
+_08101D1E:
+ ldr r0, =sub_8101EEC
+_08101D20:
+ str r0, [r5]
+_08101D22:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101C94
+
+ thumb_func_start sub_8101D2C
+sub_8101D2C: @ 8101D2C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08101D46
+ b _08101EE6
+_08101D46:
+ lsls r0, 2
+ ldr r1, =_08101D58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08101D58:
+ .4byte _08101D6C
+ .4byte _08101D9E
+ .4byte _08101DF8
+ .4byte _08101E70
+ .4byte _08101EB4
+_08101D6C:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _08101D7C
+ ldrh r2, [r4, 0x12]
+ ldrh r3, [r4, 0x10]
+ adds r2, r3
+ b _08101EC2
+_08101D7C:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC0
+ cmp r0, 0
+ bne _08101D92
+ movs r2, 0xC0
+ negs r2, r2
+ adds r1, r2, 0
+_08101D92:
+ strh r1, [r4, 0x12]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_80A7270
+ b _08101EA8
+_08101D9E:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _08101DC4
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80A73A0
+ b _08101ED4
+_08101DC4:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ ldr r2, =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _08101DEA
+ movs r1, 0x2
+_08101DEA:
+ strh r1, [r4, 0x12]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _08101EA8
+ .pool
+_08101DF8:
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _08101E54
+ ldrh r1, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _08101E12
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ b _08101EE6
+_08101E12:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08101E34
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r4, 0x10]
+ adds r1, r2
+ b _08101E48
+ .pool
+_08101E34:
+ ldr r2, =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+_08101E48:
+ strh r1, [r0, 0x24]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _08101ED4
+ .pool
+_08101E54:
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x24]
+ movs r0, 0xC
+ strh r0, [r4, 0xE]
+ b _08101EA8
+ .pool
+_08101E70:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08101E80
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _08101EE6
+_08101E80:
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+ ldr r2, =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x8
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _08101EA6
+ movs r1, 0x8
+_08101EA6:
+ strh r1, [r4, 0x12]
+_08101EA8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08101EE6
+ .pool
+_08101EB4:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _08101EE0
+ ldrh r2, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r2, r0
+_08101EC2:
+ strh r2, [r4, 0x10]
+ ldr r3, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+_08101ED4:
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _08101EE6
+ .pool
+_08101EE0:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08101EE6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101D2C
+
+ thumb_func_start sub_8101EEC
+sub_8101EEC: @ 8101EEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08101F2C
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80A73A0
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _08101F38
+ .pool
+_08101F2C:
+ ldrb r0, [r4, 0x8]
+ bl sub_80A7344
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08101F38:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101EEC
+
+ thumb_func_start sub_8101F40
+sub_8101F40: @ 8101F40
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08101F5C
+ ldr r4, =gBattleAnimAttacker
+ b _08101F5E
+ .pool
+_08101F5C:
+ ldr r4, =gBattleAnimTarget
+_08101F5E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldr r1, =sub_810208C
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101F40
+
+ thumb_func_start sub_8101FA8
+sub_8101FA8: @ 8101FA8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x0000ffd0
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, =sub_8102044
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101FA8
+
+ thumb_func_start sub_8101FF0
+sub_8101FF0: @ 8101FF0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gBattleAnimArgs
+ ldr r2, =0x0000ffd0
+ adds r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ ldr r0, =sub_810208C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8101FF0
+
+ thumb_func_start sub_8102044
+sub_8102044: @ 8102044
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0810206E
+ movs r0, 0xC
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, =sub_810207C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A653C
+ str r0, [r4, 0x1C]
+_0810206E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102044
+
+ thumb_func_start sub_810207C
+sub_810207C: @ 810207C
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ ldr r1, =sub_810208C
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_810207C
+
+ thumb_func_start sub_810208C
+sub_810208C: @ 810208C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081020D4
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081020D4
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_081020D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810208C
+
+ thumb_func_start sub_81020D8
+sub_81020D8: @ 81020D8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _081020F4
+ ldr r4, =gBattleAnimAttacker
+ b _081020F6
+ .pool
+_081020F4:
+ ldr r4, =gBattleAnimTarget
+_081020F6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x30]
+ ldr r0, =sub_810213C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81020D8
+
+ thumb_func_start sub_810213C
+sub_810213C: @ 810213C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _0810215C
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_0810215C:
+ ldrh r0, [r2, 0x22]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08102178
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_08102178:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810213C
+
+ thumb_func_start sub_810217C
+sub_810217C: @ 810217C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0xC
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ movs r0, 0x2
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ subs r0, 0x42
+ bl BattleAnimAdjustPanning
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, =sub_81021CC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810217C
+
+ thumb_func_start sub_81021CC
+sub_81021CC: @ 81021CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _08102238
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0810221E
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810221E
+ ldrh r1, [r4, 0x38]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC2
+ bl PlaySE12WithPanning
+_0810221E:
+ movs r1, 0
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08102238
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08102238:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08102262
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ ble _08102262
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08102262
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08102262:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81021CC
+
+ thumb_func_start sub_8102268
+sub_8102268: @ 8102268
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _081022B2
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r5, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x2]
+ adds r0, r5
+ strh r0, [r6, 0x22]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081022AC
+ ldrh r0, [r6, 0x22]
+ adds r0, 0xA
+ strh r0, [r6, 0x22]
+_081022AC:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+_081022B2:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _081022C2
+ adds r0, r6, 0
+ bl DestroyAnimSprite
+_081022C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102268
+
+ thumb_func_start sub_81022D4
+sub_81022D4: @ 81022D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08102300
+ ldr r1, =gBattleAnimArgs
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0xE]
+ b _0810233E
+ .pool
+_08102300:
+ cmp r0, 0x2
+ bne _0810230C
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _08102344
+_0810230C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _08102344
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r2, [r4, 0xA]
+ adds r2, 0x1
+ strh r2, [r4, 0xA]
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _08102344
+_0810233E:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_08102344:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81022D4
+
+ thumb_func_start sub_810234C
+sub_810234C: @ 810234C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80A6980
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_810237C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810234C
+
+ thumb_func_start sub_810237C
+sub_810237C: @ 810237C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08102390
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _081023CC
+_08102390:
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+_081023CC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810237C
+
+ thumb_func_start sub_81023E0
+sub_81023E0: @ 81023E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _08102428
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _08102428
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08102428:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81023E0
+
+ thumb_func_start sub_8102434
+sub_8102434: @ 8102434
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08102490
+ ldr r6, =gBattleAnimArgs
+ ldr r5, =gHealthboxSpriteIds
+_08102448:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _08102464
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102464
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteInvisible
+_08102464:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _08102482
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08102482
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteInvisible
+_08102482:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _08102448
+_08102490:
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102434
+
+ thumb_func_start sub_81024A8
+sub_81024A8: @ 81024A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _081024C2
+_081024B2:
+ ldr r0, =gHealthboxSpriteIds
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ bl SetHealthboxSpriteVisible
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081024C2:
+ ldr r0, =gBattlersCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _081024B2
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81024A8
+
+ thumb_func_start sub_81024E0
+sub_81024E0: @ 81024E0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081024F6
+ movs r0, 0x30
+ strh r0, [r4, 0x20]
+ movs r0, 0x28
+ b _081024FE
+_081024F6:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_081024FE:
+ strh r0, [r4, 0x22]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_8102528
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81024E0
+
+ thumb_func_start sub_8102528
+sub_8102528: @ 8102528
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0810253A
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_0810253A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8102528
+
+ thumb_func_start sub_8102540
+sub_8102540: @ 8102540
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r2, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r0, =sub_8102584
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102540
+
+ thumb_func_start sub_8102584
+sub_8102584: @ 8102584
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081025AE
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _081025AE
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x32]
+_081025AE:
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _081025BC
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_081025BC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8102584
+
+ thumb_func_start sub_81025C0
+sub_81025C0: @ 81025C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A75AC
+ mov r8, r0
+ ldr r0, =0x0000ffff
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldr r0, =gTasks
+ mov r9, r0
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r6, r5, r0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0xA]
+ strh r4, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ strh r4, [r6, 0x10]
+ strh r4, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ movs r0, 0xD
+ strh r0, [r6, 0x16]
+ movs r0, 0xE
+ strh r0, [r6, 0x18]
+ movs r0, 0xF
+ strh r0, [r6, 0x1A]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80A76C4
+ mov r10, r0
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+ movs r0, 0x8
+ add r9, r0
+ add r5, r9
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r5, 0x1E
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_80A8048
+ ldr r0, =0x000027d2
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ mov r0, r10
+ orrs r0, r1
+ mov r10, r0
+ ldr r0, =0x000027d3
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0
+ mov r1, r10
+ orrs r4, r1
+ ldr r0, =0x00007fbb
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =sub_81026A8
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81025C0
+
+ thumb_func_start sub_81026A8
+sub_81026A8: @ 81026A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _08102794
+ cmp r1, 0x1
+ bgt _081026D4
+ cmp r1, 0
+ beq _081026E2
+ b _08102832
+ .pool
+_081026D4:
+ cmp r1, 0x2
+ bne _081026DA
+ b _081027EC
+_081026DA:
+ cmp r1, 0x3
+ bne _081026E0
+ b _08102820
+_081026E0:
+ b _08102832
+_081026E2:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _081026F0
+ b _08102832
+_081026F0:
+ strh r1, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0810273C
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x18]
+ ldrh r3, [r4, 0x12]
+ adds r2, r3
+ strh r2, [r4, 0x12]
+ ldrh r1, [r4, 0x1A]
+ ldrh r5, [r4, 0x14]
+ adds r1, r5
+ strh r1, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r2, 11
+ orrs r0, r2
+ lsrs r1, 6
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ b _08102746
+_0810273C:
+ ldr r7, =0x00007fbb
+ mov r12, r7
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08102746:
+ movs r2, 0x1
+ movs r3, 0
+ movs r1, 0
+_0810274C:
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ ands r0, r2
+ lsls r5, r2, 17
+ adds r6, r3, 0
+ adds r6, 0x10
+ adds r1, 0x1
+ mov r8, r1
+ cmp r0, 0
+ beq _08102778
+ movs r1, 0x1
+ ldr r2, =gPlttBufferFaded
+_08102764:
+ adds r0, r3, r1
+ lsls r0, 1
+ adds r0, r2
+ mov r7, r12
+ strh r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08102764
+_08102778:
+ lsrs r2, r5, 16
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _0810274C
+ b _08102832
+ .pool
+_08102794:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08102832
+ movs r2, 0
+ ldr r3, =gSprites
+ movs r5, 0x14
+ adds r5, r3
+ mov r12, r5
+ ldr r7, =gUnknown_08592EBC
+ mov r8, r7
+ ldr r6, =gBattleAnimSpriteTemplate_8592EEC
+ movs r5, 0x1
+_081027B2:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r1, r0, 2
+ mov r7, r12
+ adds r0, r1, r7
+ ldr r0, [r0]
+ cmp r0, r8
+ beq _081027C6
+ cmp r0, r6
+ bne _081027CA
+_081027C6:
+ adds r0, r1, r3
+ strh r5, [r0, 0x2E]
+_081027CA:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _081027B2
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08102814
+ .pool
+_081027EC:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _08102832
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ bl sub_80A8050
+ ldr r1, =0x00007fbb
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08102814:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08102832
+ .pool
+_08102820:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08102832
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08102832:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81026A8
+
+ thumb_func_start sub_8102844
+sub_8102844: @ 8102844
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bgt _08102856
+ movs r0, 0x2
+ strh r0, [r6, 0x4]
+_08102856:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7F
+ ble _08102862
+ movs r0, 0x7F
+ strh r0, [r6, 0x4]
+_08102862:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5, 0x20]
+ strh r1, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081028D4
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, =0xffffec00
+ b _081028FA
+ .pool
+_081028D4:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810291C
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 5
+_081028FA:
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, =0xfffff600
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ b _08102958
+ .pool
+_0810291C:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ subs r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, =0xffffec00
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_08102958:
+ ldr r0, =sub_810296C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102844
+
+ thumb_func_start sub_810296C
+sub_810296C: @ 810296C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r1, r3
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081029A2
+ ldrh r0, [r2, 0x3A]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x22]
+_081029A2:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _081029B0
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_081029B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810296C
+
+ thumb_func_start sub_81029B4
+sub_81029B4: @ 81029B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x8]
+ ldr r0, =0x00002771
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ lsls r0, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r4, r0, 4
+ movs r5, 0x1
+ ldr r2, =gPlttBufferUnfaded
+_08102A0C:
+ adds r1, r3, r5
+ lsls r1, 1
+ adds r1, r2
+ adds r0, r4, r5
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _08102A0C
+ adds r0, r3, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0
+ bl BlendPalette
+ movs r0, 0
+ strh r0, [r6, 0xE]
+ movs r5, 0
+ ldr r7, =gSprites
+ movs r1, 0x1C
+ adds r1, r7
+ mov r9, r1
+ b _08102A88
+ .pool
+_08102A54:
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r7
+ ldrb r1, [r6, 0xA]
+ lsls r1, 4
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, r5, 7
+ strh r0, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x32]
+ add r2, r9
+ ldr r0, =sub_8102B3C
+ str r0, [r2]
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08102A88:
+ cmp r5, 0x1
+ bhi _08102A9A
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102A54
+_08102A9A:
+ ldr r0, =sub_8102AE0
+ str r0, [r6]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08102AC8
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _08102AD2
+ .pool
+_08102AC8:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl ClearGpuRegBits
+_08102AD2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81029B4
+
+ thumb_func_start sub_8102AE0
+sub_8102AE0: @ 8102AE0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102B32
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08102B1C
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _08102B26
+ .pool
+_08102B1C:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_08102B26:
+ ldr r0, =0x00002771
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08102B32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102AE0
+
+ thumb_func_start sub_8102B3C
+sub_8102B3C: @ 8102B3C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08102B58
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_08102B58:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ ble _08102B80
+ ldr r2, =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xE]
+ subs r1, 0x1
+ strh r1, [r0, 0xE]
+ adds r0, r5, 0
+ bl obj_delete_but_dont_free_vram
+ b _08102BC2
+ .pool
+_08102B80:
+ ldr r4, =gSineTable
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x6
+ bl __divsi3
+ strh r0, [r5, 0x36]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xD
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrh r1, [r5, 0x30]
+ adds r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+_08102BC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102B3C
+
+ thumb_func_start sub_8102BCC
+sub_8102BCC: @ 8102BCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102BCC
+
+ thumb_func_start sub_8102BE8
+sub_8102BE8: @ 8102BE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, =gUnknown_08593020
+ ldrh r0, [r4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ beq _08102C2C
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r5, =gPlttBufferFaded
+_08102C14:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r5
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _08102C14
+_08102C2C:
+ movs r4, 0x1
+ ldr r0, =gUnknown_08593020
+ mov r8, r0
+_08102C32:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r5, r0, 2
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, 0x1
+ mov r12, r4
+ cmp r3, 0xFF
+ beq _08102C7A
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r7, =gPlttBufferFaded
+ ldr r6, =gUnknown_08593020
+ adds r4, r5, 0
+_08102C60:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r7
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _08102C60
+_08102C7A:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08102C32
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102BE8
+
+ thumb_func_start sub_8102CA0
+sub_8102CA0: @ 8102CA0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0x1
+ ldr r6, =gUnknown_08593020
+_08102CAA:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08102CAA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102CA0
+
+ thumb_func_start sub_8102CD4
+sub_8102CD4: @ 8102CD4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_80A6838
+ ldr r4, =gBattleAnimArgs
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r2, =gUnknown_08593020
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08102D10
+ lsls r2, r0, 4
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+_08102D10:
+ ldrh r0, [r4, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x34]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102D34
+ movs r6, 0x30
+ movs r3, 0x28
+ b _08102D4E
+ .pool
+_08102D34:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r3, r0, 24
+_08102D4E:
+ ldrh r0, [r5, 0x20]
+ lsls r1, r0, 4
+ strh r1, [r5, 0x36]
+ ldrh r1, [r5, 0x22]
+ lsls r2, r1, 4
+ strh r2, [r5, 0x38]
+ subs r0, r6, r0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r5, 0
+ adds r2, 0x3A
+ adds r3, r5, 0
+ adds r3, 0x3C
+ movs r4, 0x28
+ str r4, [sp]
+ bl sub_8102D8C
+ ldr r0, =sub_8102DE4
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102CD4
+
+ thumb_func_start sub_8102D8C
+sub_8102D8C: @ 8102D8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x18]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r1, r2, 24
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bge _08102DAE
+ lsls r0, r1, 24
+ negs r0, r0
+ lsrs r1, r0, 24
+_08102DAE:
+ lsls r5, r2, 8
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _08102DC2
+ movs r4, 0x1
+_08102DC2:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ strh r0, [r7]
+ lsls r0, r6, 16
+ asrs r0, 8
+ adds r1, r4, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8102D8C
+
+ thumb_func_start sub_8102DE4
+sub_8102DE4: @ 8102DE4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r1, r0, r1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08102E00
+ adds r0, 0xFF
+_08102E00:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ ldrh r3, [r4, 0x38]
+ adds r2, r3
+ strh r2, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xF
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08102E4E
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _08102E4E
+ cmp r1, 0x80
+ ble _08102E56
+_08102E4E:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ b _08102EA6
+_08102E56:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _08102EA6
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r1
+ ble _08102EA6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08102E7E
+ strh r5, [r4, 0x30]
+_08102E7E:
+ ldr r2, =gUnknown_08593020
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08102EA6
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_08102EA6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102DE4
+
+ thumb_func_start sub_8102EB0
+sub_8102EB0: @ 8102EB0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, =gBattleAnimAttacker
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08102ECE
+ ldr r1, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_08102ECE:
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x32]
+ strh r5, [r6, 0x34]
+ ldrh r0, [r6, 0x20]
+ lsls r0, 4
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x22]
+ lsls r0, 4
+ strh r0, [r6, 0x38]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3A]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3C]
+ ldr r0, =sub_8102F40
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102EB0
+
+ thumb_func_start sub_8102F40
+sub_8102F40: @ 8102F40
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ ble _08102F9E
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08102F9E
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x12
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x12
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08102F9E
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+_08102F9E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ bne _08102FB2
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_08102FB2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8102F40
+
+ thumb_func_start sub_8102FB8
+sub_8102FB8: @ 8102FB8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _08102FDC
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ movs r6, 0x10
+ b _08102FDE
+ .pool
+_08102FDC:
+ ldr r6, =0x0000fff0
+_08102FDE:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8102FB8
+
+ thumb_func_start sub_8103028
+sub_8103028: @ 8103028
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldr r5, =gBattleAnimArgs
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r2, =gUnknown_08593020
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08103068
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_08103068:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ cmp r0, 0
+ bne _08103074
+ ldr r2, =0x0000ffe0
+_08103074:
+ movs r0, 0x28
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r4, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ subs r0, 0x28
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r0, =sub_81030B0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103028
+
+ thumb_func_start sub_81030B0
+sub_81030B0: @ 81030B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103100
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r4, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _081030DC
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_081030DC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ ldrh r3, [r4, 0x26]
+ adds r0, r3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _08103106
+_08103100:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08103106:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81030B0
+
+ thumb_func_start sub_810310C
+sub_810310C: @ 810310C
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810312C
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_80A861C
+ adds r0, 0x8
+ b _08103136
+_0810312C:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A861C
+ subs r0, 0x8
+_08103136:
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A861C
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08103158
+ adds r0, 0x3
+_08103158:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810310C
+
+ thumb_func_start sub_8103164
+sub_8103164: @ 8103164
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08103180
+ ldr r0, =gBattleAnimAttacker
+ b _08103182
+ .pool
+_08103180:
+ ldr r0, =gBattleAnimTarget
+_08103182:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_810310C
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0x2
+ strh r0, [r5, 0x30]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, =sub_81031D0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103164
+
+ thumb_func_start sub_81031D0
+sub_81031D0: @ 81031D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081031F8
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+_081031F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81031D0
+
+ thumb_func_start sub_8103208
+sub_8103208: @ 8103208
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08103224
+ ldr r0, =gBattleAnimAttacker
+ b _08103226
+ .pool
+_08103224:
+ ldr r0, =gBattleAnimTarget
+_08103226:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_810310C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r1, =sub_8103250
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67BC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103208
+
+ thumb_func_start sub_8103250
+sub_8103250: @ 8103250
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _08103276
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67BC
+ str r0, [r4, 0x1C]
+_08103276:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103250
+
+ thumb_func_start sub_8103284
+sub_8103284: @ 8103284
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _081032A0
+ ldr r0, =gBattleAnimAttacker
+ b _081032A2
+ .pool
+_081032A0:
+ ldr r0, =gBattleAnimTarget
+_081032A2:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80A861C
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _081032CA
+ movs r0, 0xA
+ strh r0, [r4, 0x22]
+_081032CA:
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r1]
+ adds r0, 0x4
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ ldr r1, =sub_8103300
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67BC
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103284
+
+ thumb_func_start sub_8103300
+sub_8103300: @ 8103300
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _08103316
+ ldr r0, =sub_8103320
+ str r0, [r1, 0x1C]
+_08103316:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103300
+
+ thumb_func_start sub_8103320
+sub_8103320: @ 8103320
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFE
+ ble _08103352
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _0810334C
+ strh r0, [r2, 0x24]
+ ldr r0, =sub_8103250
+ str r0, [r2, 0x1C]
+ b _08103388
+ .pool
+_0810334C:
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2, 0x30]
+_08103352:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ ble _08103362
+ ldrh r0, [r2, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_08103362:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x9F
+ ble _08103372
+ ldrh r0, [r2, 0x32]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_08103372:
+ ldr r1, =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ asrs r1, r0, 1
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_08103388:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103320
+
+ thumb_func_start sub_8103390
+sub_8103390: @ 8103390
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _081033AC
+ ldr r0, =gBattleAnimAttacker
+ b _081033AE
+ .pool
+_081033AC:
+ ldr r0, =gBattleAnimTarget
+_081033AE:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_810310C
+ adds r0, r4, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _081033D4
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x2
+ b _081033DE
+ .pool
+_081033D4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3
+_081033DE:
+ strh r0, [r5, 0x2E]
+ ldr r0, =sub_81033F0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103390
+
+ thumb_func_start sub_81033F0
+sub_81033F0: @ 81033F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _0810341E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, =sub_810342C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+_0810341E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81033F0
+
+ thumb_func_start sub_810342C
+sub_810342C: @ 810342C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _08103444
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_08103444:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810342C
+
+ .align 2, 0
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
new file mode 100644
index 000000000..c8cd53398
--- /dev/null
+++ b/asm/battle_anim_effects_2.s
@@ -0,0 +1,7544 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8103448
+sub_8103448: @ 8103448
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r5, =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_80A6864
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r1, =move_anim_8074EE0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, =sub_80A6450
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103448
+
+ thumb_func_start sub_8103498
+sub_8103498: @ 8103498
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _081034B4
+ ldr r0, =gBattleAnimAttacker
+ b _081034B6
+ .pool
+_081034B4:
+ ldr r0, =gBattleAnimTarget
+_081034B6:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_810310C
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x30]
+ ldr r0, =sub_81034D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103498
+
+ thumb_func_start sub_81034D8
+sub_81034D8: @ 81034D8
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _0810350A
+ cmp r0, 0x1
+ bgt _081034EE
+ cmp r0, 0
+ beq _081034F4
+ b _08103538
+_081034EE:
+ cmp r0, 0x2
+ beq _08103524
+ b _08103538
+_081034F4:
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08103538
+ b _0810351C
+_0810350A:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08103538
+_0810351C:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08103538
+_08103524:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _08103538
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+_08103538:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81034D8
+
+ thumb_func_start sub_810353C
+sub_810353C: @ 810353C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, =gSprites
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _0810357A
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_0810357A:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810353C
+
+ thumb_func_start sub_810358C
+sub_810358C: @ 810358C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _081035E4
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r5, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r5, 0x20]
+ adds r1, r0, 0
+ b _081035EE
+ .pool
+_081035E4:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_081035EE:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ strh r6, [r5, 0x32]
+ ldr r0, =sub_810353C
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810358C
+
+ thumb_func_start sub_8103620
+sub_8103620: @ 8103620
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x38]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r4, 0x1C]
+ ldr r1, =sub_8103658
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103620
+
+ thumb_func_start sub_8103658
+sub_8103658: @ 8103658
+ push {lr}
+ ldrh r1, [r0, 0x30]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0xF
+ strh r1, [r0, 0x36]
+ ldr r1, =StartAnimLinearTranslation
+ str r1, [r0, 0x1C]
+ ldr r1, =sub_8103680
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103658
+
+ thumb_func_start sub_8103680
+sub_8103680: @ 8103680
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x38]
+ movs r3, 0x38
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08103696
+ adds r0, r1, 0
+ bl DestroyAnimSprite
+ b _0810369A
+_08103696:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x38]
+_0810369A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103680
+
+ thumb_func_start sub_81036A0
+sub_81036A0: @ 81036A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_80A7270
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81036DC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81036A0
+
+ thumb_func_start sub_81036DC
+sub_81036DC: @ 81036DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103718
+ ldr r1, =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r6, r2, 0
+ b _08103726
+ .pool
+_08103718:
+ ldr r2, =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r3, [r0, 0x8]
+ adds r6, r1, 0
+_08103726:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldr r1, =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08103760
+ ldrh r0, [r1, 0x8]
+ adds r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ b _0810378A
+ .pool
+_08103760:
+ cmp r0, 0x1
+ bne _08103776
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bne _081037D0
+ movs r0, 0x2
+ b _081037CE
+_08103776:
+ ldrh r0, [r1, 0x8]
+ subs r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x1
+_0810378A:
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0
+ bl sub_80A73A0
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ movs r0, 0xF2
+ lsls r0, 4
+ cmp r2, r0
+ beq _081037AA
+ cmp r2, 0
+ bne _081037D0
+_081037AA:
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bne _081037CC
+ adds r0, r4, 0
+ bl sub_80A7344
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ b _081037D0
+ .pool
+_081037CC:
+ adds r0, r2, 0x1
+_081037CE:
+ strh r0, [r1, 0xA]
+_081037D0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81036DC
+
+ thumb_func_start sub_81037D8
+sub_81037D8: @ 81037D8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103804
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _08103810
+ .pool
+_08103804:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r5, r1, 0
+_08103810:
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810384C
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x1
+ adds r2, r0, 0
+ orrs r2, r1
+ strb r2, [r3]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08103860
+ movs r0, 0x2
+ orrs r2, r0
+ strb r2, [r3]
+ b _08103860
+ .pool
+_0810384C:
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08103860
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+_08103860:
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81037D8
+
+ thumb_func_start sub_810387C
+sub_810387C: @ 810387C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r0, =sub_80A67BC
+ str r0, [r4, 0x1C]
+ ldr r1, =sub_81038A0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810387C
+
+ thumb_func_start sub_81038A0
+sub_81038A0: @ 81038A0
+ push {lr}
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x36]
+ ldr r1, =StartAnimLinearTranslation
+ str r1, [r0, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81038A0
+
+ thumb_func_start sub_81038C8
+sub_81038C8: @ 81038C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081038EC
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _0810390E
+ .pool
+_081038EC:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810390E
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_0810390E:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r6, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldrh r1, [r5, 0x20]
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl ArcTan2Neg
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103980
+ ldr r2, =0xffffa000
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08103980:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_80A73E0
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ strh r0, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81038C8
+
+ thumb_func_start sub_81039CC
+sub_81039CC: @ 81039CC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _081039F6
+ ldr r2, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ adds r0, r3, 0
+ bl DestroySprite
+_081039F6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81039CC
+
+ thumb_func_start sub_8103A00
+sub_8103A00: @ 8103A00
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ ble _08103A34
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x36]
+ ldrh r3, [r2, 0x3A]
+ adds r0, r3
+ b _08103A42
+ .pool
+_08103A34:
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x34]
+ subs r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ subs r0, r1
+_08103A42:
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x30]
+ adds r3, r0, r1
+ strh r3, [r2, 0x30]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08103A66
+ lsls r0, r3, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _08103A6A
+_08103A66:
+ lsls r0, r3, 16
+ lsrs r0, 24
+_08103A6A:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r4, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08103A7E
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _08103A82
+_08103A7E:
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+_08103A82:
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08103A98
+ movs r0, 0x1E
+ strh r0, [r2, 0x2E]
+ ldr r0, =sub_81039CC
+ str r0, [r2, 0x1C]
+_08103A98:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103A00
+
+ thumb_func_start sub_8103AA4
+sub_8103AA4: @ 8103AA4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ ldrh r2, [r6, 0x16]
+ movs r1, 0x2
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r3, [r7, 0x30]
+ adds r2, r0, r3
+ strh r2, [r7, 0x30]
+ ldrh r0, [r6, 0x18]
+ ands r1, r0
+ ldrh r0, [r7, 0x32]
+ adds r1, r0
+ strh r1, [r7, 0x32]
+ ldrh r1, [r6, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08103AEC
+ lsls r0, r2, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _08103AF0
+ .pool
+_08103AEC:
+ lsls r0, r2, 16
+ lsrs r0, 24
+_08103AF0:
+ strh r0, [r7, 0x24]
+ ldrh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08103B04
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _08103B08
+_08103B04:
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+_08103B08:
+ strh r0, [r7, 0x26]
+ ldrh r0, [r7, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r7, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08103BD4
+ movs r4, 0
+ movs r0, 0x8
+ strh r0, [r7, 0x2E]
+ movs r0, 0x4
+ strh r0, [r6, 0x12]
+ movs r0, 0x80
+ lsls r0, 5
+ bl sub_8151624
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r2, r0, r1
+ strh r2, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r3, [r7, 0x22]
+ adds r0, r3
+ strh r0, [r7, 0x22]
+ strh r4, [r7, 0x26]
+ strh r4, [r7, 0x24]
+ ldrh r3, [r6, 0x1E]
+ movs r0, 0x1E
+ ldrsh r1, [r6, r0]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ blt _08103B52
+ subs r0, r3, r2
+ b _08103B54
+_08103B52:
+ subs r0, r2, r3
+_08103B54:
+ lsls r0, 24
+ lsrs r4, r0, 16
+ ldrh r3, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r7, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _08103B6C
+ subs r0, r3, r2
+ b _08103B6E
+_08103B6C:
+ subs r0, r2, r3
+_08103B6E:
+ lsls r0, 24
+ lsrs r0, 16
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ strh r0, [r7, 0x30]
+ strh r0, [r7, 0x3A]
+ strh r0, [r7, 0x38]
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r5, 0
+ bl sub_8151534
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r6, 0
+ bl sub_8151624
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8151534
+ strh r0, [r7, 0x34]
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_8151534
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ bl sub_8151624
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8151534
+ strh r0, [r7, 0x36]
+ ldr r0, =sub_8103A00
+ str r0, [r7, 0x1C]
+_08103BD4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103AA4
+
+ thumb_func_start sub_8103BE4
+sub_8103BE4: @ 8103BE4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08103C02
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08103C02:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103BE4
+
+ thumb_func_start sub_8103C0C
+sub_8103C0C: @ 8103C0C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08103CE0
+ ldr r0, =gUnknown_085933B0
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1C
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0xC]
+ ldrb r4, [r5, 0xA]
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r0, 4
+ add r0, r12
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r6, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08103C6C
+ cmp r0, 0x2
+ beq _08103C82
+ b _08103C90
+ .pool
+_08103C6C:
+ ldrb r2, [r6, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ b _08103C90
+_08103C82:
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r6, 0x3]
+_08103C90:
+ ldr r3, =gTasks
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r4, r2, r3
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r6, 0x2E]
+ strh r7, [r6, 0x3C]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xD
+ lsls r0, 1
+ adds r0, r2
+ adds r3, 0x8
+ adds r0, r3
+ mov r2, r12
+ strh r2, [r0]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0x3F
+ negs r0, r0
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9A
+ bl PlaySE12WithPanning
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x2
+ ble _08103CE0
+ ldr r0, =sub_8103BE4
+ str r0, [r4]
+_08103CE0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103C0C
+
+ thumb_func_start sub_8103CF0
+sub_8103CF0: @ 8103CF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ mov r0, sp
+ mov r1, r9
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x2
+ strh r1, [r4]
+ bl IsContest
+ lsls r0, 24
+ mov r10, r4
+ cmp r0, 0
+ beq _08103D5C
+ ldr r1, =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r3, =gBattleAnimArgs
+ ldrh r0, [r3]
+ negs r0, r0
+ strh r0, [r3]
+ ldrh r1, [r3, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _08103D54
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ b _08103DB6
+ .pool
+_08103D54:
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _08103DB6
+_08103D5C:
+ ldr r1, =gBattlerPositions
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0
+ bne _08103DB6
+ ldr r1, =gTasks
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x10]
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2]
+ negs r0, r0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ negs r0, r0
+ strh r0, [r2, 0x2]
+ ldrh r1, [r2, 0x4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08103DB0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _08103DB4
+ .pool
+_08103DB0:
+ movs r0, 0x1
+ orrs r0, r1
+_08103DB4:
+ strh r0, [r2, 0x4]
+_08103DB6:
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ ldr r1, =gTasks
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ adds r6, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ mov r9, r0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08103E20
+ ldr r4, =gBattleAnimTarget
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103E20
+ ldrb r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ mov r3, r10
+ bl SetAverageBattlerPositions
+ b _08103E42
+ .pool
+_08103E20:
+ mov r5, sp
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ strh r0, [r1]
+_08103E42:
+ mov r4, sp
+ ldr r0, =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ mov r2, sp
+ ldr r3, =gBattleAnimArgs
+ ldrh r0, [r3]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r1, 0x1E]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ mov r3, r10
+ ldrh r3, [r3]
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ mov r1, r10
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0
+ cmp r0, r1
+ blt _08103E88
+ subs r0, r2, r1
+ b _08103E8A
+ .pool
+_08103E88:
+ subs r0, r1, r2
+_08103E8A:
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r5, =gBattleAnimArgs
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8151624
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8151534
+ ldr r2, =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r6, r1, r2
+ strh r0, [r6, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ movs r1, 0x80
+ bl sub_8151534
+ strh r0, [r6, 0x14]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r6, 0x16]
+ mov r2, r10
+ ldrh r1, [r2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ mov r4, r9
+ cmp r0, r4
+ blt _08103F08
+ subs r4, r1, r4
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ bl sub_8151624
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8151534
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ strh r1, [r6, 0x18]
+ b _08103F28
+ .pool
+_08103F08:
+ subs r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ bl sub_8151624
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8151534
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r6, 0x18]
+_08103F28:
+ ldr r1, =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0xE]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103F78
+ movs r0, 0x80
+ eors r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _08103FA0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x0000ffc0
+ adds r1, r2, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _08103FB0
+ .pool
+_08103F78:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _08103FA0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =0x0000ffc0
+ adds r1, r3, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _08103FB0
+ .pool
+_08103FA0:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+_08103FB0:
+ strh r0, [r5, 0xC]
+ ldr r0, =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _08103FC8
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+_08103FC8:
+ ldr r0, =sub_8103C0C
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103CF0
+
+ thumb_func_start sub_8103FE8
+sub_8103FE8: @ 8103FE8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r0, =gUnknown_085934A0
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_8104018
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8103FE8
+
+ thumb_func_start sub_8104018
+sub_8104018: @ 8104018
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0810407C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r5, [r4, 0x2E]
+ ldr r1, =gPlttBufferFaded
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ adds r6, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x9
+ lsls r0, r5, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ movs r3, 0x7
+ lsls r1, 1
+ adds r1, r6
+_08104050:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08104050
+ adds r0, r5, 0
+ adds r0, 0xF
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _0810407C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810407C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104018
+
+ thumb_func_start sub_8104088
+sub_8104088: @ 8104088
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _081040CC
+ ldrh r0, [r4, 0x4]
+ negs r0, r0
+ strh r0, [r4, 0x4]
+_081040CC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ ldrh r1, [r5, 0x20]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl ArcTan2Neg
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_80A73E0
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r6, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, =sub_80A7000
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104088
+
+ thumb_func_start sub_810413C
+sub_810413C: @ 810413C
+ ldr r1, =0x0000fff0
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, =sub_8104154
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_810413C
+
+ thumb_func_start sub_8104154
+sub_8104154: @ 8104154
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08104178
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_08104178:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _081041B8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _081041B8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081041B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104154
+
+ thumb_func_start sub_81041C4
+sub_81041C4: @ 81041C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, =sub_810421C
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81041C4
+
+ thumb_func_start sub_810421C
+sub_810421C: @ 810421C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA6
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ movs r2, 0
+ movs r1, 0x7
+ adds r0, r4, 0
+ adds r0, 0x3C
+_08104250:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08104250
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ ands r0, r1
+ ldr r2, =0x0000fff4
+ adds r1, r2, 0
+ subs r1, r0
+ strh r1, [r4, 0x3A]
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA0
+ bl __umodsi3
+ adds r0, 0xA0
+ strh r0, [r4, 0x3C]
+ ldr r0, =sub_81042A0
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810421C
+
+ thumb_func_start sub_81042A0
+sub_81042A0: @ 81042A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 24
+ strh r2, [r4, 0x24]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081042BE
+ negs r0, r2
+ strh r0, [r4, 0x24]
+_081042BE:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _081042FE
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081042FE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081042FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81042A0
+
+ thumb_func_start sub_8104304
+sub_8104304: @ 8104304
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08104322
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+_08104322:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, =sub_80A62EC
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104304
+
+ thumb_func_start sub_8104364
+sub_8104364: @ 8104364
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r7, 0x20
+ ldr r4, =0x0000ffe0
+ movs r0, 0x10
+ mov r8, r0
+ ldr r6, =0x0000fff0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08104390
+ adds r7, r4, 0
+ movs r4, 0x20
+ mov r8, r6
+ movs r6, 0x10
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_08104390:
+ lsls r0, r7, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r8
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =sub_81043F8
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104364
+
+ thumb_func_start sub_81043F8
+sub_81043F8: @ 81043F8
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0810440E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_0810440E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81043F8
+
+ thumb_func_start sub_8104414
+sub_8104414: @ 8104414
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0x20
+ mov r8, r0
+ ldr r4, =0x0000ffe0
+ movs r2, 0x10
+ mov r9, r2
+ ldr r6, =0x0000fff0
+ ldr r7, =gBattleAnimArgs
+ ldrh r1, [r7]
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ beq _08104448
+ mov r8, r4
+ movs r4, 0x20
+ mov r9, r6
+ movs r6, 0x10
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+_08104448:
+ mov r0, r8
+ lsls r1, r0, 16
+ asrs r1, 16
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r9
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ ldrh r0, [r7]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x3A]
+ ldr r0, =sub_81044BC
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104414
+
+ thumb_func_start sub_81044BC
+sub_81044BC: @ 81044BC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _08104520
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08104520
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ ldr r0, =0x0000fffe
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ eors r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x36]
+ strh r2, [r4, 0x34]
+ ldr r0, =sub_8104530
+ str r0, [r4, 0x1C]
+_08104520:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81044BC
+
+ thumb_func_start sub_8104530
+sub_8104530: @ 8104530
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08104548
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_08104548:
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _0810458A
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, =sub_8104594
+ str r0, [r4, 0x1C]
+_0810458A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104530
+
+ thumb_func_start sub_8104594
+sub_8104594: @ 8104594
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _081045A8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081045A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104594
+
+ thumb_func_start sub_81045B0
+sub_81045B0: @ 81045B0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A7270
+ adds r0, r4, 0
+ movs r1, 0xD0
+ movs r2, 0xD0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_80A750C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x50
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_8104614
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81045B0
+
+ thumb_func_start sub_8104614
+sub_8104614: @ 8104614
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08104664
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80A7344
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0x1
+ bl sub_80A750C
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08104664:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104614
+
+ thumb_func_start sub_8104674
+sub_8104674: @ 8104674
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_80A7270
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r0, =sub_81046CC
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104674
+
+ thumb_func_start sub_81046CC
+sub_81046CC: @ 81046CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _081046E6
+ b _081047F6
+_081046E6:
+ lsls r0, 2
+ ldr r1, =_081046F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081046F8:
+ .4byte _08104710
+ .4byte _08104758
+ .4byte _0810478E
+ .4byte _08104794
+ .4byte _081047A4
+ .4byte _081047D8
+_08104710:
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08104720
+ cmp r0, 0x3
+ beq _08104720
+ cmp r0, 0x6
+ bne _08104728
+_08104720:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8104800
+_08104728:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x28
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80A7E6C
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _081047F6
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _081047D0
+_08104758:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081047F6
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x3
+ bne _0810476E
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xA]
+ b _081047F6
+_0810476E:
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80A7E6C
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ b _081047F6
+_0810478E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _081047F6
+_08104794:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _081047F6
+ b _081047CC
+_081047A4:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x50
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_80A7E6C
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _081047F6
+_081047CC:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_081047D0:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _081047F6
+_081047D8:
+ ldrb r0, [r4, 0x8]
+ bl sub_80A7344
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_081047F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81046CC
+
+ thumb_func_start sub_8104800
+sub_8104800: @ 8104800
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _081048DA
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _08104844
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ b _081048DA
+ .pool
+_08104844:
+ ldr r5, =gSprites
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r4, r3, r5
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrb r0, [r7, 0x16]
+ ldrb r1, [r7, 0xE]
+ subs r0, r1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r7, 0xE]
+ adds r0, 0x1
+ strh r0, [r7, 0xE]
+ ldrh r0, [r7, 0x14]
+ adds r0, 0x1
+ strh r0, [r7, 0x14]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ movs r0, 0x6
+ strh r0, [r4, 0x32]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r0, =sub_81048F0
+ str r0, [r3]
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x10
+ ldrsh r2, [r7, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0x1
+ orrs r3, r0
+ strb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+_081048DA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104800
+
+ thumb_func_start sub_81048F0
+sub_81048F0: @ 81048F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0810492E
+ ldr r3, =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_0810492E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81048F0
+
+ thumb_func_start sub_8104938
+sub_8104938: @ 8104938
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08104964
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _0810498A
+ .pool
+_08104964:
+ ldrb r0, [r5]
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ strh r1, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r2, [r4, 0x10]
+ ldr r2, =gUnknown_085935E8
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_8104998
+ str r0, [r4]
+_0810498A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104938
+
+ thumb_func_start sub_8104998
+sub_8104998: @ 8104998
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _08104A00
+ cmp r5, 0x1
+ bgt _081049C0
+ cmp r5, 0
+ beq _081049CA
+ b _08104AA8
+ .pool
+_081049C0:
+ cmp r5, 0x2
+ beq _08104A34
+ cmp r5, 0x3
+ beq _08104A64
+ b _08104AA8
+_081049CA:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ ldrh r2, [r4, 0x10]
+ adds r2, 0x3
+ strh r2, [r4, 0x10]
+ ldr r3, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08104AA8
+ strh r5, [r4, 0xE]
+ b _08104A5C
+ .pool
+_08104A00:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08104AA8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _08104A5C
+ .pool
+_08104A34:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08104A5C
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x2
+ strh r0, [r4, 0x10]
+ b _08104AA8
+ .pool
+_08104A5C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _08104AA8
+_08104A64:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08104AA8
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08104A9C
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _08104AA8
+ .pool
+_08104A9C:
+ ldrb r1, [r4, 0x8]
+ ldr r2, =gUnknown_085935E8
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ strh r5, [r4, 0xA]
+_08104AA8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104998
+
+ thumb_func_start sub_8104AB4
+sub_8104AB4: @ 8104AB4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_08593608
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_8104AF0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104AB4
+
+ thumb_func_start sub_8104AF0
+sub_8104AF0: @ 8104AF0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08104B10
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08104B10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104AF0
+
+ thumb_func_start sub_8104B1C
+sub_8104B1C: @ 8104B1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08104B50
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _08104B6A
+ .pool
+_08104B50:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x20
+ strh r0, [r4, 0x20]
+ ldr r0, =0x0000ffc0
+_08104B6A:
+ strh r0, [r4, 0x30]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r0, 0x34
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A656C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104B1C
+
+ thumb_func_start sub_8104BAC
+sub_8104BAC: @ 8104BAC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08104BC8
+ ldr r0, =gBattleAnimAttacker
+ b _08104BCA
+ .pool
+_08104BC8:
+ ldr r0, =gBattleAnimTarget
+_08104BCA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08104BE4
+ ldr r1, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_08104BE4:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x4]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _08104C16
+ movs r0, 0x8
+ strh r0, [r6, 0x22]
+_08104C16:
+ ldr r1, =move_anim_8074EE0
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67BC
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104BAC
+
+ thumb_func_start sub_8104C38
+sub_8104C38: @ 8104C38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ strh r1, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r2, =gUnknown_085936A4
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_8104C78
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104C38
+
+ thumb_func_start sub_8104C78
+sub_8104C78: @ 8104C78
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08104C98
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08104C98:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104C78
+
+ thumb_func_start sub_8104CA4
+sub_8104CA4: @ 8104CA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ movs r0, 0x7
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x10]
+ ldr r3, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ strh r2, [r4, 0x16]
+ strh r2, [r4, 0x18]
+ movs r0, 0x2
+ strh r0, [r4, 0x1A]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08104D0E
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xC]
+_08104D0E:
+ ldr r0, =sub_8104D28
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104CA4
+
+ thumb_func_start sub_8104D28
+sub_8104D28: @ 8104D28
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x16]
+ adds r0, 0x1
+ strh r0, [r3, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08104D8E
+ movs r0, 0
+ strh r0, [r3, 0x16]
+ ldrh r0, [r3, 0x18]
+ adds r0, 0x1
+ strh r0, [r3, 0x18]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08104D78
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x1A]
+ ldrh r2, [r0, 0x22]
+ adds r1, r2
+ b _08104D8C
+ .pool
+_08104D78:
+ ldr r2, =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+_08104D8C:
+ strh r1, [r0, 0x22]
+_08104D8E:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _08104DDC
+ cmp r0, 0x1
+ bgt _08104DA4
+ cmp r0, 0
+ beq _08104DAA
+ b _08104E6C
+ .pool
+_08104DA4:
+ cmp r0, 0x2
+ beq _08104E0C
+ b _08104E6C
+_08104DAA:
+ ldr r2, =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08104E6C
+ movs r0, 0xE
+ strh r0, [r3, 0xE]
+ movs r0, 0x1
+ strh r0, [r3, 0xA]
+ b _08104E6C
+ .pool
+_08104DDC:
+ ldr r2, =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ ldrh r2, [r3, 0xC]
+ subs r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08104E6C
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ movs r0, 0x2
+ strh r0, [r3, 0xA]
+ b _08104E6C
+ .pool
+_08104E0C:
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r5, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _08104E6C
+ ldrh r0, [r3, 0x10]
+ subs r0, 0x1
+ strh r0, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08104E48
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ strh r1, [r3, 0xA]
+ b _08104E6C
+ .pool
+_08104E48:
+ ldrh r1, [r3, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08104E66
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+ strh r1, [r0, 0x22]
+_08104E66:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08104E6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104D28
+
+ thumb_func_start sub_8104E74
+sub_8104E74: @ 8104E74
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ bl GetBattlerYCoordWithElevation
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ strh r1, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ strh r1, [r5, 0x12]
+ ldrb r0, [r4]
+ bl sub_80A861C
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08104ED4
+ ldr r0, =gBattle_BG1_X
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, =0x04000014
+ b _08104EDC
+ .pool
+_08104ED4:
+ ldr r0, =gBattle_BG2_X
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, =0x04000018
+_08104EDC:
+ str r0, [sp]
+ ldrh r0, [r5, 0x8]
+ adds r1, r0, 0
+ subs r1, 0x40
+ lsls r2, r1, 16
+ lsls r0, 16
+ cmp r2, r0
+ bgt _08104F1A
+ ldr r4, =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_08104EF4:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _08104F0C
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r1]
+_08104F0C:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ ble _08104EF4
+_08104F1A:
+ ldr r0, =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldr r0, =sub_8104F54
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104E74
+
+ thumb_func_start sub_8104F54
+sub_8104F54: @ 8104F54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r3, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08104F78
+ cmp r0, 0x1
+ beq _08104F8E
+ b _0810500E
+ .pool
+_08104F78:
+ ldrh r0, [r3, 0x12]
+ adds r0, 0x1
+ strh r0, [r3, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0810500E
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ b _0810500E
+_08104F8E:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0810500E
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xE]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ subs r0, r1
+ strh r0, [r3, 0x12]
+ movs r2, 0xC
+ ldrsh r1, [r3, r2]
+ cmp r1, 0x1
+ beq _08104FC4
+ cmp r1, 0x1
+ ble _08104FCC
+ cmp r1, 0x2
+ beq _08104FC8
+ cmp r1, 0x3
+ beq _08104FC8
+ b _08104FCC
+_08104FC4:
+ subs r0, 0x2
+ b _08104FCA
+_08104FC8:
+ adds r0, 0x1
+_08104FCA:
+ strh r0, [r3, 0x12]
+_08104FCC:
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _08104FF0
+ ldr r2, =gScanlineEffectRegBuffers
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r2, r1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+_08104FF0:
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _0810500E
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0810500E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8104F54
+
+ thumb_func_start sub_810501C
+sub_810501C: @ 810501C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ bl GetBattlerYCoordWithElevation
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_80A861C
+ adds r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ ldr r0, =sub_8105078
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810501C
+
+ thumb_func_start sub_8105078
+sub_8105078: @ 8105078
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _081050DC
+ cmp r1, 0x1
+ bgt _0810508E
+ cmp r1, 0
+ beq _08105094
+ b _081051BC
+_0810508E:
+ cmp r1, 0x2
+ beq _0810516E
+ b _081051BC
+_08105094:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081050BE
+ strh r1, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_081050BE:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _081051BC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ b _08105166
+_081050DC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08105122
+ ldrh r2, [r4, 0x32]
+ movs r3, 0x32
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _08105122
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _08105122
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+_08105122:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ adds r1, r0, r2
+ strh r1, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0x1F
+ ble _08105136
+ movs r0, 0x40
+ b _08105144
+_08105136:
+ movs r0, 0x20
+ negs r0, r0
+ cmp r2, r0
+ bgt _08105150
+ movs r2, 0x40
+ negs r2, r2
+ adds r0, r2, 0
+_08105144:
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_08105150:
+ ldrh r0, [r4, 0x36]
+ movs r2, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _081051BC
+ strh r2, [r4, 0x30]
+ strh r2, [r4, 0x32]
+_08105166:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081051BC
+_0810516E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810519A
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_0810519A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _081051BC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081051BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105078
+
+ thumb_func_start sub_81051C4
+sub_81051C4: @ 81051C4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r5, 0
+ mov r0, sp
+ strh r5, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r5, [r1]
+ ldr r0, =gBattleAnimArgs
+ movs r3, 0x4
+ ldrsh r2, [r0, r3]
+ adds r7, r1, 0
+ adds r1, r0, 0
+ cmp r2, 0
+ bne _081051F0
+ ldr r0, =gBattleAnimAttacker
+ b _081051F2
+ .pool
+_081051F0:
+ ldr r0, =gBattleAnimTarget
+_081051F2:
+ ldrb r5, [r0]
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x1
+ adds r4, r0, 0
+ eors r4, r1
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810526A
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810526A
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl SetAverageBattlerPositions
+ cmp r4, 0
+ bne _08105230
+ adds r0, r5, 0
+ movs r1, 0
+ b _08105234
+ .pool
+_08105230:
+ adds r0, r5, 0
+ movs r1, 0x2
+_08105234:
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08105260
+ ldr r2, =gBattleAnimArgs
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r4
+ ldrh r0, [r2]
+ subs r1, r0
+ subs r0, r1
+ strh r0, [r2]
+ b _0810526A
+ .pool
+_08105260:
+ ldr r1, =gBattleAnimArgs
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, r4
+ strh r0, [r1]
+_0810526A:
+ ldr r1, =sub_80A77C8
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81051C4
+
+ thumb_func_start sub_8105284
+sub_8105284: @ 8105284
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810529E
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810529E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105284
+
+ thumb_func_start sub_81052A4
+sub_81052A4: @ 81052A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r6, 0
+ mov r0, sp
+ strh r6, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r6, [r1]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _081052DC
+ ldr r0, =gBattleAnimAttacker
+ ldrb r7, [r0]
+ ldr r0, =gBattleAnimTarget
+ b _081052E2
+ .pool
+_081052DC:
+ ldr r0, =gBattleAnimTarget
+ ldrb r7, [r0]
+ ldr r0, =gBattleAnimAttacker
+_081052E2:
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, =gBattleAnimArgs
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _08105308
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _08105310
+ .pool
+_08105308:
+ movs r2, 0x2
+ mov r10, r2
+ movs r3, 0x3
+ str r3, [sp, 0x4]
+_08105310:
+ adds r0, r7, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810536C
+ adds r0, r7, 0
+ mov r1, r10
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r1, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x2
+ mov r4, r8
+ eors r4, r0
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810535C
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ b _081053EA
+ .pool
+_0810535C:
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ add r0, r8
+ b _081053EA
+ .pool
+_0810536C:
+ adds r0, r7, 0
+ mov r1, r10
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gBattleAnimArgs
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _081053E4
+ movs r0, 0x2
+ adds r4, r7, 0
+ eors r4, r0
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081053E4
+ ldr r3, =gSprites
+ ldr r2, =gBattlerSpriteIds
+ adds r0, r7, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r3
+ adds r2, r4, r2
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _081053E0
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+ b _081053FA
+ .pool
+_081053E0:
+ adds r0, r6, 0
+ b _081053F4
+_081053E4:
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r7, r0
+_081053EA:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+_081053F4:
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+_081053FA:
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x4]
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810544C
+ movs r1, 0x2
+ mov r0, r8
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810544C
+ ldrb r1, [r4, 0xC]
+ mov r0, r8
+ mov r2, sp
+ mov r3, sp
+ adds r3, 0x2
+ bl SetAverageBattlerPositions
+ b _0810546C
+ .pool
+_0810544C:
+ mov r4, sp
+ mov r0, r8
+ mov r1, r10
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, sp
+ strh r0, [r2, 0x2]
+_0810546C:
+ mov r0, r8
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08105490
+ mov r3, sp
+ mov r2, sp
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r3]
+ adds r2, r1, 0
+ b _0810549E
+ .pool
+_08105490:
+ mov r3, sp
+ mov r0, sp
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r3]
+_0810549E:
+ ldrh r1, [r2, 0x8]
+ mov r3, sp
+ ldrh r3, [r3, 0x2]
+ adds r1, r3
+ mov r0, sp
+ strh r1, [r0, 0x2]
+ mov r3, r9
+ strh r3, [r5, 0x30]
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x34]
+ strh r6, [r5, 0x22]
+ ldrh r0, [r0]
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x36]
+ ldrh r0, [r2]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ ldr r1, =sub_8105284
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81052A4
+
+ thumb_func_start sub_81054E8
+sub_81054E8: @ 81054E8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =0x000027db
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0810550E
+ lsls r0, 20
+ ldr r1, =0x01010000
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, =gBattleAnimArgs
+ ldrb r2, [r1, 0xA]
+ ldrh r3, [r1, 0x8]
+ movs r1, 0xF
+ bl BlendPalette
+_0810550E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, =sub_80A77C8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81054E8
+
+ thumb_func_start sub_8105538
+sub_8105538: @ 8105538
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _08105554
+ ldr r1, =0x0000ff60
+_08105554:
+ movs r0, 0xE0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, =sub_810557C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105538
+
+ thumb_func_start sub_810557C
+sub_810557C: @ 810557C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ subs r2, 0x20
+ strh r2, [r4, 0x2E]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _081055AC
+ ldr r1, =0x0000ff60
+_081055AC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _081055E0
+ ldrh r2, [r4, 0x22]
+ adds r0, r1, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, =sub_81055F4
+ str r0, [r4, 0x1C]
+_081055E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810557C
+
+ thumb_func_start sub_81055F4
+sub_81055F4: @ 81055F4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _08105612
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, =sub_810561C
+ str r0, [r4, 0x1C]
+_08105612:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81055F4
+
+ thumb_func_start sub_810561C
+sub_810561C: @ 810561C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105682
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08105668
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, =sub_8105694
+ b _08105680
+ .pool
+_08105668:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, =sub_810571C
+_08105680:
+ str r0, [r4, 0x1C]
+_08105682:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810561C
+
+ thumb_func_start sub_8105694
+sub_8105694: @ 8105694
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x2
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _081056CA
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, =sub_81056D4
+ str r0, [r4, 0x1C]
+_081056CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105694
+
+ thumb_func_start sub_81056D4
+sub_81056D4: @ 81056D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _08105712
+ ldrh r1, [r4, 0x2E]
+ subs r1, 0x1
+ strh r1, [r4, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08105712
+ ldr r0, =sub_810571C
+ str r0, [r4, 0x1C]
+_08105712:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81056D4
+
+ thumb_func_start sub_810571C
+sub_810571C: @ 810571C
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08105754
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08105750
+ ldr r0, =sub_810575C
+ b _08105752
+ .pool
+_08105750:
+ ldr r0, =DestroyAnimSprite
+_08105752:
+ str r0, [r3, 0x1C]
+_08105754:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810571C
+
+ thumb_func_start sub_810575C
+sub_810575C: @ 810575C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810575C
+
+ thumb_func_start sub_810577C
+sub_810577C: @ 810577C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, =gUnknown_085938B0
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_81057B8
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810577C
+
+ thumb_func_start sub_81057B8
+sub_81057B8: @ 81057B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _08105802
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08105802:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81057B8
+
+ thumb_func_start sub_8105810
+sub_8105810: @ 8105810
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x20]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08105850
+ ldr r0, =0x0000ffff
+ strh r0, [r4, 0x22]
+ movs r0, 0x8
+ b _08105856
+ .pool
+_08105850:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r0, =0x0000fff8
+_08105856:
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_8105878
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105810
+
+ thumb_func_start sub_8105878
+sub_8105878: @ 8105878
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ cmp r4, 0x1
+ beq _081058CC
+ cmp r4, 0x1
+ bgt _081058A0
+ cmp r4, 0
+ beq _081058AA
+ b _08105992
+ .pool
+_081058A0:
+ cmp r4, 0x2
+ beq _08105948
+ cmp r4, 0x3
+ beq _08105962
+ b _08105992
+_081058AA:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ strh r4, [r3, 0xA]
+ strh r4, [r3, 0xC]
+ strh r4, [r3, 0xE]
+ b _0810595A
+ .pool
+_081058CC:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08105992
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ ands r0, r4
+ lsls r0, 16
+ cmp r0, 0
+ beq _08105904
+ ldr r2, =gSprites
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ adds r1, 0x6
+ b _08105916
+ .pool
+_08105904:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ subs r1, 0x6
+_08105916:
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08105992
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810595A
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x6
+ strh r0, [r1, 0x24]
+ b _0810595A
+ .pool
+_08105948:
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0810595A
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ b _08105992
+_0810595A:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08105992
+_08105962:
+ ldr r2, =gSprites
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x22]
+ ldrh r4, [r0, 0x24]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08105992
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08105992:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105878
+
+ thumb_func_start sub_810599C
+sub_810599C: @ 810599C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r0, 0xE
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_81059E0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810599C
+
+ thumb_func_start sub_81059E0
+sub_81059E0: @ 81059E0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _08105AA6
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _08105AA6
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08105A3C
+ ldr r3, =gSprites
+ movs r6, 0x26
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _08105A52
+ .pool
+_08105A3C:
+ ldr r3, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_08105A52:
+ strb r1, [r0]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x22
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _08105AA6
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x24
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ bge _08105A88
+ strh r2, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ b _08105AA6
+ .pool
+_08105A88:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08105AA6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81059E0
+
+ thumb_func_start sub_8105AAC
+sub_8105AAC: @ 8105AAC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0x4
+ strh r1, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ strh r0, [r4, 0x12]
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ strh r0, [r4, 0x18]
+ strh r0, [r4, 0x22]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_8105B08
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105AAC
+
+ thumb_func_start sub_8105B08
+sub_8105B08: @ 8105B08
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x18
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _08105B74
+ cmp r2, 0x1
+ bgt _08105B30
+ cmp r2, 0
+ beq _08105B36
+ b _08105B90
+ .pool
+_08105B30:
+ cmp r2, 0x2
+ beq _08105B8C
+ b _08105B90
+_08105B36:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08105B90
+ strh r2, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08105B90
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08105B6E
+ strh r2, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+ b _08105B90
+_08105B6E:
+ movs r0, 0x2
+ strh r0, [r4, 0x18]
+ b _08105B90
+_08105B74:
+ movs r1, 0
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08105B90
+ strh r2, [r4, 0x16]
+ strh r1, [r4, 0x18]
+ b _08105B90
+_08105B8C:
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+_08105B90:
+ movs r2, 0x8
+ ldrsh r5, [r4, r2]
+ cmp r5, 0
+ beq _08105B9E
+ cmp r5, 0x1
+ beq _08105C34
+ b _08105C42
+_08105B9E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08105C42
+ strh r5, [r4, 0xA]
+ ldr r0, =gUnknown_085938DC
+ movs r3, 0x24
+ ldrsh r1, [r4, r3]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08105C42
+ ldr r0, =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ strh r6, [r1, 0x2E]
+ movs r0, 0xD
+ strh r0, [r1, 0x30]
+ ldr r2, =gUnknown_085938F4
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x24]
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08105C42
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _08105C42
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08105C42
+ .pool
+_08105C34:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08105C42
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08105C42:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105B08
+
+ thumb_func_start sub_8105C48
+sub_8105C48: @ 8105C48
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r2, 0x1
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+ lsls r1, 2
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08105CAA
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroySprite
+_08105CAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105C48
+
+ thumb_func_start sub_8105CB4
+sub_8105CB4: @ 8105CB4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =0x000027de
+ bl IndexOfSpritePaletteTag
+ mov r1, sp
+ strb r0, [r1]
+ movs r4, 0x1
+ ldr r0, =0x00002710
+ adds r5, r0, 0
+_08105CCC:
+ subs r0, r5, r4
+ lsls r0, 16
+ lsrs r0, 16
+ bl AllocSpritePalette
+ mov r2, sp
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08105CCC
+ movs r0, 0x80
+ lsls r0, 6
+ bl AllocZeroed
+ adds r1, r0, 0
+ ldr r0, =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ ldr r0, =gBattleAnimSpritePalette_206
+ bl LZDecompressWram
+ movs r4, 0
+_08105D00:
+ ldr r5, =gMonSpritesGfxPtr
+ ldr r0, [r5]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r1
+ lsls r1, r4, 6
+ ldr r0, [r0]
+ adds r0, r1
+ mov r2, sp
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ lsls r1, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadPalette
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08105D00
+ ldr r0, [r5]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ ldr r0, [r0]
+ bl Free
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105CB4
+
+ thumb_func_start sub_8105D60
+sub_8105D60: @ 8105D60
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, =gUnknown_08593950
+ movs r4, 0x2
+_08105D6A:
+ ldrh r0, [r5]
+ bl FreeSpritePaletteByTag
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08105D6A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105D60
+
+ thumb_func_start sub_8105D88
+sub_8105D88: @ 8105D88
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ movs r0, 0x1
+ ands r3, r0
+ negs r0, r3
+ orrs r0, r3
+ asrs r0, 31
+ movs r3, 0x20
+ ands r0, r3
+ ldrh r4, [r5, 0x4]
+ lsls r3, r4, 22
+ lsrs r3, 22
+ lsrs r1, 22
+ adds r0, r1
+ adds r3, r0
+ ldr r1, =0x000003ff
+ adds r0, r1, 0
+ ands r3, r0
+ ldr r0, =0xfffffc00
+ ands r0, r4
+ orrs r0, r3
+ strh r0, [r5, 0x4]
+ ldr r0, =gUnknown_08593950
+ lsrs r2, 25
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105D88
+
+ thumb_func_start sub_8105DE8
+sub_8105DE8: @ 8105DE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08105E08
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_08105E08:
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldrb r1, [r4, 0xA]
+ ldrb r2, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8105D88
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105DE8
+
+ thumb_func_start sub_8105E60
+sub_8105E60: @ 8105E60
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08105E7A
+ adds r0, r4, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+_08105E7A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x32]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ subs r2, 0x80
+ strh r2, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bne _08105EAA
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08105EAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105E60
+
+ thumb_func_start sub_8105EB0
+sub_8105EB0: @ 8105EB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl IsContest
+ lsls r0, 24
+ movs r6, 0xF0
+ cmp r0, 0
+ beq _08105EC4
+ movs r6, 0x98
+_08105EC4:
+ movs r5, 0
+ ldr r1, =gBattle_WIN0H
+ strh r6, [r1]
+ ldr r4, =gBattle_WIN0V
+ movs r0, 0xA0
+ strh r0, [r4]
+ ldrh r1, [r1]
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x44
+ bl SetGpuReg
+ ldr r1, =0x00003f1f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0xC8
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ ldr r1, =sub_8105F30
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105EB0
+
+ thumb_func_start sub_8105F30
+sub_8105F30: @ 8105F30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x8]
+ adds r4, r0, 0
+ adds r4, 0xD
+ strh r4, [r3, 0x8]
+ ldrh r0, [r3, 0xA]
+ adds r2, r0, 0
+ subs r2, 0xD
+ strh r2, [r3, 0xA]
+ lsls r1, r4, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _08105F70
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =sub_8105F84
+ str r0, [r3]
+ b _08105F78
+ .pool
+_08105F70:
+ ldr r1, =gBattle_WIN0H
+ lsls r0, r4, 8
+ orrs r2, r0
+ strh r2, [r1]
+_08105F78:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105F30
+
+ thumb_func_start sub_8105F84
+sub_8105F84: @ 8105F84
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08105FD8
+ movs r0, 0x88
+ strh r0, [r1, 0x1E]
+ movs r0, 0x50
+ movs r1, 0x88
+ bl SetGpuReg
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80A75AC
+ ldr r2, =0x00007fff
+ movs r1, 0x10
+ bl BlendPalettes
+ b _0810600C
+ .pool
+_08105FD8:
+ cmp r0, 0x4
+ ble _0810600C
+ ldr r0, =gBattle_WIN0H
+ strh r4, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r4, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0810600C:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8105F84
+
+ thumb_func_start sub_8106020
+sub_8106020: @ 8106020
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _0810607C
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_08593988
+ adds r0, r5, 0
+ bl sub_80A7CFC
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _081060A4
+ .pool
+_0810607C:
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _081060A4
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_081060A4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106020
+
+ thumb_func_start sub_81060B0
+sub_81060B0: @ 81060B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _0810610C
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_08593988
+ adds r0, r5, 0
+ bl sub_80A7CFC
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _08106134
+ .pool
+_0810610C:
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_80A7D34
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08106134
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08106134:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81060B0
+
+ thumb_func_start sub_8106140
+sub_8106140: @ 8106140
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ movs r0, 0x5F
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =sub_810618C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106140
+
+ thumb_func_start sub_810618C
+sub_810618C: @ 810618C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _081061B6
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _081061BC
+_081061B6:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081061BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810618C
+
+ thumb_func_start sub_81061C4
+sub_81061C4: @ 81061C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081061E8
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _08106244
+ .pool
+_081061E8:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _08106236
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08106236:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _08106244
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106244:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81061C4
+
+ thumb_func_start sub_810624C
+sub_810624C: @ 810624C
+ push {lr}
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ movs r1, 0xA0
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x30]
+ ldr r1, =WaitAnimForDuration
+ str r1, [r0, 0x1C]
+ ldr r1, =sub_810627C
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810624C
+
+ thumb_func_start sub_810627C
+sub_810627C: @ 810627C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ lsrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x48
+ bgt _081062E2
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ cmp r5, 0x40
+ bgt _081062E2
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081062E2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810627C
+
+ thumb_func_start sub_81062E8
+sub_81062E8: @ 81062E8
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x3
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810632A
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_0810632A:
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C232E0
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r1, =gUnknown_08C23D78
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ ldr r0, =gUnknown_08C23D50
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81063A8
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81062E8
+
+ thumb_func_start sub_81063A8
+sub_81063A8: @ 81063A8
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _081063C6
+ b _081064F0
+_081063C6:
+ lsls r0, 2
+ ldr r1, =_081063D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081063D8:
+ .4byte _081063EC
+ .4byte _08106430
+ .4byte _08106452
+ .4byte _08106496
+ .4byte _081064BC
+_081063EC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _081064F0
+ strh r5, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081064F0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _081064F0
+_08106430:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8D
+ bne _081064F0
+ movs r0, 0x10
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _081064F0
+_08106452:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _081064F0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _081064F0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _081064F0
+_08106496:
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_80A6C68
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x20]
+ adds r1, 0x1
+ strh r1, [r0, 0x20]
+ b _081064F0
+ .pool
+_081064BC:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _081064D0
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_081064D0:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_081064F0:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81063A8
+
+ thumb_func_start sub_81064F8
+sub_81064F8: @ 81064F8
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810653A
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_0810653A:
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80A6B30
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08106578
+ ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceContest
+ b _0810658A
+ .pool
+_08106578:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810659C
+ ldr r1, =gBattleAnimBackgroundTilemap_ScaryFacePlayer
+_0810658A:
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ b _081065A6
+ .pool
+_0810659C:
+ ldr r1, =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+_081065A6:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C249F8
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gUnknown_08C249D0
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81065EC
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81064F8
+
+ thumb_func_start sub_81065EC
+sub_81065EC: @ 81065EC
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0810660A
+ b _08106730
+_0810660A:
+ lsls r0, 2
+ ldr r1, =_0810661C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0810661C:
+ .4byte _08106630
+ .4byte _08106674
+ .4byte _08106696
+ .4byte _081066DA
+ .4byte _081066FC
+_08106630:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08106730
+ strh r5, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xE
+ bne _08106730
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _08106730
+_08106674:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _08106730
+ movs r0, 0xE
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _08106730
+_08106696:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08106730
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _08106730
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _08106730
+_081066DA:
+ mov r0, sp
+ bl sub_80A6B30
+ movs r0, 0x1
+ bl sub_80A6C68
+ movs r0, 0x2
+ bl sub_80A6C68
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_081066FC:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08106710
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_08106710:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08106730:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81065EC
+
+ thumb_func_start sub_810673C
+sub_810673C: @ 810673C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3C]
+ ldr r1, =sub_810679C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810673C
+
+ thumb_func_start sub_810679C
+sub_810679C: @ 810679C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _081067B2
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ b _081067B6
+_081067B2:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+_081067B6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ beq _08106828
+ cmp r2, 0x1
+ bne _08106858
+ ldr r1, =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, =0xffffff00
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08106858
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ b _08106868
+ .pool
+_08106828:
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _08106858
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+_08106858:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08106868
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106868:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810679C
+
+ thumb_func_start sub_8106878
+sub_8106878: @ 8106878
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldr r0, =sub_81068CC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106878
+
+ thumb_func_start sub_81068CC
+sub_81068CC: @ 81068CC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _0810690A
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _0810690A
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _08106910
+_0810690A:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_08106910:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81068CC
+
+ thumb_func_start sub_8106914
+sub_8106914: @ 8106914
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08106940
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_08106940:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106914
+
+ thumb_func_start sub_8106944
+sub_8106944: @ 8106944
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x32]
+ ldr r0, =sub_8106914
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106944
+
+ thumb_func_start sub_810699C
+sub_810699C: @ 810699C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081069B2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_081069B2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810699C
+
+ thumb_func_start sub_81069B8
+sub_81069B8: @ 81069B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =sub_810699C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81069B8
+
+ thumb_func_start sub_81069D0
+sub_81069D0: @ 81069D0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081069EE
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_081069EE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r5, r0, 1
+ movs r0, 0xFF
+ ands r5, r0
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Sin
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4F
+ bgt _08106A32
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Cos
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ lsls r0, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x26]
+_08106A32:
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x5A
+ ble _08106A50
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+_08106A50:
+ cmp r2, 0x64
+ ble _08106A5A
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106A5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81069D0
+
+ thumb_func_start sub_8106A64
+sub_8106A64: @ 8106A64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _08106ABA
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08106ABA:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ ble _08106AC8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106AC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106A64
+
+ thumb_func_start sub_8106AD0
+sub_8106AD0: @ 8106AD0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08106AF4
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _08106B48
+ .pool
+_08106AF4:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ movs r5, 0
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ adds r2, r0, 0
+ strh r2, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x46
+ ble _08106B48
+ ldr r0, =sub_8106A64
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r0, r2, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x26]
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ bl __umodsi3
+ strh r0, [r4, 0x34]
+_08106B48:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106AD0
+
+ thumb_func_start sub_8106B54
+sub_8106B54: @ 8106B54
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08106B8E
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_08106B8E:
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08106BA4
+ adds r0, 0xFF
+_08106BA4:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08106BB6
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08106BB6:
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _08106BC4
+ adds r0, 0x3
+_08106BC4:
+ asrs r0, 2
+ movs r1, 0x1E
+ subs r1, r0
+ adds r0, r2, 0
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _08106BE0
+ adds r0, 0x7
+_08106BE0:
+ asrs r0, 3
+ movs r1, 0xA
+ subs r1, r0
+ adds r0, r2, 0
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ ble _08106C04
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08106C04
+ ldr r0, =0x0000ffff
+ strh r0, [r4, 0x32]
+_08106C04:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08106C18
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _08106C18
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_08106C18:
+ ldrh r0, [r4, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x34]
+ subs r0, 0x9
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x46
+ bls _08106C5C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _08106C6A
+ .pool
+_08106C5C:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08106C6A:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5A
+ ble _08106C78
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106C78:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106B54
+
+ thumb_func_start sub_8106C80
+sub_8106C80: @ 8106C80
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08106CB4
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08106CC8
+ .pool
+_08106CB4:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08106CC8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106CC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106C80
+
+ thumb_func_start sub_8106CD0
+sub_8106CD0: @ 8106CD0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08106CEC
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+ b _08106D50
+ .pool
+_08106CEC:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08106CFC
+ ldr r4, =gBattleAnimAttacker
+ b _08106CFE
+ .pool
+_08106CFC:
+ ldr r4, =gBattleAnimTarget
+_08106CFE:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08106D34
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x20
+ b _08106D38
+ .pool
+_08106D34:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+_08106D38:
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r0, =sub_8106D5C
+ str r0, [r5, 0x1C]
+_08106D50:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106CD0
+
+ thumb_func_start sub_8106D5C
+sub_8106D5C: @ 8106D5C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08106D8C
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08106D86
+ ldrh r1, [r2, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _08106D8C
+_08106D86:
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_08106D8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106D5C
+
+ thumb_func_start sub_8106D90
+sub_8106D90: @ 8106D90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gBattleAnimArgs
+ ldrb r0, [r0]
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ ldr r2, =gUnknown_08593B98
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_8106DD4
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106D90
+
+ thumb_func_start sub_8106DD4
+sub_8106DD4: @ 8106DD4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _08106DF4
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_08106DF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106DD4
+
+ thumb_func_start sub_8106E00
+sub_8106E00: @ 8106E00
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08106E1C
+ ldr r0, =gBattleAnimAttacker
+ b _08106E1E
+ .pool
+_08106E1C:
+ ldr r0, =gBattleAnimTarget
+_08106E1E:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08106E38
+ ldr r1, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_08106E38:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r7, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r3, [r7, 0x2]
+ adds r0, r3
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x2E]
+ ldrh r1, [r5, 0x20]
+ lsls r1, 3
+ strh r1, [r5, 0x30]
+ lsls r0, 3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 3
+ cmp r0, 0
+ bge _08106E78
+ adds r0, 0x7
+_08106E78:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _08106E88
+ adds r0, 0x7
+_08106E88:
+ asrs r0, 3
+ strh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, =sub_8106EC8
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106E00
+
+ thumb_func_start sub_8106EC8
+sub_8106EC8: @ 8106EC8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r3, [r2, 0x32]
+ adds r1, r3
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _08106EFC
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_08106EFC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106EC8
+
+ thumb_func_start sub_8106F00
+sub_8106F00: @ 8106F00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08106F22
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_08106F22:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08106F40
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_80A750C
+_08106F40:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, 0x50
+ cmp r1, r0
+ bne _08106F54
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08106F54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106F00
+
+ thumb_func_start sub_8106F60
+sub_8106F60: @ 8106F60
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08106F8E
+ movs r5, 0x78
+ strh r5, [r6, 0x20]
+ ldr r4, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ subs r0, 0xF
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4, 0x2]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x38]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x34]
+_08106F8E:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r6, 0x30]
+ movs r2, 0x2E
+ ldrsh r0, [r6, r2]
+ lsls r4, r0, 1
+ adds r4, r0
+ ldrh r0, [r6, 0x34]
+ adds r4, r0
+ movs r2, 0xFF
+ ldrh r0, [r6, 0x3A]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3A]
+ ands r4, r2
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r6, 0x24]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl Sin
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r1, 0x4
+ bl Cos
+ ldrh r2, [r6, 0x30]
+ adds r4, r2
+ adds r0, r4
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x38
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _0810700A
+ ldr r0, =sub_8107018
+ str r0, [r6, 0x1C]
+ strh r5, [r6, 0x2E]
+ adds r0, r6, 0
+ bl oamt_add_pos2_onto_pos1
+ movs r0, 0x5
+ strh r0, [r6, 0x32]
+ strh r5, [r6, 0x36]
+ strh r5, [r6, 0x34]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0810700A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8106F60
+
+ thumb_func_start sub_8107018
+sub_8107018: @ 8107018
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _08107032
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, =sub_810703C
+ str r0, [r1, 0x1C]
+_08107032:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107018
+
+ thumb_func_start sub_810703C
+sub_810703C: @ 810703C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x26]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ ble _08107066
+ lsls r0, r1, 16
+ cmp r0, 0
+ ble _08107066
+ ldrh r0, [r4, 0x36]
+ subs r1, r0, 0x5
+ strh r1, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+_08107066:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _08107098
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08107098:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _081070A6
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081070A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810703C
+
+ thumb_func_start sub_81070AC
+sub_81070AC: @ 81070AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081070F8
+ ldr r4, =gBattleAnimAttacker
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081070F8
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl SetAverageBattlerPositions
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _08107118
+ .pool
+_081070F8:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+_08107118:
+ movs r0, 0xD
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x48
+ strh r0, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81070AC
+
+ thumb_func_start AnimTask_IsFuryCutterHitRight
+AnimTask_IsFuryCutterHitRight: @ 8107144
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gBattleAnimArgs
+ ldr r1, =gAnimDisableStructPtr
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x10]
+ movs r1, 0x1
+ ands r1, r2
+ strh r1, [r3, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_IsFuryCutterHitRight
+
+ thumb_func_start AnimTask_GetFuryCutterHitCount
+AnimTask_GetFuryCutterHitCount: @ 8107168
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gBattleAnimArgs
+ ldr r1, =gAnimDisableStructPtr
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x10]
+ strh r1, [r2, 0xE]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_GetFuryCutterHitCount
+
+ .align 2, 0
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
index 7ebc2f256..c47ca5d76 100644
--- a/asm/battle_frontier_1.s
+++ b/asm/battle_frontier_1.s
@@ -7,180 +7,6 @@
- thumb_func_start sub_8195C7C
-sub_8195C7C: @ 8195C7C
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- ldr r4, [r4]
- lsls r1, r7, 1
- lsrs r5, r0, 22
- adds r1, r5
- ldr r3, =0x00000dc8
- adds r6, r4, r3
- adds r3, r6, r1
- ldrh r2, [r3]
- ldr r0, =0x0000270e
- cmp r2, r0
- bhi _08195CCA
- adds r2, 0x1
- strh r2, [r3]
- movs r3, 0xDD
- lsls r3, 4
- adds r0, r4, r3
- adds r1, r0, r1
- adds r0, r5, 0
- ldrh r3, [r1]
- cmp r7, r3
- bls _08195CC0
- adds r0, 0x2
-_08195CC0:
- adds r0, r6, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _08195CCA
- strh r2, [r1]
-_08195CCA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195C7C
-
- thumb_func_start sub_8195CE4
-sub_8195CE4: @ 8195CE4
- push {r4,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_81A4C30
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195CE4
-
- thumb_func_start sub_8195D28
-sub_8195D28: @ 8195D28
- push {r4,r5,lr}
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- ldr r3, =0x00000ca9
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- lsrs r0, 14
- adds r1, r0
- ldr r0, =0x00000dc8
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- cmp r0, 0x29
- bls _08195D88
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_0860DE84
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, =0x00000dc6
- adds r4, r1
- b _08195DA6
- .pool
-_08195D88:
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_0860DE78
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, =0x00000dc6
- adds r4, r3
-_08195DA6:
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195D28
-
- thumb_func_start sub_8195DB8
-sub_8195DB8: @ 8195DB8
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000dc6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _08195E00
- ldr r0, [r4]
- ldr r1, =0x00000dc6
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000dc6
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gSpecialVar_Result
- strh r5, [r0]
- b _08195E06
- .pool
-_08195E00:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
-_08195E06:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195DB8
-
thumb_func_start sub_8195E10
sub_8195E10: @ 8195E10
push {lr}
@@ -1180,7 +1006,7 @@ sub_81965D8: @ 81965D8
negs r0, r0
ands r0, r1
strb r0, [r2]
- bl GetPlayerTextSpeed
+ bl GetPlayerTextSpeedDelay
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2163,7 +1989,7 @@ sub_8196D74: @ 8196D74
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
adds r0, 0xA
- bl ReadUnalignedWord
+ bl GetTrainerId
adds r6, r0, 0
ldr r0, =0x0000ffff
ands r6, r0
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
deleted file mode 100644
index 3f6591927..000000000
--- a/asm/battle_frontier_2.s
+++ /dev/null
@@ -1,17602 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
- thumb_func_start sub_81A1780
-sub_81A1780: @ 81A1780
- push {lr}
- ldr r1, =gUnknown_08611C18
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1780
-
- thumb_func_start sub_81A17A0
-sub_81A17A0: @ 81A17A0
- push {lr}
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0xFF
- bl VarSet
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _081A1822
- lsls r0, 2
- ldr r1, =_081A17D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A17D0:
- .4byte _081A1822
- .4byte _081A17E4
- .4byte _081A1810
- .4byte _081A17EC
- .4byte _081A17E8
-_081A17E4:
- movs r0, 0
- b _081A17EE
-_081A17E8:
- movs r0, 0
- b _081A17EE
-_081A17EC:
- movs r0, 0x1
-_081A17EE:
- bl sub_813A878
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000ca8
- adds r1, r2
- ldrb r1, [r1]
- bl VarSet
- b _081A1822
- .pool
-_081A1810:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000ca8
- adds r1, r2
- ldrb r1, [r1]
- bl VarSet
-_081A1822:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A17A0
-
- thumb_func_start sub_81A1830
-sub_81A1830: @ 81A1830
- push {r4-r6,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_81A3B30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bne _081A184C
- movs r5, 0x1
-_081A184C:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _081A1856
- b _081A1956
-_081A1856:
- lsls r0, 2
- ldr r1, =_081A186C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A186C:
- .4byte _081A188C
- .4byte _081A18A8
- .4byte _081A18C8
- .4byte _081A18E4
- .4byte _081A1956
- .4byte _081A1900
- .4byte _081A1918
- .4byte _081A1938
-_081A188C:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca8
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18A8:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18C8:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18E4:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- b _081A1926
- .pool
-_081A1900:
- ldr r2, =gSpecialVar_Result
- ldr r1, =gBattleOutcome
- ldrb r0, [r1]
- strh r0, [r2]
- movs r0, 0
- strb r0, [r1]
- b _081A1956
- .pool
-_081A1918:
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 28
-_081A1926:
- lsrs r0, 31
- strh r0, [r1]
- b _081A1956
- .pool
-_081A1938:
- ldr r4, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xD0
- lsls r0, 4
- adds r2, r0
- ldr r3, =gUnknown_08611BFC
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- adds r0, r3
- ldrh r1, [r2]
- ldrh r0, [r0]
- ands r0, r1
- strh r0, [r4]
-_081A1956:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1830
-
- thumb_func_start sub_81A1968
-sub_81A1968: @ 81A1968
- push {r4,r5,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_81A3B30
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bne _081A1984
- movs r4, 0x1
-_081A1984:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _081A198E
- b _081A1AC4
-_081A198E:
- lsls r0, 2
- ldr r1, =_081A19A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A19A4:
- .4byte _081A19C4
- .4byte _081A19E0
- .4byte _081A1A0C
- .4byte _081A1A28
- .4byte _081A1A50
- .4byte _081A1AC4
- .4byte _081A1A7C
- .4byte _081A1AA8
-_081A19C4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- b _081A1AC4
- .pool
-_081A19E0:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r1
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _081A1AC4
- .pool
-_081A1A0C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000cb2
- adds r0, r2
- strh r1, [r0]
- b _081A1AC4
- .pool
-_081A1A28:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- b _081A1A94
- .pool
-_081A1A50:
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000caa
- ldr r3, =gUnknown_0203CEF8
-_081A1A58:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r1, r4
- adds r1, r0
- adds r0, r2, r3
- ldrb r0, [r0]
- strh r0, [r1]
- adds r2, 0x1
- cmp r2, 0x3
- ble _081A1A58
- b _081A1AC4
- .pool
-_081A1A7C:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000ca9
- adds r3, r2
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
-_081A1A94:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _081A1AC4
- .pool
-_081A1AA8:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xD0
- lsls r0, 4
- adds r2, r0
- ldr r3, =gUnknown_08611BFC
- lsls r1, r4, 1
- lsls r0, r5, 2
- adds r1, r0
- adds r1, r3
- ldrh r0, [r2]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2]
-_081A1AC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1968
-
- thumb_func_start sub_81A1AD4
-sub_81A1AD4: @ 81A1AD4
- push {r4-r7,lr}
- bl sub_81B8558
- movs r3, 0
- ldr r4, =gSpecialVar_0x8005
- ldrh r0, [r4]
- cmp r3, r0
- bge _081A1B00
- ldr r7, =gUnknown_0203CEF8
- ldr r6, =gSaveBlock2Ptr
- ldr r5, =0x00000caa
-_081A1AEA:
- adds r2, r3, r7
- ldr r0, [r6]
- lsls r1, r3, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- ldrh r0, [r4]
- cmp r3, r0
- blt _081A1AEA
-_081A1B00:
- bl ReducePlayerPartyToThree
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1AD4
-
- thumb_func_start sub_81A1B1C
-sub_81A1B1C: @ 81A1B1C
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_81A1B1C
-
- thumb_func_start sub_81A1B28
-sub_81A1B28: @ 81A1B28
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1B28
-
- thumb_func_start sub_81A1B38
-sub_81A1B38: @ 81A1B38
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0x64
-_081A1B3E:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _081A1B76
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r1]
- subs r1, 0x1
- muls r1, r5
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- ldr r2, =gPlayerParty
- adds r1, r4, 0
- muls r1, r5
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_081A1B76:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A1B3E
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1B38
-
- thumb_func_start sub_81A1B98
-sub_81A1B98: @ 81A1B98
- push {lr}
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- adds r2, r0, 0
- cmp r1, 0x3
- bls _081A1BA8
- movs r0, 0
- strh r0, [r2]
-_081A1BA8:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bhi _081A1C1E
- lsls r0, 2
- ldr r1, =_081A1BC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1BC8:
- .4byte _081A1BE8
- .4byte _081A1BF0
- .4byte _081A1BF8
- .4byte _081A1C0E
- .4byte _081A1C06
- .4byte _081A1C00
- .4byte _081A1C14
- .4byte _081A1C1A
-_081A1BE8:
- ldrb r0, [r2]
- bl sub_81A1EA8
- b _081A1C1E
-_081A1BF0:
- ldrb r0, [r2]
- bl sub_81A2134
- b _081A1C1E
-_081A1BF8:
- ldrb r0, [r2]
- bl sub_81A2460
- b _081A1C1E
-_081A1C00:
- bl sub_81A2698
- b _081A1C1E
-_081A1C06:
- ldrb r0, [r2]
- bl sub_81A2C94
- b _081A1C1E
-_081A1C0E:
- bl sub_81A2968
- b _081A1C1E
-_081A1C14:
- bl sub_81A2F38
- b _081A1C1E
-_081A1C1A:
- bl sub_81A2FF8
-_081A1C1E:
- pop {r0}
- bx r0
- thumb_func_end sub_81A1B98
-
- thumb_func_start sub_81A1C24
-sub_81A1C24: @ 81A1C24
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000cdc
- adds r1, r2
- ldr r1, [r1]
- ands r1, r0
- cmp r1, 0
- bne _081A1C44
- movs r0, 0
- b _081A1C46
- .pool
-_081A1C44:
- movs r0, 0x1
-_081A1C46:
- pop {r1}
- bx r1
- thumb_func_end sub_81A1C24
-
- thumb_func_start sub_81A1C4C
-sub_81A1C4C: @ 81A1C4C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xE0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r0, r5, 3
- adds r5, r0, 0x1
- ldr r0, =gRecordsWindowId
- ldrb r0, [r0]
- lsls r3, 24
- lsrs r3, 24
- lsls r1, r5, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1C4C
-
- thumb_func_start sub_81A1C90
-sub_81A1C90: @ 81A1C90
- push {r4,lr}
- sub sp, 0x34
- adds r2, r0, 0
- ldr r3, =gRecordsWindowId
- movs r1, 0xAE
- mov r0, sp
- adds r0, 0x2F
-_081A1C9E:
- strb r1, [r0]
- subs r0, 0x1
- add r4, sp, 0xC
- cmp r0, r4
- bge _081A1C9E
- add r1, sp, 0x30
- movs r0, 0xFF
- strb r0, [r1]
- lsls r0, r2, 3
- adds r2, r0, 0x1
- ldrb r0, [r3]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x4
- bl AddTextPrinterParameterized
- add sp, 0x34
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1C90
-
- thumb_func_start sub_81A1CD8
-sub_81A1CD8: @ 81A1CD8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A1D24
- adds r6, r0, 0
-_081A1D24:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_WinStreak
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1CD8
-
- thumb_func_start sub_81A1D78
-sub_81A1D78: @ 81A1D78
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gSaveBlock2Ptr
- ldr r4, [r4]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xCF
- lsls r0, 4
- adds r4, r0
- adds r4, r1
- ldrh r1, [r4]
- ldr r0, =gText_Record
- str r5, [sp]
- bl sub_81A1CD8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1D78
-
- thumb_func_start sub_81A1DBC
-sub_81A1DBC: @ 81A1DBC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xCE
- lsls r0, 4
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A1DDE
- adds r0, r1, 0
-_081A1DDE:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A1DBC
-
- thumb_func_start sub_81A1DEC
-sub_81A1DEC: @ 81A1DEC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r7, r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A1DBC
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x1
- beq _081A1E38
- cmp r5, 0x1
- ble _081A1E2C
- cmp r5, 0x2
- beq _081A1E48
- cmp r5, 0x3
- beq _081A1E58
-_081A1E2C:
- cmp r6, 0
- beq _081A1E34
- movs r0, 0x2
- b _081A1E66
-_081A1E34:
- movs r0, 0x1
- b _081A1E66
-_081A1E38:
- cmp r6, 0
- beq _081A1E42
- movs r0, 0x80
- lsls r0, 8
- b _081A1E66
-_081A1E42:
- movs r0, 0x80
- lsls r0, 7
- b _081A1E66
-_081A1E48:
- cmp r6, 0
- beq _081A1E52
- movs r0, 0x80
- lsls r0, 10
- b _081A1E66
-_081A1E52:
- movs r0, 0x80
- lsls r0, 9
- b _081A1E66
-_081A1E58:
- cmp r6, 0
- beq _081A1E62
- movs r0, 0x80
- lsls r0, 12
- b _081A1E66
-_081A1E62:
- movs r0, 0x80
- lsls r0, 11
-_081A1E66:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A1E88
- ldr r0, =gText_Current
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A1CD8
- b _081A1E96
- .pool
-_081A1E88:
- ldr r0, =gText_Prev
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A1CD8
-_081A1E96:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1DEC
-
- thumb_func_start sub_81A1EA8
-sub_81A1EA8: @ 81A1EA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A1EF0
- ldr r0, =gStringVar4
- ldr r1, =gText_SingleBattleRoomResults
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1EF0:
- cmp r7, 0x1
- bne _081A1F08
- ldr r0, =gStringVar4
- ldr r1, =gText_DoubleBattleRoomResults
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1F08:
- cmp r7, 0x2
- bne _081A1F20
- ldr r0, =gStringVar4
- ldr r1, =gText_MultiBattleRoomResults
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1F20:
- ldr r0, =gStringVar4
- ldr r1, =gText_LinkMultiBattleRoomResults
- bl StringExpandPlaceholders
-_081A1F28:
- ldr r0, =gStringVar4
- movs r1, 0x2
- bl sub_81A1C4C
- ldr r6, =gRecordsWindowId
- ldrb r0, [r6]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- mov r8, r1
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- ldrb r0, [r6]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- mov r9, r1
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- mov r0, r8
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1DEC
- movs r0, 0x41
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1D78
- mov r1, r9
- str r1, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1DEC
- movs r0, 0x71
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1D78
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1EA8
-
- thumb_func_start sub_81A1FD8
-sub_81A1FD8: @ 81A1FD8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000d0c
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A1FF8
- adds r0, r1, 0
-_081A1FF8:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A1FD8
-
- thumb_func_start sub_81A2008
-sub_81A2008: @ 81A2008
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r12, r0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r5, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl AddTextPrinterParameterized
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r7, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2008
-
- thumb_func_start sub_81A2094
-sub_81A2094: @ 81A2094
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, [sp, 0x24]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A1FD8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r5, 0
- beq _081A20CC
- cmp r5, 0x1
- beq _081A20D8
-_081A20CC:
- cmp r6, 0
- beq _081A20D4
- movs r0, 0x8
- b _081A20E6
-_081A20D4:
- movs r0, 0x4
- b _081A20E6
-_081A20D8:
- cmp r6, 0
- beq _081A20E2
- movs r0, 0x80
- lsls r0, 14
- b _081A20E6
-_081A20E2:
- movs r0, 0x80
- lsls r0, 13
-_081A20E6:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A210C
- ldr r0, =gText_Current
- ldr r1, =gText_ClearStreak
- str r7, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- mov r3, r9
- bl sub_81A2008
- b _081A211C
- .pool
-_081A210C:
- ldr r0, =gText_Prev
- ldr r1, =gText_ClearStreak
- str r7, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- mov r3, r9
- bl sub_81A2008
-_081A211C:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2094
-
- thumb_func_start sub_81A2134
-sub_81A2134: @ 81A2134
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A217C
- ldr r0, =gStringVar4
- ldr r1, =gText_SingleBattleTourneyResults
- bl StringExpandPlaceholders
- b _081A2184
- .pool
-_081A217C:
- ldr r0, =gStringVar4
- ldr r1, =gText_DoubleBattleTourneyResults
- bl StringExpandPlaceholders
-_081A2184:
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81A1C4C
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- ldr r2, =gText_Lv502
- movs r6, 0x21
- str r6, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x40
- movs r3, 0x79
- bl sub_81A2094
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- lsls r5, r7, 2
- ldr r1, =0x00000d14
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x79
- mov r9, r0
- str r0, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- ldr r0, =gText_Record
- ldr r1, =gText_ClearStreak
- movs r3, 0x40
- bl sub_81A2008
- ldr r1, =gText_Total
- mov r10, r1
- ldr r0, =gText_Championships
- mov r8, r0
- ldr r0, [r4]
- ldr r1, =0x00000d1c
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- movs r6, 0x70
- str r6, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- movs r3, 0x40
- bl sub_81A2008
- movs r0, 0x61
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x40
- movs r3, 0x79
- bl sub_81A2094
- ldr r0, [r4]
- ldr r1, =0x00000d16
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- mov r0, r9
- str r0, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- ldr r0, =gText_Record
- ldr r1, =gText_ClearStreak
- movs r3, 0x40
- bl sub_81A2008
- ldr r0, [r4]
- ldr r1, =0x00000d1e
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- str r6, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- movs r3, 0x40
- bl sub_81A2008
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- bl PutWindowTilemap
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2134
-
- thumb_func_start sub_81A22B8
-sub_81A22B8: @ 81A22B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2304
- adds r6, r0, 0
-_081A2304:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_WinStreak
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A22B8
-
- thumb_func_start sub_81A2358
-sub_81A2358: @ 81A2358
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gSaveBlock2Ptr
- ldr r4, [r4]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xDD
- lsls r0, 4
- adds r4, r0
- adds r4, r1
- ldrh r1, [r4]
- ldr r0, =gText_Record
- str r5, [sp]
- bl sub_81A22B8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2358
-
- thumb_func_start sub_81A239C
-sub_81A239C: @ 81A239C
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000dc8
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A23BC
- adds r0, r1, 0
-_081A23BC:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A239C
-
- thumb_func_start sub_81A23CC
-sub_81A23CC: @ 81A23CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r7, r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A239C
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0
- beq _081A2404
- cmp r5, 0x1
- beq _081A2410
-_081A2404:
- cmp r6, 0
- beq _081A240C
- movs r0, 0x20
- b _081A241E
-_081A240C:
- movs r0, 0x10
- b _081A241E
-_081A2410:
- cmp r6, 0
- beq _081A241A
- movs r0, 0x80
- lsls r0, 16
- b _081A241E
-_081A241A:
- movs r0, 0x80
- lsls r0, 15
-_081A241E:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2440
- ldr r0, =gText_Current
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A22B8
- b _081A244E
- .pool
-_081A2440:
- ldr r0, =gText_Prev
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A22B8
-_081A244E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A23CC
-
- thumb_func_start sub_81A2460
-sub_81A2460: @ 81A2460
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A24A8
- ldr r0, =gStringVar4
- ldr r1, =gText_SingleBattleHallResults
- bl StringExpandPlaceholders
- b _081A24B0
- .pool
-_081A24A8:
- ldr r0, =gStringVar4
- ldr r1, =gText_DoubleBattleHallResults
- bl StringExpandPlaceholders
-_081A24B0:
- ldr r0, =gStringVar4
- movs r1, 0x2
- bl sub_81A1C4C
- ldr r6, =gRecordsWindowId
- ldrb r0, [r6]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- mov r8, r1
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- ldrb r0, [r6]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- mov r9, r1
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- mov r0, r8
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A23CC
- movs r0, 0x41
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A2358
- mov r1, r9
- str r1, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A23CC
- movs r0, 0x71
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A2358
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2460
-
- thumb_func_start sub_81A2560
-sub_81A2560: @ 81A2560
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A257A
- adds r0, r1, 0
-_081A257A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2560
-
- thumb_func_start sub_81A258C
-sub_81A258C: @ 81A258C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r12, r0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r5, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl AddTextPrinterParameterized
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r7, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl AddTextPrinterParameterized
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A258C
-
- thumb_func_start sub_81A2618
-sub_81A2618: @ 81A2618
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A2560
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r4, 0
- beq _081A2648
- movs r0, 0x80
- lsls r0, 4
- b _081A264C
-_081A2648:
- movs r0, 0x80
- lsls r0, 3
-_081A264C:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2674
- ldr r0, =gText_Current
- ldr r1, =gText_RoomsCleared
- str r5, [sp]
- str r6, [sp, 0x4]
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2008
- b _081A2684
- .pool
-_081A2674:
- ldr r0, =gText_Prev
- ldr r1, =gText_RoomsCleared
- str r5, [sp]
- str r6, [sp, 0x4]
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2008
-_081A2684:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2618
-
- thumb_func_start sub_81A2698
-sub_81A2698: @ 81A2698
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r6, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r6]
- ldrb r0, [r6]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r6]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gStringVar4
- ldr r1, =gText_BattleChoiceResults
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81A1C4C
- ldrb r0, [r6]
- ldr r2, =gText_Lv502
- movs r1, 0x21
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldrb r0, [r6]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x72
- movs r3, 0x21
- bl sub_81A2618
- ldr r0, =gText_Record
- mov r10, r0
- ldr r7, =gText_RoomsCleared
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000e08
- adds r0, r1
- ldrh r2, [r0]
- movs r4, 0x72
- str r4, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- mov r0, r10
- adds r1, r7, 0
- movs r3, 0x40
- bl sub_81A258C
- ldr r0, =gText_Total
- mov r8, r0
- ldr r1, =gText_TimesCleared
- mov r9, r1
- ldr r0, [r5]
- ldr r1, =0x00000e0c
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- movs r3, 0x40
- bl sub_81A258C
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x72
- movs r3, 0x61
- bl sub_81A2618
- ldr r0, [r5]
- ldr r1, =0x00000e0a
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- mov r0, r10
- adds r1, r7, 0
- movs r3, 0x40
- bl sub_81A258C
- ldr r0, [r5]
- ldr r1, =0x00000e0e
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- movs r3, 0x40
- bl sub_81A258C
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2698
-
- thumb_func_start sub_81A27E8
-sub_81A27E8: @ 81A27E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2834
- adds r6, r0, 0
-_081A2834:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_KOsInARow
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A27E8
-
- thumb_func_start sub_81A2888
-sub_81A2888: @ 81A2888
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000dde
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gText_Record
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81A27E8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2888
-
- thumb_func_start sub_81A28CC
-sub_81A28CC: @ 81A28CC
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000dda
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A28E6
- adds r0, r1, 0
-_081A28E6:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A28CC
-
- thumb_func_start sub_81A28F8
-sub_81A28F8: @ 81A28F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A28CC
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- beq _081A2926
- movs r0, 0x80
- b _081A2928
-_081A2926:
- movs r0, 0x40
-_081A2928:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2948
- ldr r0, =gText_Current
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A27E8
- b _081A2956
- .pool
-_081A2948:
- ldr r0, =gText_Prev
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A27E8
-_081A2956:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A28F8
-
- thumb_func_start sub_81A2968
-sub_81A2968: @ 81A2968
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0xA
- bl sub_81A1C90
- ldr r4, =gStringVar4
- ldr r1, =gText_SetKOTourneyResults
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81A1C4C
- ldrb r0, [r5]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- ldrb r0, [r5]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x31
- bl sub_81A28F8
- movs r0, 0
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x41
- bl sub_81A2888
- movs r0, 0x1
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x61
- bl sub_81A28F8
- movs r0, 0x1
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x71
- bl sub_81A2888
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2968
-
- thumb_func_start sub_81A2A28
-sub_81A2A28: @ 81A2A28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r12, r0
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- ldr r0, [sp, 0x40]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r6, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r7, r0
- bls _081A2A80
- adds r7, r0, 0
-_081A2A80:
- ldr r5, =gStringVar1
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_WinStreak
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0x10]
- bl AddTextPrinterParameterized
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_TimesVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0x14]
- bl AddTextPrinterParameterized
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2A28
-
- thumb_func_start sub_81A2B04
-sub_81A2B04: @ 81A2B04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r6, r2, 0
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsls r1, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r7, =0x00000dea
- adds r0, r2, r7
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r0
- ldr r0, =0x00000dfa
- adds r2, r0
- adds r2, r1
- ldrh r2, [r2]
- ldr r0, =gText_Record
- str r3, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- mov r1, r8
- adds r3, r6, 0
- bl sub_81A2A28
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2B04
-
- thumb_func_start sub_81A2B70
-sub_81A2B70: @ 81A2B70
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000de2
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2B90
- adds r0, r1, 0
-_081A2B90:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2B70
-
- thumb_func_start sub_81A2BA0
-sub_81A2BA0: @ 81A2BA0
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000df2
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2BC0
- adds r0, r1, 0
-_081A2BC0:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2BA0
-
- thumb_func_start sub_81A2BD0
-sub_81A2BD0: @ 81A2BD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- lsls r5, 24
- lsrs r5, 24
- mov r10, r5
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_81A2B70
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_81A2BA0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r6, 0
- beq _081A2C20
- cmp r6, 0x1
- beq _081A2C30
-_081A2C20:
- cmp r7, 0
- beq _081A2C2A
- movs r0, 0x80
- lsls r0, 2
- b _081A2C3E
-_081A2C2A:
- movs r0, 0x80
- lsls r0, 1
- b _081A2C3E
-_081A2C30:
- cmp r7, 0
- beq _081A2C3A
- movs r0, 0x80
- lsls r0, 18
- b _081A2C3E
-_081A2C3A:
- movs r0, 0x80
- lsls r0, 17
-_081A2C3E:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2C68
- ldr r0, =gText_Current
- mov r1, r8
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r1, r5, 0
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl sub_81A2A28
- b _081A2C80
- .pool
-_081A2C68:
- ldr r0, =gText_Prev
- mov r1, r8
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r1, r5, 0
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl sub_81A2A28
-_081A2C80:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2BD0
-
- thumb_func_start sub_81A2C94
-sub_81A2C94: @ 81A2C94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A2CD8
- ldr r0, =gStringVar4
- ldr r1, =gText_BattleSwapSingleResults
- bl StringExpandPlaceholders
- b _081A2CE0
- .pool
-_081A2CD8:
- ldr r0, =gStringVar4
- ldr r1, =gText_BattleSwapDoubleResults
- bl StringExpandPlaceholders
-_081A2CE0:
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81A1C4C
- ldr r0, =gRecordsWindowId
- mov r8, r0
- ldrb r0, [r0]
- ldr r2, =gText_Lv502
- movs r6, 0x21
- str r6, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, =gText_RentalSwap
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x98
- bl AddTextPrinterParameterized
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- movs r4, 0x9E
- str r4, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2BD0
- str r4, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2B04
- str r4, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2BD0
- str r4, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2B04
- mov r1, r8
- ldrb r0, [r1]
- bl PutWindowTilemap
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2C94
-
- thumb_func_start sub_81A2DB4
-sub_81A2DB4: @ 81A2DB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gRecordsWindowId
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl AddTextPrinterParameterized
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2E00
- adds r6, r0, 0
-_081A2E00:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_FloorsCleared
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl AddTextPrinterParameterized
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2DB4
-
- thumb_func_start sub_81A2E54
-sub_81A2E54: @ 81A2E54
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e1e
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gText_Record
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81A2DB4
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2E54
-
- thumb_func_start sub_81A2E98
-sub_81A2E98: @ 81A2E98
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2EB2
- adds r0, r1, 0
-_081A2EB2:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2E98
-
- thumb_func_start sub_81A2EC4
-sub_81A2EC4: @ 81A2EC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A2E98
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- beq _081A2EF4
- movs r0, 0x80
- lsls r0, 6
- b _081A2EF8
-_081A2EF4:
- movs r0, 0x80
- lsls r0, 5
-_081A2EF8:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2F18
- ldr r0, =gText_Current
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2DB4
- b _081A2F26
- .pool
-_081A2F18:
- ldr r0, =gText_Prev
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2DB4
-_081A2F26:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2EC4
-
- thumb_func_start sub_81A2F38
-sub_81A2F38: @ 81A2F38
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, =gRecordsWindowId
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gStringVar4
- ldr r1, =gText_BattleQuestResults
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81A1C4C
- ldrb r0, [r5]
- ldr r2, =gText_Lv502
- movs r1, 0x31
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldrb r0, [r5]
- ldr r2, =gText_OpenLv
- movs r1, 0x61
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0xA
- bl sub_81A1C90
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x31
- bl sub_81A2EC4
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x41
- bl sub_81A2E54
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x61
- bl sub_81A2EC4
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x71
- bl sub_81A2E54
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2F38
-
- thumb_func_start sub_81A2FF8
-sub_81A2FF8: @ 81A2FF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C7C
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gStringVar4
- mov r9, r0
- ldr r1, =gText_LinkContestResults
- bl StringExpandPlaceholders
- movs r0, 0x1
- mov r1, r9
- movs r2, 0xD0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x1
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- mov r2, r9
- bl AddTextPrinterParameterized
- ldr r7, =gText_1st
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x32
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x19
- mov r8, r1
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldr r7, =gText_2nd
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x58
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldr r7, =gText_3rd
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x7E
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r1, r8
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldr r7, =gText_4th
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0xA4
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Cool
- movs r1, 0x29
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Beauty
- movs r1, 0x39
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Cute
- movs r1, 0x49
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Smart
- movs r1, 0x59
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- ldr r2, =gText_Tough
- movs r1, 0x69
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl AddTextPrinterParameterized
- movs r1, 0
-_081A314A:
- movs r5, 0
- adds r0, r1, 0x1
- mov r8, r0
- lsls r0, r1, 28
- movs r2, 0xA4
- lsls r2, 22
- adds r0, r2
- lsrs r7, r0, 24
- lsls r4, r1, 3
-_081A315C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000624
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r6, =gRecordsWindowId
- ldrb r0, [r6]
- movs r1, 0x26
- adds r3, r5, 0
- muls r3, r1
- adds r3, 0x40
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r9
- bl AddTextPrinterParameterized
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _081A315C
- mov r1, r8
- cmp r1, 0x4
- ble _081A314A
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2FF8
-
- thumb_func_start sub_81A31FC
-sub_81A31FC: @ 81A31FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0x6
- bls _081A3232
- b _081A35CE
-_081A3232:
- lsls r0, r4, 2
- ldr r1, =_081A3250
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3250:
- .4byte _081A326C
- .4byte _081A33A8
- .4byte _081A3414
- .4byte _081A347C
- .4byte _081A34CC
- .4byte _081A354C
- .4byte _081A3594
-_081A326C:
- ldr r2, =gSaveBlock2Ptr
- mov r9, r2
- ldr r0, [r2]
- lsls r3, r7, 1
- mov r10, r3
- mov r2, r8
- lsls r1, r2, 2
- add r1, r10
- str r1, [sp, 0x20]
- movs r3, 0xCE
- lsls r3, 4
- adds r1, r0, r3
- ldr r2, [sp, 0x20]
- adds r1, r2
- adds r3, 0x10
- adds r0, r3
- adds r0, r2
- ldrh r1, [r1]
- ldrh r2, [r0]
- cmp r1, r2
- bhi _081A3298
- b _081A35CE
-_081A3298:
- strh r1, [r0]
- mov r3, r8
- cmp r3, 0x3
- bne _081A32F2
- ldr r6, =gBattleScripting
- adds r6, 0x25
- ldrb r0, [r6]
- movs r4, 0x1
- eors r0, r4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r5, =gLinkPlayers + 8
- adds r1, r5
- mov r0, sp
- bl StringCopy
- mov r0, sp
- bl StripExtCtrlCodes
- lsls r1, r7, 3
- ldr r0, =0x00000ee1
- adds r1, r0
- mov r2, r9
- ldr r0, [r2]
- adds r0, r1
- mov r1, sp
- bl StringCopy
- ldrb r0, [r6]
- eors r4, r0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r5, 0x4
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r7, 2
- ldr r1, =0x00000ef1
- adds r2, r1
- mov r3, r9
- ldr r1, [r3]
- adds r1, r2
- bl WriteUnalignedWord
-_081A32F2:
- mov r7, r9
- ldr r0, [r7]
- movs r1, 0xCE
- lsls r1, 4
- adds r0, r1
- ldr r2, [sp, 0x20]
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _081A3308
- b _081A35CE
-_081A3308:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A3314
- b _081A35CE
-_081A3314:
- mov r3, r8
- cmp r3, 0x1
- beq _081A335A
- cmp r3, 0x1
- bgt _081A3338
- cmp r3, 0
- beq _081A3344
- b _081A35CE
- .pool
-_081A3338:
- mov r7, r8
- cmp r7, 0x2
- beq _081A3374
- cmp r7, 0x3
- beq _081A338E
- b _081A35CE
-_081A3344:
- mov r1, r9
- ldr r0, [r1]
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80EE8C8
- b _081A35CE
-_081A335A:
- mov r3, r9
- ldr r0, [r3]
- mov r1, r10
- adds r1, 0x4
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r7
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x2
- bl sub_80EE8C8
- b _081A35CE
-_081A3374:
- mov r1, r9
- ldr r0, [r1]
- mov r1, r10
- adds r1, 0x8
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x3
- bl sub_80EE8C8
- b _081A35CE
-_081A338E:
- mov r3, r9
- ldr r0, [r3]
- mov r1, r10
- adds r1, 0xC
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r7
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x4
- bl sub_80EE8C8
- b _081A35CE
-_081A33A8:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r7, 1
- mov r2, r8
- lsls r1, r2, 2
- adds r4, r7, r1
- ldr r5, =0x00000d0c
- adds r1, r0, r5
- adds r1, r4
- ldr r3, =0x00000d14
- adds r0, r3
- adds r0, r4
- ldrh r2, [r1]
- ldrh r3, [r0]
- cmp r2, r3
- bhi _081A33CA
- b _081A35CE
-_081A33CA:
- strh r2, [r0]
- ldrh r0, [r1]
- cmp r0, 0x1
- bhi _081A33D4
- b _081A35CE
-_081A33D4:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A33E0
- b _081A35CE
-_081A33E0:
- mov r0, r8
- cmp r0, 0
- bne _081A3404
- ldr r0, [r6]
- adds r0, r5
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x5
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A3404:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x6
- bl sub_80EE8C8
- b _081A35CE
-_081A3414:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r7, 1
- mov r2, r8
- lsls r1, r2, 2
- adds r4, r7, r1
- ldr r5, =0x00000dc8
- adds r1, r0, r5
- adds r1, r4
- movs r3, 0xDD
- lsls r3, 4
- adds r0, r3
- adds r0, r4
- ldrh r2, [r1]
- ldrh r3, [r0]
- cmp r2, r3
- bhi _081A3438
- b _081A35CE
-_081A3438:
- strh r2, [r0]
- ldrh r0, [r1]
- cmp r0, 0x1
- bhi _081A3442
- b _081A35CE
-_081A3442:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A344E
- b _081A35CE
-_081A344E:
- mov r0, r8
- cmp r0, 0
- bne _081A346C
- ldr r0, [r6]
- adds r0, r5
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0xB
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A346C:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xC
- bl sub_80EE8C8
- b _081A35CE
-_081A347C:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000dda
- adds r0, r1, r5
- adds r0, r4
- ldr r2, =0x00000dde
- adds r1, r2
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bhi _081A3498
- b _081A35CE
-_081A3498:
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _081A34A2
- b _081A35CE
-_081A34A2:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A34AE
- b _081A35CE
-_081A34AE:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xA
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A34CC:
- ldr r6, =gSaveBlock2Ptr
- ldr r2, [r6]
- lsls r7, 1
- mov r9, r7
- mov r7, r8
- lsls r0, r7, 2
- mov r1, r9
- adds r4, r1, r0
- ldr r5, =0x00000de2
- adds r0, r2, r5
- adds r3, r0, r4
- ldr r7, =0x00000dea
- adds r0, r2, r7
- adds r0, r4
- ldrh r1, [r3]
- ldrh r7, [r0]
- cmp r1, r7
- bls _081A35CE
- strh r1, [r0]
- ldr r0, =0x00000dfa
- adds r1, r2, r0
- adds r1, r4
- ldr r7, =0x00000df2
- adds r0, r2, r7
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- ldrh r0, [r3]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- mov r0, r8
- cmp r0, 0
- bne _081A353C
- ldr r0, [r6]
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x7
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A353C:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x8
- bl sub_80EE8C8
- b _081A35CE
-_081A354C:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000e04
- adds r0, r1, r5
- adds r0, r4
- ldr r2, =0x00000e08
- adds r1, r2
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bls _081A35CE
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x9
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A3594:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000e1a
- adds r0, r1, r5
- adds r0, r4
- ldr r7, =0x00000e1e
- adds r1, r7
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bls _081A35CE
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xD
- bl sub_80EE8C8
-_081A35CE:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A31FC
-
- thumb_func_start sub_81A35EC
-sub_81A35EC: @ 81A35EC
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- ldr r4, =gSpecialVar_Result
- bl sub_81A3610
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A35EC
-
- thumb_func_start sub_81A3610
-sub_81A3610: @ 81A3610
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_81A39C4
- lsls r0, 16
- ldr r1, =gUnknown_08611550
- mov r9, r1
- lsls r7, r6, 2
- adds r1, 0x3
- adds r1, r7, r1
- lsrs r0, 16
- ldrb r1, [r1]
- adds r5, r0, r1
- cmp r4, 0
- beq _081A365C
- movs r0, 0
- b _081A36C2
- .pool
-_081A365C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- blt _081A3680
- cmp r1, 0x1
- bgt _081A3680
- adds r0, r1, r7
- add r0, r9
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A36BC
- adds r1, 0x1
- mov r8, r1
- b _081A36BC
-_081A3680:
- ldr r1, =gUnknown_08611550
- lsls r2, r6, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A3694
- movs r0, 0x3
- b _081A36BA
- .pool
-_081A3694:
- adds r0, r1, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A36A4
- movs r1, 0x4
- mov r8, r1
- b _081A36BC
-_081A36A4:
- cmp r5, r0
- ble _081A36BC
- subs r0, r5, r0
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A36BC
- movs r0, 0x4
-_081A36BA:
- mov r8, r0
-_081A36BC:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
-_081A36C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A3610
-
- thumb_func_start CopyFrontierTrainerText
-CopyFrontierTrainerText: @ 81A36D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r0, 0x1
- beq _081A3766
- cmp r0, 0x1
- bgt _081A36EA
- cmp r0, 0
- beq _081A36F2
- b _081A38F8
-_081A36EA:
- cmp r2, 0x2
- bne _081A36F0
- b _081A3818
-_081A36F0:
- b _081A38F8
-_081A36F2:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A370C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- b _081A38C4
- .pool
-_081A370C:
- ldr r0, =0x000003fe
- cmp r3, r0
- beq _081A3786
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A3738
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A3738:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A3758
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2b8
- b _081A38C4
- .pool
-_081A3758:
- adds r0, r3, 0
- adds r0, 0x70
- lsls r0, 24
- lsrs r0, 24
- bl CopyFriendsApprenticeChallengeText
- b _081A38F8
-_081A3766:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A3780
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c08
- b _081A38C4
- .pool
-_081A3780:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081A3794
-_081A3786:
- movs r0, 0
- bl sub_81A51A8
- b _081A38F8
- .pool
-_081A3794:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A37B8
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x18
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A37B8:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A37EC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _081A387C
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2c4
- b _081A38C4
- .pool
-_081A37EC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _081A387C
- ldr r1, =gSaveBlock2Ptr
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xffff96c4
- b _081A38C4
- .pool
-_081A3818:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A3830
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c14
- b _081A38C4
- .pool
-_081A3830:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081A3844
- movs r0, 0x1
- bl sub_81A51A8
- b _081A38F8
- .pool
-_081A3844:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A3868
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x24
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A3868:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A38A8
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A3890
-_081A387C:
- bl sub_81864E0
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A3890:
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2d0
- b _081A38C4
- .pool
-_081A38A8:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A38D4
- bl sub_81864A8
- lsls r0, 24
- lsrs r3, r0, 24
- movs r0, 0x58
- muls r0, r3
- ldr r1, =gApprentices+0x4A
-_081A38C4:
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A38D4:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r3, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r3, r0, 27
- movs r0, 0x58
- muls r0, r3
- ldr r1, =gApprentices+0x4A
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
-_081A38F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end CopyFrontierTrainerText
-
- thumb_func_start sub_81A3908
-sub_81A3908: @ 81A3908
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cdc
- adds r1, r2
- movs r2, 0
- str r2, [r1]
- movs r4, 0
- mov r9, r0
- mov r8, r9
- movs r6, 0
-_081A3926:
- movs r5, 0
- lsls r7, r4, 2
- mov r10, r7
- adds r0, r4, 0x1
- mov r12, r0
-_081A3930:
- mov r1, r8
- ldr r2, [r1]
- lsls r3, r5, 1
- mov r7, r10
- adds r1, r3, r7
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- cmp r4, 0x1
- bgt _081A3960
- adds r7, 0x2C
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- adds r7, 0xBC
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- adds r7, 0x1A
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
-_081A3960:
- cmp r4, 0
- bne _081A3980
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x00000dda
- adds r1, r0, r2
- adds r1, r3
- strh r4, [r1]
- ldr r7, =0x00000e04
- adds r1, r0, r7
- adds r1, r3
- strh r4, [r1]
- ldr r1, =0x00000e1a
- adds r0, r1
- adds r0, r3
- strh r4, [r0]
-_081A3980:
- adds r5, 0x1
- cmp r5, 0x1
- ble _081A3930
- mov r4, r12
- cmp r4, 0x3
- ble _081A3926
- mov r2, r9
- ldr r0, [r2]
- ldr r7, =0x00000ca8
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, 0
- beq _081A399E
- movs r0, 0x1
- strb r0, [r1]
-_081A399E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3908
-
- thumb_func_start sub_81A39C4
-sub_81A39C4: @ 81A39C4
- push {r4,r5,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _081A3AC4
- lsls r0, 2
- ldr r1, =_081A3A0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3A0C:
- .4byte _081A3A28
- .4byte _081A3A3C
- .4byte _081A3A54
- .4byte _081A3A6C
- .4byte _081A3A80
- .4byte _081A3A98
- .4byte _081A3AAC
-_081A3A28:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- b _081A3AB4
- .pool
-_081A3A3C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- b _081A3AB4
- .pool
-_081A3A54:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- b _081A3AB4
- .pool
-_081A3A6C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- b _081A3AB4
- .pool
-_081A3A80:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A3AB4
- .pool
-_081A3A98:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- b _081A3AB4
- .pool
-_081A3AAC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e1a
-_081A3AB4:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- b _081A3AC6
- .pool
-_081A3AC4:
- movs r0, 0
-_081A3AC6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A39C4
-
- thumb_func_start sub_81A3ACC
-sub_81A3ACC: @ 81A3ACC
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A3AD8:
- ldr r0, [r5]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r2, 0x1
- cmp r2, 0x13
- ble _081A3AD8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3ACC
-
- thumb_func_start sub_81A3B00
-sub_81A3B00: @ 81A3B00
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081A3B20
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _081A3B24
- .pool
-_081A3B20:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
-_081A3B24:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3B00
-
- thumb_func_start sub_81A3B30
-sub_81A3B30: @ 81A3B30
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 23
- ldr r1, =0x000008c4
- adds r0, r4, r1
- bl FlagGet
- adds r5, r0, 0
- ldr r0, =0x000008c5
- adds r4, r0
- adds r0, r4, 0
- bl FlagGet
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A3B30
-
- thumb_func_start sub_81A3B64
-sub_81A3B64: @ 81A3B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r7, 0x6
- bhi _081A3C78
- lsls r0, r7, 2
- ldr r1, =_081A3BB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3BB4:
- .4byte _081A3BD0
- .4byte _081A3BE4
- .4byte _081A3C00
- .4byte _081A3C18
- .4byte _081A3C2C
- .4byte _081A3C44
- .4byte _081A3C60
-_081A3BD0:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- b _081A3C68
- .pool
-_081A3BE4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- adds r0, r2
- adds r0, r1
- ldrh r5, [r0]
- b _081A3C78
- .pool
-_081A3C00:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- b _081A3C68
- .pool
-_081A3C18:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- b _081A3C68
- .pool
-_081A3C2C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A3C68
- .pool
-_081A3C44:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xE
- b _081A3C70
- .pool
-_081A3C60:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e1a
-_081A3C68:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x7
-_081A3C70:
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
-_081A3C78:
- cmp r5, 0
- beq _081A3C7E
- subs r5, 0x1
-_081A3C7E:
- cmp r5, 0x1D
- bls _081A3C84
- movs r5, 0x1D
-_081A3C84:
- ldr r2, =gUnknown_086118B4
- lsls r1, r7, 2
- adds r1, r6, r1
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r1, r0
- adds r7, r1, r2
- ldrb r5, [r7]
- ldr r0, =gTrainerBattleOpponent_A
- mov r9, r0
- ldrh r0, [r0]
- ldr r1, =0x000003fe
- mov r8, r1
- cmp r0, r8
- bne _081A3CA6
- adds r5, 0xA
-_081A3CA6:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- ldr r4, =0x00000eb8
- adds r1, r4
- ldrh r0, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r2, r0, r4
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A3CCE
- strh r1, [r2]
-_081A3CCE:
- ldr r0, [r6]
- ldr r4, =0x00000eba
- adds r0, r4
- ldrh r5, [r0]
- ldrb r0, [r7]
- adds r5, r0
- bl sub_80EED60
- mov r2, r9
- ldrh r0, [r2]
- cmp r0, r8
- bne _081A3CEE
- adds r5, 0xA
- movs r0, 0xA
- bl sub_80EED60
-_081A3CEE:
- ldr r0, =0x0000ffff
- cmp r5, r0
- ble _081A3CF6
- adds r5, r0, 0
-_081A3CF6:
- ldr r0, [r6]
- adds r0, r4
- strh r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3B64
-
- thumb_func_start sub_81A3D30
-sub_81A3D30: @ 81A3D30
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- ldr r4, =gSpecialVar_Result
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3D30
-
- thumb_func_start sub_81A3D58
-sub_81A3D58: @ 81A3D58
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- cmp r0, 0
- bne _081A3D88
- lsls r0, r4, 17
- ldr r1, =0x8C4 << 16
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- b _081A3D94
- .pool
-_081A3D88:
- lsls r0, r4, 17
- ldr r1, =0x8C5 << 16
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
-_081A3D94:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3D58
-
- thumb_func_start sub_81A3DA0
-sub_81A3DA0: @ 81A3DA0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, [r0]
- ands r2, r1
- cmp r2, 0
- beq _081A3DC4
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- b _081A3DC8
- .pool
-_081A3DC4:
- ldr r0, =gSpecialVar_Result
- strh r2, [r0]
-_081A3DC8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3DA0
-
- thumb_func_start sub_81A3DD0
-sub_81A3DD0: @ 81A3DD0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _081A3ED6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081A3EA0
- lsls r0, 2
- ldr r1, =_081A3E0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3E0C:
- .4byte _081A3E38
- .4byte _081A3E68
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
-_081A3E38:
- cmp r5, r4
- bne _081A3E50
- ldr r0, =gStringVar1
- ldr r1, =gText_SpaceAndSpace
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3E50:
- cmp r5, r4
- ble _081A3EC8
- ldr r0, =gStringVar1
- ldr r1, =gText_CommaSpace
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3E68:
- cmp r4, r5
- bne _081A3E80
- ldr r0, =gStringVar1
- ldr r1, =gText_SpaceAndSpace
- bl StringAppend
- b _081A3E88
- .pool
-_081A3E80:
- ldr r0, =gStringVar1
- ldr r1, =gText_CommaSpace
- bl StringAppend
-_081A3E88:
- ldr r0, =gStringVar1
- ldr r1, =gText_NewLine
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3EA0:
- cmp r4, r5
- bne _081A3EB8
- ldr r0, =gStringVar1
- ldr r1, =gText_SpaceAndSpace
- bl StringAppend
- b _081A3EC0
- .pool
-_081A3EB8:
- ldr r0, =gStringVar1
- ldr r1, =gText_CommaSpace
- bl StringAppend
-_081A3EC0:
- ldr r0, =gStringVar1
- ldr r1, =gText_ScrollTextUp
- bl StringAppend
-_081A3EC8:
- ldr r0, =gStringVar1
- movs r1, 0xB
- muls r1, r6
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringAppend
-_081A3ED6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A3DD0
-
- thumb_func_start sub_81A3EF0
-sub_81A3EF0: @ 81A3EF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081A3FBE
- cmp r4, 0
- beq _081A3FBE
- ldr r0, =gUnknown_08611C9A
- ldrh r1, [r0]
- ldr r5, =0x0000ffff
- adds r3, r0, 0
- cmp r1, r5
- beq _081A3F54
- cmp r1, r4
- beq _081A3F48
- adds r1, r3, 0
-_081A3F3A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _081A3F54
- cmp r0, r4
- bne _081A3F3A
-_081A3F48:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081A3FBE
-_081A3F54:
- mov r0, r12
- cmp r0, 0
- bne _081A3F60
- mov r1, r8
- cmp r1, 0x32
- bhi _081A3FBE
-_081A3F60:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _081A3F80
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _081A3F80
- adds r5, r3, 0
-_081A3F72:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081A3F80
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A3F72
-_081A3F80:
- cmp r2, r3
- bne _081A3FBE
- cmp r6, 0
- beq _081A3FAA
- movs r2, 0
- cmp r2, r3
- bge _081A3FA6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081A3FA6
- adds r5, r3, 0
-_081A3F98:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081A3FA6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081A3F98
-_081A3FA6:
- cmp r2, r3
- bne _081A3FBE
-_081A3FAA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081A3FBE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3EF0
-
- thumb_func_start sub_81A3FD4
-sub_81A3FD4: @ 81A3FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- movs r0, 0
- str r0, [sp, 0x2C]
- add r4, sp, 0x28
- strb r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- mov r10, r4
- cmp r0, 0x1
- beq _081A4016
- cmp r0, 0x1
- bgt _081A4008
- cmp r0, 0
- beq _081A4010
- b _081A402A
- .pool
-_081A4008:
- cmp r0, 0x3
- bgt _081A402A
- movs r0, 0x2
- b _081A4028
-_081A4010:
- movs r1, 0x3
- str r1, [sp, 0x2C]
- b _081A402A
-_081A4016:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- movs r1, 0x3
- str r1, [sp, 0x2C]
- cmp r0, 0
- bne _081A402A
- movs r0, 0x4
-_081A4028:
- str r0, [sp, 0x2C]
-_081A402A:
- movs r1, 0
- mov r9, r1
- b _081A4040
- .pool
-_081A4034:
- mov r1, r10
- ldrb r0, [r1]
- ldr r1, [sp, 0x2C]
- cmp r0, r1
- blt _081A4040
- b _081A41E0
-_081A4040:
- mov r5, r9
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x30]
-_081A404E:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bne _081A40C8
- cmp r7, 0
- bne _081A40E4
- ldr r0, =gSpecialVar_Result
- ldrb r3, [r0]
- str r6, [sp]
- add r1, sp, 0x10
- str r1, [sp, 0x4]
- add r0, sp, 0x1C
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- mov r0, r8
- movs r1, 0
- adds r2, r4, 0
- bl sub_81A3EF0
- b _081A40E4
- .pool
-_081A40C8:
- ldr r0, =gSpecialVar_Result
- ldrb r3, [r0]
- str r6, [sp]
- add r1, sp, 0x10
- str r1, [sp, 0x4]
- add r0, sp, 0x1C
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r4, 0
- bl sub_81A3EF0
-_081A40E4:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A40EC
- movs r5, 0
-_081A40EC:
- cmp r5, r9
- bne _081A404E
- ldr r1, [sp, 0x30]
- mov r9, r1
- cmp r1, 0x5
- ble _081A4034
- mov r1, r10
- ldrb r0, [r1]
- ldr r1, [sp, 0x2C]
- cmp r0, r1
- bge _081A41E0
- movs r6, 0
- ldr r0, =gUnknown_08611C9A
- ldrh r2, [r0]
- ldr r1, =0x0000ffff
- mov r8, r0
- cmp r2, r1
- beq _081A4134
- mov r4, r8
-_081A4112:
- adds r0, r2, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _081A412A
- adds r6, 0x1
-_081A412A:
- adds r4, 0x2
- ldrh r2, [r4]
- ldr r0, =0x0000ffff
- cmp r2, r0
- bne _081A4112
-_081A4134:
- ldr r1, =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _081A416A
- mov r5, r10
- adds r7, r1, 0
- mov r4, r8
-_081A4156:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl sub_81A3DD0
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _081A4156
-_081A416A:
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- bne _081A41A4
- ldr r4, =gStringVar1
- ldr r1, =gText_Space2
- adds r0, r4, 0
- bl StringAppend
- ldr r1, =gText_Are
- adds r0, r4, 0
- bl StringAppend
- b _081A4202
- .pool
-_081A41A4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081A41C0
- ldr r0, =gStringVar1
- ldr r1, =gText_ScrollTextUp
- bl StringAppend
- b _081A41C8
- .pool
-_081A41C0:
- ldr r0, =gStringVar1
- ldr r1, =gText_Space2
- bl StringAppend
-_081A41C8:
- ldr r0, =gStringVar1
- ldr r1, =gText_Are2
- bl StringAppend
- b _081A4202
- .pool
-_081A41E0:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0
- strh r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_Result
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r1
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081A4202:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3FD4
-
- thumb_func_start sub_81A4224
-sub_81A4224: @ 81A4224
- push {lr}
- bl ValidateEReaderTrainer
- pop {r0}
- bx r0
- thumb_func_end sub_81A4224
-
- thumb_func_start sub_81A4230
-sub_81A4230: @ 81A4230
- push {r4-r7,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _081A425A
- b _081A4394
-_081A425A:
- lsls r0, 2
- ldr r1, =_081A4278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A4278:
- .4byte _081A4294
- .4byte _081A42DC
- .4byte _081A431C
- .4byte _081A4338
- .4byte _081A434C
- .4byte _081A4368
- .4byte _081A437C
-_081A4294:
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- lsls r4, 1
- lsls r1, r5, 2
- adds r1, r4, r1
- movs r6, 0xCE
- lsls r6, 4
- adds r3, r0, r6
- adds r2, r3, r1
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _081A4394
- adds r0, r1, 0x1
- strh r0, [r2]
- cmp r5, 0
- bne _081A4394
- adds r0, r3, r4
- ldrh r1, [r0]
- movs r0, 0x20
- bl SetGameStat
- ldr r1, [r7]
- adds r0, r1, r6
- adds r0, r4
- ldrh r0, [r0]
- ldr r2, =0x00000d02
- adds r1, r2
- b _081A4392
- .pool
-_081A42DC:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r2, r4, 1
- lsls r1, r5, 2
- adds r1, r2, r1
- ldr r3, =0x00000d0c
- adds r0, r3
- adds r3, r0, r1
- ldrh r0, [r3]
- ldr r2, =0x0000270e
- cmp r0, r2
- bhi _081A42F8
- adds r0, 0x1
- strh r0, [r3]
-_081A42F8:
- ldr r0, [r6]
- ldr r3, =0x00000d1c
- adds r0, r3
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r2
- bhi _081A4394
- adds r0, 0x1
- b _081A4392
- .pool
-_081A431C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r1, =0x00000dc8
- adds r2, r1
- adds r1, r2, r0
- b _081A4388
- .pool
-_081A4338:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- adds r0, r2
- b _081A4386
- .pool
-_081A434C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r3, =0x00000de2
- adds r2, r3
- adds r1, r2, r0
- b _081A4388
- .pool
-_081A4368:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- adds r0, r2
- b _081A4386
- .pool
-_081A437C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r3, =0x00000e1a
- adds r0, r3
-_081A4386:
- adds r1, r0, r1
-_081A4388:
- ldrh r3, [r1]
- ldr r0, =0x0000270e
- cmp r3, r0
- bhi _081A4394
- adds r0, r3, 0x1
-_081A4392:
- strh r0, [r1]
-_081A4394:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4230
-
- thumb_func_start sub_81A43A8
-sub_81A43A8: @ 81A43A8
- push {r4-r6,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r6, =gSaveBlock1Ptr
- movs r5, 0x64
-_081A43B2:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A43EE
- adds r1, r0, 0
- muls r1, r5
- movs r0, 0xEA
- lsls r0, 1
- adds r1, r0
- ldr r0, [r6]
- adds r0, r1
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_081A43EE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A43B2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A43A8
-
- thumb_func_start sub_81A4410
-sub_81A4410: @ 81A4410
- push {r4,lr}
- ldr r4, =gSpecialVar_Result
- bl MoveRecordedBattleToSaveData
- strh r0, [r4]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4410
-
- thumb_func_start sub_81A443C
-sub_81A443C: @ 81A443C
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A4450
- cmp r0, 0x1
- beq _081A4464
- b _081A446E
- .pool
-_081A4450:
- ldr r0, =gStringVar1
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl GetFrontierTrainerName
- b _081A446E
- .pool
-_081A4464:
- ldr r0, =gStringVar2
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl GetFrontierTrainerName
-_081A446E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A443C
-
- thumb_func_start sub_81A447C
-sub_81A447C: @ 81A447C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
-_081A448C:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, [sp]
- lsls r1, r2, 1
- ldr r4, =0x00000caa
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r1
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r0, 0x5
- bhi _081A454E
- movs r6, 0
- ldr r0, [sp]
- movs r2, 0x64
- adds r1, r0, 0
- muls r1, r2
- ldr r0, =gPlayerParty
- adds r7, r1, r0
-_081A44BA:
- movs r5, 0
- movs r4, 0xD
- adds r4, r6
- mov r8, r4
- adds r0, r6, 0x1
- mov r10, r0
-_081A44C6:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000caa
- adds r0, r2
- add r0, r9
- ldrh r0, [r0]
- movs r4, 0x64
- adds r1, r0, 0
- muls r1, r4
- movs r0, 0xEA
- lsls r0, 1
- adds r1, r0
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0xD
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r7, 0
- mov r1, r8
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _081A4508
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081A44C6
-_081A4508:
- cmp r5, 0x4
- bne _081A4516
- adds r0, r7, 0
- movs r1, 0xA6
- adds r2, r6, 0
- bl SetMonMoveSlot
-_081A4516:
- mov r4, r10
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _081A44BA
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r4, =0x00000caa
- adds r1, r4
- add r1, r9
- ldrh r1, [r1]
- subs r1, 0x1
- movs r3, 0x64
- muls r1, r3
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- ldr r2, =gPlayerParty
- ldr r4, [sp]
- adds r1, r4, 0
- muls r1, r3
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_081A454E:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- str r0, [sp]
- cmp r0, 0x3
- bls _081A448C
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A447C
-
- thumb_func_start sub_81A457C
-sub_81A457C: @ 81A457C
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A5030
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A457C
-
- thumb_func_start sub_81A4594
-sub_81A4594: @ 81A4594
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r1
- adds r6, r3, 0
- ldr r1, =gRecordsWindowId
- ldrb r5, [r1]
- lsls r4, r0, 1
- adds r4, r0
- ldr r1, =gText_1Dot
- adds r4, r1
- mov r1, r8
- lsls r3, r1, 27
- lsrs r3, 24
- lsls r1, r0, 2
- adds r1, r0
- adds r2, r1
- lsls r2, 3
- adds r2, 0x1
- lsls r2, 24
- lsrs r7, r2, 24
- str r7, [sp]
- movs r0, 0xFF
- mov r10, r0
- str r0, [sp, 0x4]
- movs r1, 0
- mov r9, r1
- str r1, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- movs r0, 0xFF
- strb r0, [r6, 0xD]
- ldrh r0, [r6, 0x4]
- cmp r0, 0
- beq _081A465C
- adds r1, r6, 0x6
- ldrb r2, [r6, 0xE]
- add r0, sp, 0xC
- bl TVShowConvertInternationalString
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- mov r3, r8
- adds r3, 0x2
- lsls r3, 27
- lsrs r3, 24
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- ldrh r1, [r6, 0x4]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081A4618
- adds r1, r0, 0
-_081A4618:
- ldr r0, =gStringVar2
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_08611D08
- ldr r0, [sp, 0x4C]
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC8
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- bl AddTextPrinterParameterized
-_081A465C:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4594
-
- thumb_func_start sub_81A4684
-sub_81A4684: @ 81A4684
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r6, r0, 0
- adds r7, r1, 0
- mov r10, r2
- adds r5, r3, 0
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- lsls r2, r6, 1
- adds r2, r6
- ldr r1, =gText_1Dot
- adds r2, r1
- lsls r3, r7, 27
- lsrs r3, 24
- mov r12, r3
- lsls r1, r6, 2
- adds r1, r6
- mov r3, r10
- adds r4, r3, r1
- lsls r1, r4, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r3, 0
- mov r8, r3
- str r3, [sp, 0x8]
- movs r1, 0x1
- mov r3, r12
- bl AddTextPrinterParameterized
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _081A47BC
- movs r0, 0xFF
- strb r0, [r5, 0x11]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x19]
- adds r1, r5, 0
- adds r1, 0xA
- ldrb r2, [r5, 0x1A]
- add r0, sp, 0xC
- bl TVShowConvertInternationalString
- ldr r1, =gRecordsWindowId
- ldrb r0, [r1]
- adds r3, r7, 0x2
- lsls r3, 27
- lsrs r3, 24
- subs r1, r4, 0x1
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- adds r4, r5, 0
- adds r4, 0x12
- adds r0, r4, 0
- bl IsStringJapanese
- cmp r0, 0
- beq _081A4734
- add r0, sp, 0xC
- adds r1, r4, 0
- movs r2, 0x1
- bl TVShowConvertInternationalString
- b _081A473C
- .pool
-_081A4734:
- add r0, sp, 0xC
- adds r1, r4, 0
- bl StringCopy
-_081A473C:
- ldr r2, =gRecordsWindowId
- mov r9, r2
- ldrb r0, [r2]
- adds r3, r7, 0x4
- lsls r3, 27
- lsrs r3, 24
- lsls r1, r6, 2
- adds r1, r6
- mov r2, r10
- adds r6, r2, r1
- adds r1, r6, 0x1
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- mov r8, r1
- str r1, [sp, 0x4]
- movs r7, 0
- str r7, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- ldrh r1, [r5, 0x8]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081A4778
- adds r1, r0, 0
-_081A4778:
- ldr r0, =gStringVar2
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r0, =gUnknown_08611D08
- ldr r4, [r0, 0x24]
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC8
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r2, r9
- ldrb r0, [r2]
- lsls r1, r6, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- bl AddTextPrinterParameterized
-_081A47BC:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4684
-
- thumb_func_start sub_81A47E0
-sub_81A47E0: @ 81A47E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- mov r9, r0
- mov r10, r1
- str r2, [sp, 0x40]
- movs r0, 0xAC
- lsls r0, 1
- bl AllocZeroed
- mov r8, r0
- bl sub_80E8260
- add r0, sp, 0x30
- mov r12, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r3, [sp, 0x40]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 4
- mov r4, r10
- lsls r0, r4, 1
- add r0, r10
- lsls r0, 5
- adds r1, r0
- adds r4, r1, r2
- mov r3, sp
- movs r2, 0x2
-_081A4820:
- adds r0, r3, 0
- movs r5, 0x87
- lsls r5, 2
- adds r1, r4, r5
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r4, 0x10
- adds r3, 0x10
- subs r2, 0x1
- cmp r2, 0
- bge _081A4820
- ldr r6, [sp, 0x40]
- lsls r0, r6, 4
- mov r7, r10
- lsls r1, r7, 5
- adds r0, r1
- mov r1, r12
- add r0, r8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- movs r2, 0
-_081A4852:
- movs r1, 0
- movs r4, 0
- movs r3, 0
- lsls r5, r2, 4
- adds r6, r2, 0x1
- mov r2, sp
-_081A485E:
- ldrh r0, [r2, 0x4]
- cmp r0, r1
- ble _081A4868
- adds r4, r3, 0
- adds r1, r0, 0
-_081A4868:
- adds r2, 0x10
- adds r3, 0x1
- cmp r3, 0x3
- ble _081A485E
- mov r0, sp
- ldrh r0, [r0, 0x34]
- cmp r0, r1
- blt _081A487A
- movs r4, 0x3
-_081A487A:
- lsls r0, r4, 4
- mov r7, sp
- adds r2, r7, r0
- mov r0, r9
- adds r1, r5, r0
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x4]
- adds r2, r6, 0
- cmp r2, 0x2
- ble _081A4852
- mov r0, r8
- bl Free
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A47E0
-
- thumb_func_start sub_81A48B4
-sub_81A48B4: @ 81A48B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- mov r9, r0
- mov r10, r1
- movs r0, 0xAC
- lsls r0, 1
- bl AllocZeroed
- mov r8, r0
- bl sub_80E8260
- mov r0, sp
- adds r0, 0x54
- str r0, [sp, 0x70]
- add r1, sp, 0x5C
- mov r12, r1
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r0, 0x54
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r3, r0, r1
- mov r2, sp
- movs r4, 0x2
-_081A48EE:
- adds r0, r2, 0
- ldr r5, =0x0000057c
- adds r1, r3, r5
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r3, 0x1C
- adds r2, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _081A48EE
- mov r6, r10
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- add r0, r8
- ldr r1, [sp, 0x70]
- movs r7, 0x90
- lsls r7, 1
- adds r0, r7
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r0]
- str r0, [r1]
- movs r4, 0
-_081A492A:
- movs r1, 0
- movs r5, 0
- movs r3, 0
- lsls r6, r4, 3
- adds r7, r4, 0x1
- mov r2, sp
-_081A4936:
- ldrh r0, [r2, 0x8]
- cmp r0, r1
- ble _081A4940
- adds r5, r3, 0
- adds r1, r0, 0
-_081A4940:
- adds r2, 0x1C
- adds r3, 0x1
- cmp r3, 0x2
- ble _081A4936
- mov r2, r12
- ldrh r0, [r2]
- cmp r0, r1
- blt _081A4952
- movs r5, 0x3
-_081A4952:
- subs r1, r6, r4
- lsls r1, 2
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- mov r3, sp
- adds r2, r3, r0
- add r1, r9
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r4, r7, 0
- cmp r4, 0x2
- ble _081A492A
- mov r0, r8
- bl Free
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A48B4
-
- thumb_func_start sub_81A4998
-sub_81A4998: @ 81A4998
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x94
- adds r7, r0, 0
- str r1, [sp, 0x90]
- ldr r0, =gStringVar1
- ldr r4, =gUnknown_08611CB0
- lsls r5, r7, 3
- adds r1, r5, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r6, =gStringVar4
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- adds r0, r6, 0
- bl StringExpandPlaceholders
- ldr r0, =gRecordsWindowId
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x1
- mov r10, r1
- str r1, [sp]
- movs r2, 0xFF
- mov r9, r2
- str r2, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r2, r6, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, =gUnknown_08611D00
- ldr r2, [sp, 0x90]
- lsls r0, r2, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xD0
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r10
- str r2, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParameterized
- cmp r7, 0x9
- bne _081A4A6C
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r1, =0x00000ee8
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r2]
- movs r2, 0xEF
- lsls r2, 4
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- add r4, sp, 0x3C
- adds r0, r4, 0
- ldr r1, [sp, 0x90]
- bl sub_81A48B4
-_081A4A3A:
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x4
- adds r3, r4, 0
- bl sub_81A4684
- adds r4, 0x1C
- adds r5, 0x1
- cmp r5, 0x2
- ble _081A4A3A
- b _081A4A90
- .pool
-_081A4A6C:
- add r0, sp, 0xC
- adds r1, r7, 0
- ldr r2, [sp, 0x90]
- bl sub_81A47E0
- movs r5, 0
- add r4, sp, 0xC
-_081A4A7A:
- str r7, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x4
- adds r3, r4, 0
- bl sub_81A4594
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x2
- ble _081A4A7A
-_081A4A90:
- add sp, 0x94
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A4998
-
- thumb_func_start sub_81A4AA0
-sub_81A4AA0: @ 81A4AA0
- push {r4,lr}
- ldr r4, =gRecordsWindowId
- ldr r0, =gUnknown_08611C84
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r1, 0
- bl sub_81A4998
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4AA0
-
- thumb_func_start sub_81A4AE8
-sub_81A4AE8: @ 81A4AE8
- push {r4,lr}
- ldr r4, =gRecordsWindowId
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_81A4998
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4AE8
-
- thumb_func_start sub_81A4B14
-sub_81A4B14: @ 81A4B14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r1, 0
- ldr r3, =gSaveBlock2Ptr
-_081A4B24:
- movs r6, 0
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r10, r2
- adds r0, r1
- lsls r0, 5
- mov r8, r0
- movs r7, 0
- movs r0, 0x87
- lsls r0, 2
- add r0, r8
- mov r9, r0
-_081A4B3C:
- movs r5, 0
- adds r2, r7, 0
- mov r1, r8
- adds r4, r7, r1
-_081A4B44:
- ldr r0, [r3]
- add r0, r9
- adds r0, r2
- lsls r1, r5, 4
- adds r0, r1
- movs r1, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl CopyUnalignedWord
- ldr r3, [sp, 0x4]
- ldr r0, [r3]
- adds r0, r4
- ldr r1, =0x00000222
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r4
- movs r1, 0x88
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- adds r4, 0x10
- adds r5, 0x1
- ldr r2, [sp]
- cmp r5, 0x2
- ble _081A4B44
- adds r7, 0x30
- adds r6, 0x1
- cmp r6, 0x1
- ble _081A4B3C
- mov r1, r10
- cmp r1, 0x8
- ble _081A4B24
- movs r6, 0
- ldr r7, =gSaveBlock2Ptr
- movs r2, 0x54
- mov r10, r2
- movs r3, 0xFF
- mov r9, r3
-_081A4B98:
- adds r0, r6, 0x1
- mov r8, r0
- mov r1, r10
- muls r1, r6
- movs r0, 0x54
- adds r4, r6, 0
- muls r4, r0
- movs r2, 0
- ldr r3, =0x0000057c
- adds r6, r1, r3
- movs r5, 0x2
-_081A4BAE:
- ldr r0, [r7]
- adds r0, r6
- adds r0, r2
- movs r1, 0
- str r2, [sp]
- bl CopyUnalignedWord
- ldr r0, [r7]
- adds r0, r6
- ldr r2, [sp]
- adds r0, r2
- adds r0, 0x4
- movs r1, 0
- bl CopyUnalignedWord
- ldr r1, [r7]
- adds r1, r4
- ldr r0, =0x00000586
- adds r1, r0
- ldrb r0, [r1]
- mov r3, r9
- orrs r0, r3
- strb r0, [r1]
- ldr r1, [r7]
- adds r1, r4
- ldr r0, =0x0000058e
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, r4
- ldr r1, =0x00000584
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- adds r4, 0x1C
- ldr r2, [sp]
- adds r2, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _081A4BAE
- mov r6, r8
- cmp r6, 0x1
- ble _081A4B98
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4B14
-
- thumb_func_start sub_81A4C30
-sub_81A4C30: @ 81A4C30
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- adds r7, r0, 0
- adds r4, r7, 0
- movs r5, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
- ldr r0, =gPlayerParty
- mov r8, r0
-_081A4C4E:
- mov r0, r8
- adds r1, r5, r0
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _081A4C4E
- ldr r4, =gPlayerPartyCount
- ldrb r5, [r4]
- bl LoadPlayerParty
- bl sub_8076D5C
- movs r0, 0x1
- bl TrySavingData
- bl sav2_gender2_inplace_and_xFE
- strb r5, [r4]
- adds r4, r7, 0
- ldr r5, =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
-_081A4C84:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _081A4C84
- adds r0, r7, 0
- bl Free
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4C30
-
- thumb_func_start GetFrontierBrainTrainerPicIndex
-GetFrontierBrainTrainerPicIndex: @ 81A4CB0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4CD0
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r0, 24
- b _081A4CDA
- .pool
-_081A4CD0:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4CDA:
- ldr r2, =gTrainers
- ldr r1, =gFacilityToBrainTrainerId
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFrontierBrainTrainerPicIndex
-
- thumb_func_start GetFrontierBrainTrainerClass
-GetFrontierBrainTrainerClass: @ 81A4D00
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4D20
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r0, 24
- b _081A4D2A
- .pool
-_081A4D20:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4D2A:
- ldr r2, =gTrainers
- ldr r1, =gFacilityToBrainTrainerId
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFrontierBrainTrainerClass
-
- thumb_func_start CopyFrontierBrainTrainerName
-CopyFrontierBrainTrainerName: @ 81A4D50
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4D70
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r0, 24
- b _081A4D7A
- .pool
-_081A4D70:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4D7A:
- movs r3, 0
- lsls r0, 1
- ldr r2, =gTrainers
- ldr r1, =gFacilityToBrainTrainerId
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x4
- adds r2, r0, r2
-_081A4D90:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _081A4D90
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CopyFrontierBrainTrainerName
-
- thumb_func_start sub_81A4DB8
-sub_81A4DB8: @ 81A4DB8
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 15
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4DB8
-
- thumb_func_start sub_81A4DD8
-sub_81A4DD8: @ 81A4DD8
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- ldr r2, =0x00004010
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 15
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4DD8
-
- thumb_func_start sub_81A4E04
-sub_81A4E04: @ 81A4E04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x20]
- bl sub_81A513C
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- cmp r0, 0x1
- bne _081A4E44
- ldr r0, =0x000003fe
- bl TrainerIdToDomeTournamentId
- lsls r0, 16
- lsrs r0, 16
- bl GetTrainerMonCountInBits
- adds r4, r0, 0
- b _081A4E46
- .pool
-_081A4E44:
- movs r4, 0x7
-_081A4E46:
- bl ZeroEnemyPartyMons
- movs r1, 0
- str r1, [sp, 0x18]
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x14]
-_081A4E5C:
- movs r0, 0x1
- ands r0, r4
- asrs r4, 1
- str r4, [sp, 0x30]
- ldr r3, [sp, 0x14]
- adds r3, 0x1
- str r3, [sp, 0x28]
- cmp r0, 0
- bne _081A4E70
- b _081A4FC4
-_081A4E70:
- ldr r4, [sp, 0x14]
- lsls r4, 2
- mov r9, r4
- ldr r0, [sp, 0x24]
- lsls r0, 4
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x20]
- lsls r1, 4
- str r1, [sp, 0x34]
- ldr r2, [sp, 0x1C]
- lsls r2, 24
- str r2, [sp, 0x3C]
- ldr r3, [sp, 0x18]
- adds r3, 0x1
- str r3, [sp, 0x2C]
- ldr r0, [sp, 0x14]
- add r0, r9
- lsls r0, 2
- mov r8, r0
-_081A4E96:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r7, r4, 16
- lsls r0, 16
- orrs r7, r0
- ldr r0, =0x0000ef2a
- adds r1, r7, 0
- bl IsShinyOtIdPersonality
- lsls r0, 24
- cmp r0, 0
- bne _081A4E96
- ldr r4, [sp, 0x38]
- ldr r1, [sp, 0x24]
- subs r0, r4, r1
- lsls r5, r0, 2
- mov r2, r8
- adds r4, r2, r5
- ldr r3, [sp, 0x34]
- ldr r1, [sp, 0x20]
- subs r0, r3, r1
- lsls r6, r0, 3
- adds r4, r6
- ldr r2, =gUnknown_0861156C
- adds r4, r2
- adds r0, r7, 0
- bl GetNatureFromPersonality
- ldrb r1, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081A4E96
- ldr r4, [sp, 0x18]
- movs r0, 0x64
- adds r3, r4, 0
- muls r3, r0
- mov r8, r3
- ldr r1, =gEnemyParty
- add r1, r8
- mov r10, r1
- ldr r4, [sp, 0x14]
- add r4, r9
- lsls r4, 2
- adds r0, r4, r5
- adds r0, r6
- ldr r2, =gUnknown_0861156C
- adds r0, r2
- ldrh r1, [r0]
- ldr r3, [sp, 0x3C]
- lsrs r2, r3, 24
- ldrb r3, [r0, 0x4]
- movs r0, 0x1
- str r0, [sp]
- str r7, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, =0x0000ef2a
- str r0, [sp, 0xC]
- mov r0, r10
- bl CreateMon
- ldr r0, =gUnknown_0861156C
- adds r5, r0
- adds r5, r6, r5
- adds r4, r5, r4
- adds r4, 0x2
- mov r0, r10
- movs r1, 0xC
- adds r2, r4, 0
- bl SetMonData
- movs r7, 0
- mov r6, r8
- ldr r3, =gEnemyParty
-_081A4F32:
- adds r1, r7, 0
- adds r1, 0x1A
- ldr r0, [sp, 0x14]
- add r0, r9
- lsls r4, r0, 2
- adds r2, r5, r4
- adds r0, r7, 0x6
- adds r2, r0
- adds r0, r6, r3
- str r3, [sp, 0x40]
- bl SetMonData
- adds r7, 0x1
- ldr r3, [sp, 0x40]
- cmp r7, 0x5
- ble _081A4F32
- movs r1, 0xFF
- add r0, sp, 0x10
- strb r1, [r0]
- movs r7, 0
- ldr r1, [sp, 0x18]
- movs r2, 0x64
- adds r6, r1, 0
- muls r6, r2
- ldr r3, =gUnknown_08611578
- mov r8, r3
- ldr r3, =gEnemyParty
- adds r5, r4, 0
-_081A4F6A:
- ldr r4, [sp, 0x38]
- ldr r0, [sp, 0x24]
- subs r1, r4, r0
- lsls r1, 2
- adds r1, r5, r1
- ldr r2, [sp, 0x34]
- ldr r4, [sp, 0x20]
- subs r0, r2, r4
- lsls r0, 3
- adds r1, r0
- add r1, r8
- ldrh r4, [r1]
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r6, r3
- adds r1, r4, 0
- str r3, [sp, 0x40]
- bl SetMonMoveSlot
- ldr r3, [sp, 0x40]
- cmp r4, 0xDA
- bne _081A4F9C
- movs r1, 0
- add r0, sp, 0x10
- strb r1, [r0]
-_081A4F9C:
- adds r5, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _081A4F6A
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r4, 0
- bl CalculateMonStats
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0x18]
-_081A4FC4:
- ldr r4, [sp, 0x30]
- ldr r3, [sp, 0x28]
- str r3, [sp, 0x14]
- cmp r3, 0x2
- bgt _081A4FD0
- b _081A4E5C
-_081A4FD0:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4E04
-
- thumb_func_start sub_81A4FF0
-sub_81A4FF0: @ 81A4FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r3, =gUnknown_0861156C
- lsls r2, r4, 2
- adds r2, r4
- lsls r1, r0, 4
- subs r1, r0
- adds r1, r2
- lsls r1, 2
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrh r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4FF0
-
- thumb_func_start sub_81A5030
-sub_81A5030: @ 81A5030
- push {lr}
- lsls r0, 24
- ldr r2, =gTrainerBattleOpponent_A
- ldr r3, =0x000003fe
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, =0x00004010
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 23
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5030
-
- thumb_func_start sub_81A5060
-sub_81A5060: @ 81A5060
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r2, =gUnknown_0861156C
- lsls r4, 1
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r4, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- adds r4, r1
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r4, r0
- adds r2, 0xC
- adds r4, r2
- ldrh r0, [r4]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A5060
-
- thumb_func_start sub_81A50B0
-sub_81A50B0: @ 81A50B0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r3, =gUnknown_0861156C
- lsls r2, r4, 2
- adds r2, r4
- lsls r1, r0, 4
- subs r1, r0
- adds r1, r2
- lsls r1, 2
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1, 0x5]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A50B0
-
- thumb_func_start sub_81A50F0
-sub_81A50F0: @ 81A50F0
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r2, =gUnknown_0861156C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r4, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- adds r4, r1
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r4, r0
- adds r2, 0x6
- adds r4, r2
- ldrb r0, [r4]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A50F0
-
- thumb_func_start sub_81A513C
-sub_81A513C: @ 81A513C
- push {r4,r5,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bne _081A51A0
- bl sub_81A39C4
- lsls r0, 16
- ldr r3, =gUnknown_08611550
- lsls r2, r5, 2
- adds r1, r3, 0x3
- adds r1, r2, r1
- lsrs r0, 16
- ldrb r1, [r1]
- adds r1, r0, r1
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A5180
- movs r4, 0
- b _081A51A0
- .pool
-_081A5180:
- adds r0, r3, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r1, r0
- beq _081A519E
- cmp r1, r0
- ble _081A51A0
- subs r0, r1, r0
- adds r1, r3, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A51A0
-_081A519E:
- movs r4, 0x1
-_081A51A0:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A513C
-
- thumb_func_start sub_81A51A8
-sub_81A51A8: @ 81A51A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A51D4
- bl GetRecordedBattleFrontierFacility
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8185EAC
- lsls r0, 24
- lsrs r1, r0, 24
- b _081A51E4
- .pool
-_081A51D4:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_81A513C
- adds r1, r0, 0
-_081A51E4:
- cmp r5, 0
- beq _081A51F4
- cmp r5, 0x1
- beq _081A5214
- b _081A5228
- .pool
-_081A51F4:
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_08611DB0
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- b _081A5228
- .pool
-_081A5214:
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_08611DB8
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
-_081A5228:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A51A8
-
- thumb_func_start sub_81A5238
-sub_81A5238: @ 81A5238
- push {lr}
- ldr r1, =gUnknown_08611F84
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5238
-
- thumb_func_start sub_81A5258
-sub_81A5258: @ 81A5258
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
- ldrb r0, [r5]
- cmp r0, 0xA
- bls _081A5268
- b _081A5544
-_081A5268:
- lsls r0, 2
- ldr r1, =_081A5278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A5278:
- .4byte _081A52A4
- .4byte _081A52F4
- .4byte _081A531C
- .4byte _081A53B4
- .4byte _081A540C
- .4byte _081A542C
- .4byte _081A544C
- .4byte _081A5490
- .4byte _081A553E
- .4byte _081A54D4
- .4byte _081A5520
-_081A52A4:
- ldr r0, =0x7fffff1c
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, =0x00003f3e
- movs r0, 0x48
- bl SetGpuReg
- ldr r0, =gUnknown_08611F74
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08D855E8
- movs r1, 0xF8
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, =gBattle_WIN0H
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, =gBattle_WIN0V
- movs r0, 0x70
- strh r0, [r1]
- b _081A553E
- .pool
-_081A52F4:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081A5306
- b _081A5544
-_081A5306:
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0x18
- movs r3, 0xD
- bl HandleBattleWindow
- b _081A553E
- .pool
-_081A531C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _081A5328
- b _081A5544
-_081A5328:
- ldr r1, =gBattleTextBuff1
- movs r2, 0xA1
- strb r2, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- ldr r1, =gBattleTextBuff2
- strb r2, [r1]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x1]
- ldr r0, =gText_PlayerMon1Name
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r4, =gDisplayedStringBattle
- adds r0, r4, 0
- movs r1, 0xF
- bl BattlePutTextOnWindow
- ldr r0, =gText_Vs
- movs r1, 0x10
- bl BattlePutTextOnWindow
- ldr r0, =gText_OpponentMon1Name
- bl BattleStringExpandPlaceholdersToDisplayedString
- adds r0, r4, 0
- movs r1, 0x11
- bl BattlePutTextOnWindow
- ldr r0, =gText_Mind
- movs r1, 0x12
- bl BattlePutTextOnWindow
- ldr r0, =gText_Skill
- movs r1, 0x13
- bl BattlePutTextOnWindow
- ldr r0, =gText_Body
- movs r1, 0x14
- bl BattlePutTextOnWindow
- ldr r0, =gText_Judgement
- bl BattleStringExpandPlaceholdersToDisplayedString
- adds r0, r4, 0
- movs r1, 0x15
- bl BattlePutTextOnWindow
- b _081A553E
- .pool
-_081A53B4:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _081A53C0
- b _081A5544
-_081A53C0:
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- movs r6, 0x80
- lsls r6, 15
- movs r4, 0x7
-_081A53CE:
- asrs r1, r6, 16
- ldr r0, =gUnknown_08611F5C
- movs r2, 0x54
- movs r3, 0
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 13
- adds r6, r0
- subs r4, 0x1
- cmp r4, 0
- bge _081A53CE
- b _081A553C
- .pool
-_081A540C:
- ldr r0, =0x00000109
- bl PlaySE
- movs r0, 0x50
- movs r1, 0x28
- movs r2, 0
- movs r3, 0
- bl sub_81A5558
- movs r0, 0xA0
- movs r1, 0x28
- movs r2, 0
- b _081A5464
- .pool
-_081A542C:
- ldr r0, =0x00000109
- bl PlaySE
- movs r0, 0x50
- movs r1, 0x38
- movs r2, 0x1
- movs r3, 0
- bl sub_81A5558
- movs r0, 0xA0
- movs r1, 0x38
- movs r2, 0x1
- b _081A5464
- .pool
-_081A544C:
- ldr r0, =0x00000109
- bl PlaySE
- movs r0, 0x50
- movs r1, 0x48
- movs r2, 0x2
- movs r3, 0
- bl sub_81A5558
- movs r0, 0xA0
- movs r1, 0x48
- movs r2, 0x2
-_081A5464:
- movs r3, 0x1
- bl sub_81A5558
- ldr r0, =gText_Judgement
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, =gDisplayedStringBattle
- movs r1, 0x15
- bl BattlePutTextOnWindow
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- movs r6, 0x1
- b _081A5544
- .pool
-_081A5490:
- movs r0, 0x85
- lsls r0, 1
- bl PlaySE
- ldr r0, =gBattleTextBuff1
- ldr r1, =gBattleTextBuff2
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bls _081A54BC
- movs r6, 0x2
- ldr r1, =gBattleScripting
- movs r0, 0
- strb r0, [r1, 0x17]
- b _081A553E
- .pool
-_081A54BC:
- cmp r2, r0
- bcs _081A54D0
- movs r6, 0x3
- ldr r1, =gBattleScripting
- movs r0, 0x1
- strb r0, [r1, 0x17]
- b _081A553E
- .pool
-_081A54D0:
- movs r6, 0x4
- b _081A553E
-_081A54D4:
- ldr r1, =0x00003f3e
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0x18
- movs r3, 0xD
- bl HandleBattleWindow
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r0, =gMPlayInfo_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, =0x7fffff1c
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _081A553E
- .pool
-_081A5520:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081A5544
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0xFA
- lsls r0, 2
- bl FreeSpriteTilesByTag
-_081A553C:
- movs r6, 0x1
-_081A553E:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_081A5544:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A5258
-
- thumb_func_start sub_81A5558
-sub_81A5558: @ 81A5558
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
- movs r1, 0
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- movs r3, 0xA6
- lsls r3, 2
- adds r4, r0, r3
- ldr r5, =0x0000029a
- adds r3, r0, r5
- adds r5, 0x2
- adds r5, r0
- mov r8, r5
- cmp r2, 0x1
- beq _081A55C4
- cmp r2, 0x1
- bgt _081A55A8
- cmp r2, 0
- beq _081A55B0
- b _081A5612
- .pool
-_081A55A8:
- mov r0, r9
- cmp r0, 0x2
- beq _081A55D8
- b _081A5612
-_081A55B0:
- adds r0, r4, r7
- movs r6, 0
- ldrsb r6, [r0, r6]
- movs r1, 0x1
- adds r0, r7, 0
- eors r0, r1
- adds r0, r4, r0
- movs r1, 0
- ldrsb r1, [r0, r1]
- b _081A5612
-_081A55C4:
- adds r0, r3, r7
- movs r6, 0
- ldrsb r6, [r0, r6]
- movs r1, 0x1
- adds r0, r7, 0
- eors r0, r1
- adds r0, r3, r0
- movs r1, 0
- ldrsb r1, [r0, r1]
- b _081A5612
-_081A55D8:
- ldr r3, =gBattleMons
- mov r9, r3
- movs r5, 0x58
- adds r0, r7, 0
- muls r0, r5
- add r0, r9
- ldrh r0, [r0, 0x28]
- movs r4, 0x64
- muls r0, r4
- lsls r1, r7, 1
- add r1, r8
- ldrh r1, [r1]
- bl __divsi3
- adds r6, r0, 0
- movs r0, 0x1
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, 0
- muls r0, r5
- add r0, r9
- ldrh r0, [r0, 0x28]
- muls r0, r4
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- bl __divsi3
- adds r1, r0, 0
-_081A5612:
- cmp r6, r1
- ble _081A5638
- movs r4, 0x2
- cmp r7, 0
- beq _081A5628
- ldr r1, =gBattleTextBuff2
- b _081A562A
- .pool
-_081A5628:
- ldr r1, =gBattleTextBuff1
-_081A562A:
- ldrb r0, [r1]
- adds r0, 0x2
- strb r0, [r1]
- b _081A565E
- .pool
-_081A5638:
- cmp r6, r1
- bne _081A565C
- movs r4, 0x1
- cmp r7, 0
- beq _081A564C
- ldr r1, =gBattleTextBuff2
- b _081A564E
- .pool
-_081A564C:
- ldr r1, =gBattleTextBuff1
-_081A564E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081A565E
- .pool
-_081A565C:
- movs r4, 0
-_081A565E:
- ldr r0, =gUnknown_08611F5C
- ldr r1, [sp]
- mov r2, r10
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r1, r4, 0
- bl StartSpriteAnim
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5558
-
- thumb_func_start sub_81A5698
-sub_81A5698: @ 81A5698
- push {lr}
- adds r1, r0, 0
- ldr r0, =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _081A56AA
- adds r0, r1, 0
- bl DestroySprite
-_081A56AA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5698
-
- thumb_func_start sub_81A56B4
-sub_81A56B4: @ 81A56B4
- ldr r0, =gBattleStruct
- ldr r2, [r0]
- movs r0, 0xA6
- lsls r0, 2
- adds r1, r2, r0
- adds r0, 0x2
- adds r3, r2, r0
- adds r0, 0x2
- adds r2, r0
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r0, [r3]
- strb r0, [r3, 0x1]
- ldr r0, =gBattleMons
- ldrh r1, [r0, 0x28]
- strh r1, [r2]
- adds r0, 0x80
- ldrh r0, [r0]
- strh r0, [r2, 0x2]
- bx lr
- .pool
- thumb_func_end sub_81A56B4
-
- thumb_func_start sub_81A56E8
-sub_81A56E8: @ 81A56E8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- movs r2, 0xA6
- lsls r2, 2
- adds r1, r2
- adds r1, r0
- ldr r2, =gBattleArenaMoveMindRatings
- ldr r0, =gCurrentMove
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A56E8
-
- thumb_func_start sub_81A5718
-sub_81A5718: @ 81A5718
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- ldr r0, =gBattleStruct
- ldr r2, [r0]
- ldr r0, =0x0000029a
- adds r5, r2, r0
- ldr r0, =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _081A57DA
- ldr r0, =0x000002a2
- adds r4, r2, r0
- ldrb r2, [r4]
- ldr r0, =gBitTable
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081A576C
- bics r2, r1
- strb r2, [r4]
- adds r1, r5, r3
- ldrb r0, [r1]
- subs r0, 0x2
- b _081A57D8
- .pool
-_081A576C:
- ldr r0, =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _081A5798
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081A5788
- ldr r0, =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _081A57DA
-_081A5788:
- adds r1, r5, r3
- ldrb r0, [r1]
- subs r0, 0x2
- b _081A57D8
- .pool
-_081A5798:
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x6
- bne _081A57A4
- adds r1, r5, r3
- b _081A57D4
-_081A57A4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A57B4
- adds r1, r5, r3
- ldrb r0, [r1]
- adds r0, 0x2
- b _081A57D8
-_081A57B4:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081A57C4
- adds r1, r5, r3
- ldrb r0, [r1]
- subs r0, 0x1
- b _081A57D8
-_081A57C4:
- ldr r0, =gProtectStructs
- lsls r1, r6, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- bne _081A57DA
- adds r1, r5, r6
-_081A57D4:
- ldrb r0, [r1]
- adds r0, 0x1
-_081A57D8:
- strb r0, [r1]
-_081A57DA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5718
-
- thumb_func_start sub_81A57E4
-sub_81A57E4: @ 81A57E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r2, r1, 0
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- ldr r5, =0x0000029a
- adds r3, r0, r5
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- bgt _081A582A
- subs r0, 0x1
- cmp r1, r0
- bge _081A585C
- cmp r1, 0xC5
- bgt _081A581C
- cmp r1, 0xC3
- bge _081A585C
- cmp r1, 0x77
- beq _081A585C
- b _081A5864
- .pool
-_081A581C:
- cmp r1, 0xC7
- blt _081A5864
- cmp r1, 0xCC
- ble _081A585C
- cmp r1, 0xCE
- beq _081A585C
- b _081A5864
-_081A582A:
- ldr r0, =0x00000147
- cmp r1, r0
- beq _081A585C
- cmp r1, r0
- bgt _081A5848
- subs r0, 0x12
- cmp r1, r0
- beq _081A585C
- adds r0, 0x2
- cmp r1, r0
- beq _081A585C
- b _081A5864
- .pool
-_081A5848:
- movs r0, 0xAD
- lsls r0, 1
- cmp r2, r0
- blt _081A5864
- adds r0, 0x1
- cmp r2, r0
- ble _081A585C
- adds r0, 0x3
- cmp r2, r0
- bne _081A5864
-_081A585C:
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x3
- strb r0, [r1]
-_081A5864:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81A57E4
-
- thumb_func_start sub_81A586C
-sub_81A586C: @ 81A586C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleStruct
- ldr r3, [r1]
- movs r1, 0xA7
- lsls r1, 2
- adds r3, r1
- lsls r2, r0, 1
- adds r2, r3
- ldr r5, =gBattleMons
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r2]
- movs r1, 0x1
- eors r0, r1
- lsls r1, r0, 1
- adds r1, r3
- muls r0, r4
- adds r0, r5
- ldrh r2, [r0, 0x28]
- ldrh r0, [r1]
- cmp r0, r2
- bls _081A58A4
- strh r2, [r1]
-_081A58A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A586C
-
- thumb_func_start sub_81A58B4
-sub_81A58B4: @ 81A58B4
- push {r4-r6,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x00000ca8
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r4]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- strh r2, [r0]
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- cmp r5, 0
- beq _081A5914
- ldr r0, [r4]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x80
- b _081A591E
- .pool
-_081A5914:
- ldr r0, [r4]
- ldr r3, =0x00000cdc
- adds r0, r3
- ldr r2, [r0]
- movs r0, 0x40
-_081A591E:
- ands r2, r0
- cmp r2, 0
- bne _081A5930
- ldr r0, [r4]
- lsls r1, r5, 1
- ldr r6, =0x00000dda
- adds r0, r6
- adds r0, r1
- strh r2, [r0]
-_081A5930:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- ldr r1, =gTrainerBattleOpponent_A
- movs r0, 0
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A58B4
-
- thumb_func_start sub_81A5964
-sub_81A5964: @ 81A5964
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =0x00000ca9
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r1, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A59B0
- cmp r0, 0x1
- bgt _081A5994
- cmp r0, 0
- beq _081A599A
- b _081A59EE
- .pool
-_081A5994:
- cmp r0, 0x2
- beq _081A59C8
- b _081A59EE
-_081A599A:
- ldr r0, =gSpecialVar_Result
- ldr r2, =0x00000dd8
- adds r1, r3, r2
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A59EE
- .pool
-_081A59B0:
- ldr r2, =gSpecialVar_Result
- lsls r1, 1
- ldr r4, =0x00000dda
- adds r0, r3, r4
- adds r0, r1
- ldrh r0, [r0]
- b _081A59EC
- .pool
-_081A59C8:
- cmp r1, 0
- beq _081A59E0
- ldr r2, =gSpecialVar_Result
- ldr r1, =0x00000cdc
- adds r0, r3, r1
- ldr r0, [r0]
- movs r1, 0x80
- b _081A59EA
- .pool
-_081A59E0:
- ldr r2, =gSpecialVar_Result
- ldr r4, =0x00000cdc
- adds r0, r3, r4
- ldr r0, [r0]
- movs r1, 0x40
-_081A59EA:
- ands r0, r1
-_081A59EC:
- strh r0, [r2]
-_081A59EE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5964
-
- thumb_func_start sub_81A59FC
-sub_81A59FC: @ 81A59FC
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r1, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A5A48
- cmp r0, 0x1
- bgt _081A5A2C
- cmp r0, 0
- beq _081A5A32
- b _081A5ABA
- .pool
-_081A5A2C:
- cmp r0, 0x2
- beq _081A5A60
- b _081A5ABA
-_081A5A32:
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- ldr r3, =0x00000dd8
- adds r0, r2, r3
- strh r1, [r0]
- b _081A5ABA
- .pool
-_081A5A48:
- lsls r1, 1
- ldr r3, =0x00000dda
- adds r0, r2, r3
- adds r0, r1
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A5ABA
- .pool
-_081A5A60:
- cmp r1, 0
- beq _081A5A90
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A5A80
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- b _081A5AB8
- .pool
-_081A5A80:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- movs r2, 0x81
- negs r2, r2
- b _081A5AB6
- .pool
-_081A5A90:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A5AAC
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- b _081A5AB8
- .pool
-_081A5AAC:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- movs r2, 0x41
- negs r2, r2
-_081A5AB6:
- ands r1, r2
-_081A5AB8:
- str r1, [r0]
-_081A5ABA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A59FC
-
- thumb_func_start sub_81A5AC4
-sub_81A5AC4: @ 81A5AC4
- push {r4,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_81A4C30
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5AC4
-
- thumb_func_start sub_81A5B08
-sub_81A5B08: @ 81A5B08
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000dda
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0x29
- bls _081A5B58
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08611FAC
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, =0x00000dd8
- adds r4, r1
- b _081A5B76
- .pool
-_081A5B58:
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08611FA0
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r2, =0x00000dd8
- adds r4, r2
-_081A5B76:
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5B08
-
- thumb_func_start sub_81A5B88
-sub_81A5B88: @ 81A5B88
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000dd8
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081A5BD0
- ldr r0, [r4]
- ldr r1, =0x00000dd8
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000dd8
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gSpecialVar_Result
- strh r5, [r0]
- b _081A5BD6
- .pool
-_081A5BD0:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
-_081A5BD6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5B88
-
- thumb_func_start sub_81A5BE0
-sub_81A5BE0: @ 81A5BE0
- push {lr}
- ldr r0, =gStringVar1
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl GetFrontierTrainerName
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5BE0
-
- thumb_func_start sub_81A5BF8
-sub_81A5BF8: @ 81A5BF8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r0, 0x1B
- mov r8, r0
- movs r5, 0x7
- movs r4, 0x1
- str r4, [sp]
- movs r6, 0x6
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0xFE
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x20
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x31
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x33
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x34
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r0, 0x1C
- mov r8, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x35
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x36
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- movs r6, 0x5
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x37
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x39
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3A
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000831
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000833
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000834
- movs r0, 0x1A
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000835
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000836
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5BF8
-
- thumb_func_start sub_81A5D44
-sub_81A5D44: @ 81A5D44
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r5, 0
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r6, 0x4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r0, 0x1B
- mov r8, r0
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x5
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x8
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x1C
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xF
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x11
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81A5D44
-
- thumb_func_start sub_81A5E74
-sub_81A5E74: @ 81A5E74
- push {lr}
- ldr r1, =gUnknown_08612120
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5E74
-
- thumb_func_start sub_81A5E94
-sub_81A5E94: @ 81A5E94
- push {r4-r7,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r4, =0x00000ca9
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r5]
- ldr r1, =0x00000ca8
- adds r0, r1
- movs r2, 0
- strb r2, [r0]
- ldr r1, [r5]
- ldr r3, =0x00000cb2
- adds r0, r1, r3
- strh r2, [r0]
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r4, [r5]
- ldr r0, =0x00000cdc
- adds r3, r4, r0
- ldr r2, =gUnknown_08612164
- lsls r0, r7, 2
- lsls r1, r6, 3
- adds r0, r1
- adds r0, r2
- ldr r3, [r3]
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- bne _081A5F0A
- lsls r1, r7, 1
- lsls r0, r6, 2
- adds r1, r0
- ldr r2, =0x00000de2
- adds r0, r4, r2
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x10
- adds r0, r4, r2
- adds r0, r1
- strh r3, [r0]
-_081A5F0A:
- ldr r1, =gUnknown_03001288
- movs r0, 0
- strb r0, [r1]
- movs r2, 0
- ldr r6, =gSaveBlock1Ptr
- movs r4, 0xE7
- lsls r4, 4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A5F1C:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, r4
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _081A5F1C
- movs r2, 0
- ldr r4, =gUnknown_03006298
- ldr r1, =0x0000ffff
- adds r3, r1, 0
-_081A5F40:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _081A5F40
- ldr r0, [r6]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- ldr r1, =gTrainerBattleOpponent_A
- movs r0, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5E94
-
- thumb_func_start sub_81A5FA8
-sub_81A5FA8: @ 81A5FA8
- push {r4-r7,lr}
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _081A6000
- cmp r0, 0x2
- bgt _081A5FE4
- cmp r0, 0x1
- beq _081A5FEA
- b _081A6044
- .pool
-_081A5FE4:
- cmp r0, 0x3
- beq _081A6030
- b _081A6044
-_081A5FEA:
- ldr r3, =gSpecialVar_Result
- ldr r0, [r7]
- lsls r1, r6, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A603C
- .pool
-_081A6000:
- ldr r4, =gSpecialVar_Result
- ldr r2, [r7]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_08612164
- lsls r0, r6, 2
- lsls r1, r5, 3
- adds r0, r1
- adds r0, r3
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- strh r0, [r4]
- b _081A6044
- .pool
-_081A6030:
- ldr r3, =gSpecialVar_Result
- ldr r0, [r7]
- lsls r1, r6, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000df2
-_081A603C:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
-_081A6044:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5FA8
-
- thumb_func_start sub_81A6054
-sub_81A6054: @ 81A6054
- push {r4-r6,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _081A60B4
- cmp r0, 0x2
- bgt _081A6090
- cmp r0, 0x1
- beq _081A6096
- b _081A6128
- .pool
-_081A6090:
- cmp r0, 0x3
- beq _081A6108
- b _081A6128
-_081A6096:
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, =0x00000de2
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r2]
- b _081A6128
- .pool
-_081A60B4:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A60E4
- ldr r2, [r6]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_08612164
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- orrs r0, r1
- str r0, [r2]
- b _081A6128
- .pool
-_081A60E4:
- ldr r2, [r6]
- ldr r1, =0x00000cdc
- adds r2, r1
- ldr r3, =gUnknown_08612174
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- ands r0, r1
- str r0, [r2]
- b _081A6128
- .pool
-_081A6108:
- ldr r3, =gUnknown_03001288
- ldrb r0, [r3]
- cmp r0, 0x1
- bne _081A6128
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, =0x00000df2
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- strb r1, [r3]
-_081A6128:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6054
-
- thumb_func_start sub_81A613C
-sub_81A613C: @ 81A613C
- push {r4,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_81A4C30
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A613C
-
- thumb_func_start nullsub_75
-nullsub_75: @ 81A6180
- bx lr
- thumb_func_end nullsub_75
-
- thumb_func_start nullsub_123
-nullsub_123: @ 81A6184
- bx lr
- thumb_func_end nullsub_123
-
- thumb_func_start sub_81A6188
-sub_81A6188: @ 81A6188
- push {lr}
- bl ZeroPlayerPartyMons
- bl DoBattleFactorySelectScreen
- pop {r0}
- bx r0
- thumb_func_end sub_81A6188
-
- thumb_func_start sub_81A6198
-sub_81A6198: @ 81A6198
- push {lr}
- bl DoBattleFactorySwapScreen
- pop {r0}
- bx r0
- thumb_func_end sub_81A6198
-
- thumb_func_start sub_81A61A4
-sub_81A61A4: @ 81A61A4
- ldr r1, =gUnknown_03001288
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A61A4
-
- thumb_func_start sub_81A61B0
-sub_81A61B0: @ 81A61B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0x10]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, [r4]
- ldr r3, [sp, 0x10]
- lsls r2, r3, 1
- lsrs r0, 14
- adds r2, r0
- ldr r6, =0x00000de2
- adds r1, r6
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- ldr r2, =gFacilityTrainers
- ldr r1, =gBattleFrontierTrainers
- str r1, [r2]
- ldr r5, =0x00000cb2
- lsls r0, 24
- str r0, [sp, 0x20]
- mov r8, r0
-_081A61FA:
- ldr r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r7, 0
- ldr r1, [r4]
- adds r0, r1, r5
- ldr r6, [sp, 0x10]
- lsls r6, 24
- str r6, [sp, 0x1C]
- ldrh r0, [r0]
- cmp r7, r0
- bge _081A6244
- ldr r2, =0x00000cb4
- adds r0, r1, r2
- ldrh r0, [r0]
- ldr r6, =gSaveBlock2Ptr
- cmp r0, r3
- beq _081A6244
- ldr r1, [r6]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_081A6236:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, r2
- bge _081A6244
- ldrh r0, [r1]
- cmp r0, r3
- bne _081A6236
-_081A6244:
- ldr r0, [r4]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldr r6, =gSaveBlock2Ptr
- ldrh r0, [r0]
- cmp r7, r0
- bne _081A61FA
- ldr r0, =gTrainerBattleOpponent_A
- strh r3, [r0]
- ldr r2, [r6]
- adds r1, r2, r1
- ldrh r0, [r1]
- cmp r0, 0x5
- bhi _081A626C
- adds r1, r0, 0
- lsls r1, 1
- ldr r4, =0x00000cb4
- adds r0, r2, r4
- adds r0, r1
- strh r3, [r0]
-_081A626C:
- movs r7, 0
- mov r10, sp
- movs r6, 0
- lsls r6, 1
- str r6, [sp, 0x14]
- add r6, sp
- str r6, [sp, 0x18]
-_081A627A:
- ldr r1, [sp, 0x1C]
- lsrs r0, r1, 24
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 24
- movs r2, 0
- bl sub_81A6EF0
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r4, =gFacilityTrainerMons
- ldr r2, [r4]
- lsls r1, r0, 4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0xC9
- beq _081A636E
- movs r3, 0
- ldr r6, =gSaveBlock2Ptr
- mov r8, r1
- adds r5, r0, 0
- ldr r1, [r6]
-_081A62A6:
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- beq _081A62C0
- adds r1, 0xC
- adds r3, 0x1
- cmp r3, 0x5
- ble _081A62A6
-_081A62C0:
- cmp r3, 0x6
- bne _081A636E
- ldr r6, [sp, 0x10]
- cmp r6, 0
- bne _081A62D0
- ldr r0, =0x00000351
- cmp r9, r0
- bhi _081A636E
-_081A62D0:
- movs r2, 0
- adds r4, r2, r7
- cmp r2, r4
- bge _081A6302
- ldr r1, [sp, 0x18]
- ldrh r0, [r1]
- cmp r0, r5
- beq _081A6302
- adds r6, r4, 0
- ldr r3, =gFacilityTrainerMons
- mov r12, r3
- mov r5, r8
- ldr r3, [sp, 0x14]
- add r3, sp
-_081A62EC:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, r6
- bge _081A6302
- mov r1, r12
- ldr r0, [r1]
- adds r0, r5, r0
- ldrh r1, [r3]
- ldrh r0, [r0]
- cmp r1, r0
- bne _081A62EC
-_081A6302:
- cmp r2, r4
- bne _081A636E
- movs r2, 0
- cmp r2, r4
- bge _081A633E
- ldr r3, =gBattleFrontierHeldItems
- mov r12, r3
- add r0, sp, 0x8
- ldr r6, [sp, 0x14]
- adds r3, r0, r6
- mov r0, r8
- str r0, [sp, 0x24]
- adds r5, r4, 0
-_081A631C:
- ldrh r1, [r3]
- cmp r1, 0
- beq _081A6336
- ldr r6, =gFacilityTrainerMons
- ldr r0, [r6]
- ldr r6, [sp, 0x24]
- adds r0, r6, r0
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r1, r0
- beq _081A633E
-_081A6336:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, r5
- blt _081A631C
-_081A633E:
- cmp r2, r4
- bne _081A636E
- lsls r4, r7, 1
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- add r1, r8
- ldrh r0, [r1]
- mov r2, r10
- strh r0, [r2]
- add r2, sp, 0x8
- adds r2, r4
- ldr r3, =gBattleFrontierHeldItems
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r0, =gUnknown_03006298
- adds r4, r0
- mov r3, r9
- strh r3, [r4]
- movs r4, 0x2
- add r10, r4
- adds r7, 0x1
-_081A636E:
- cmp r7, 0x3
- bne _081A627A
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A61B0
-
- thumb_func_start sub_81A63B8
-sub_81A63B8: @ 81A63B8
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- bl sub_8162614
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A63B8
-
- thumb_func_start sub_81A63CC
-sub_81A63CC: @ 81A63CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _081A63FC
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- b _081A6400
- .pool
-_081A63FC:
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gSlateportBattleTentMons
-_081A6400:
- str r0, [r1]
- movs r7, 0
- ldr r2, =gSaveBlock2Ptr
- mov r8, r2
-_081A6408:
- mov r0, r8
- ldr r1, [r0]
- adds r0, r7, 0x3
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 2
- adds r1, r4
- ldr r0, =gUnknown_03006298
- lsls r6, r7, 1
- adds r6, r0
- ldrh r0, [r6]
- movs r2, 0xE7
- lsls r2, 4
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r0, =gEnemyParty
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0x28
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e78
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldr r1, [r2]
- ldr r2, =0x00000e74
- adds r1, r2
- adds r1, r4
- str r0, [r1]
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e79
- adds r1, r2
- strb r0, [r1]
- ldrh r1, [r6]
- ldr r0, =gFacilityTrainerMons
- ldr r0, [r0]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0xC
- bl SetMonData
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _081A6408
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A63CC
-
- thumb_func_start sub_81A64C4
-sub_81A64C4: @ 81A64C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0x2
- bne _081A6500
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gSlateportBattleTentMons
- str r0, [r1]
- movs r2, 0x1E
- str r2, [sp, 0x14]
- b _081A6518
- .pool
-_081A6500:
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- movs r4, 0x32
- str r4, [sp, 0x14]
- cmp r0, 0
- beq _081A6518
- movs r5, 0x64
- str r5, [sp, 0x14]
-_081A6518:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A6522
- b _081A666C
-_081A6522:
- bl ZeroPlayerPartyMons
- movs r0, 0
- mov r8, r0
- mov r1, sp
- adds r1, 0x12
- str r1, [sp, 0x1C]
- ldr r2, =gFacilityTrainerMons
- mov r9, r2
-_081A6534:
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- mov r5, r8
- lsls r5, 1
- mov r10, r5
- mov r3, r10
- add r3, r8
- lsls r3, 2
- adds r1, r2, r3
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r7, [r0]
- ldr r5, =0x00000e78
- adds r1, r5
- ldrb r6, [r1]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- mov r4, r9
- ldr r1, [r4]
- lsls r4, r7, 4
- adds r1, r4, r1
- ldrh r1, [r1]
- movs r5, 0x1
- str r5, [sp]
- ldr r5, =0x00000e74
- adds r2, r5
- adds r2, r3
- ldr r2, [r2]
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r2, [sp, 0x14]
- adds r3, r6, 0
- bl CreateMon
- movs r1, 0
- mov r2, r9
- ldr r0, [r2]
- adds r4, r0
- ldrb r4, [r4, 0xB]
- mov r5, r8
- adds r5, 0x1
- str r5, [sp, 0x18]
- movs r5, 0x5
-_081A6596:
- adds r0, r4, 0
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- beq _081A65A2
- adds r1, 0x1
-_081A65A2:
- lsrs r4, 1
- subs r5, 0x1
- cmp r5, 0
- bge _081A6596
- movs r0, 0xFF
- lsls r0, 1
- bl __divsi3
- add r1, sp, 0x10
- strh r0, [r1]
- movs r4, 0x1
- movs r5, 0
- lsls r7, 4
- movs r0, 0x64
- mov r6, r8
- muls r6, r0
- ldr r3, =gPlayerParty
-_081A65C4:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r0, [r0, 0xB]
- ands r0, r4
- cmp r0, 0
- beq _081A65E2
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r6, r3
- add r2, sp, 0x10
- str r3, [sp, 0x20]
- bl SetMonData
- ldr r3, [sp, 0x20]
-_081A65E2:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A65C4
- movs r2, 0x64
- mov r4, r8
- muls r4, r2
- ldr r5, =gPlayerParty
- adds r0, r4, r5
- bl CalculateMonStats
- movs r0, 0
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- movs r6, 0
-_081A6602:
- mov r2, r9
- ldr r0, [r2]
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, r5
- bl SetMonMoveAvoidReturn
- adds r6, 0x1
- cmp r6, 0x3
- ble _081A6602
- movs r5, 0x64
- mov r4, r8
- muls r4, r5
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x1C]
- bl SetMonData
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r2, r10
- add r2, r8
- lsls r2, 2
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- adds r2, r0
- ldr r0, =0x00000e79
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2E
- bl SetMonData
- ldr r1, [sp, 0x18]
- mov r8, r1
- cmp r1, 0x2
- bgt _081A666C
- b _081A6534
-_081A666C:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A667A
- cmp r0, 0x2
- beq _081A667A
- b _081A67AE
-_081A667A:
- movs r2, 0
- mov r8, r2
- ldr r4, =gFacilityTrainerMons
- mov r9, r4
-_081A6682:
- ldr r5, =gSaveBlock2Ptr
- ldr r3, [r5]
- mov r0, r8
- adds r0, 0x3
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r1, r3, r2
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r7, [r0]
- ldr r5, =0x00000e78
- adds r1, r5
- ldrb r6, [r1]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- mov r4, r9
- ldr r1, [r4]
- lsls r4, r7, 4
- adds r1, r4, r1
- ldrh r1, [r1]
- movs r5, 0x1
- str r5, [sp]
- ldr r5, =0x00000e74
- adds r3, r5
- adds r3, r2
- ldr r2, [r3]
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r2, [sp, 0x14]
- adds r3, r6, 0
- bl CreateMon
- movs r1, 0
- mov r2, r9
- ldr r0, [r2]
- adds r4, r0
- ldrb r4, [r4, 0xB]
- mov r5, r8
- lsls r5, 1
- mov r10, r5
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x18]
- movs r5, 0x5
-_081A66E8:
- adds r0, r4, 0
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- beq _081A66F4
- adds r1, 0x1
-_081A66F4:
- lsrs r4, 1
- subs r5, 0x1
- cmp r5, 0
- bge _081A66E8
- add r4, sp, 0x10
- movs r0, 0xFF
- lsls r0, 1
- bl __divsi3
- strh r0, [r4]
- movs r4, 0x1
- movs r5, 0
- lsls r7, 4
- movs r0, 0x64
- mov r6, r8
- muls r6, r0
- ldr r3, =gEnemyParty
-_081A6716:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r0, [r0, 0xB]
- ands r0, r4
- cmp r0, 0
- beq _081A6734
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r6, r3
- add r2, sp, 0x10
- str r3, [sp, 0x20]
- bl SetMonData
- ldr r3, [sp, 0x20]
-_081A6734:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A6716
- movs r2, 0x64
- mov r4, r8
- muls r4, r2
- ldr r5, =gEnemyParty
- adds r0, r4, r5
- bl CalculateMonStats
- movs r6, 0
-_081A674E:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, r5
- bl SetMonMoveAvoidReturn
- adds r6, 0x1
- cmp r6, 0x3
- ble _081A674E
- movs r2, 0x64
- mov r4, r8
- muls r4, r2
- ldr r0, =gEnemyParty
- adds r4, r0
- mov r5, r9
- ldr r0, [r5]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r2, r10
- add r2, r8
- lsls r2, 2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- adds r2, r0
- ldr r5, =0x00000e9d
- adds r2, r5
- adds r0, r4, 0
- movs r1, 0x2E
- bl SetMonData
- ldr r0, [sp, 0x18]
- mov r8, r0
- cmp r0, 0x2
- bgt _081A67AE
- b _081A6682
-_081A67AE:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A64C4
-
- thumb_func_start sub_81A67EC
-sub_81A67EC: @ 81A67EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x38]
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x3C]
- ldr r2, =gSaveBlock2Ptr
- mov r9, r2
- movs r2, 0
- adds r3, r1, 0
- adds r1, r0, 0
- mov r0, sp
- movs r4, 0x5
- mov r8, r4
-_081A681A:
- strh r2, [r0]
- strh r2, [r1]
- strh r2, [r3]
- adds r3, 0x2
- adds r1, 0x2
- adds r0, 0x2
- movs r5, 0x1
- negs r5, r5
- add r8, r5
- mov r4, r8
- cmp r4, 0
- bge _081A681A
- mov r5, r9
- ldr r0, [r5]
- ldr r7, =0x00000ca9
- adds r0, r7
- ldrb r4, [r0]
- lsls r4, 30
- lsrs r4, 30
- ldr r6, =0x000040ce
- adds r0, r6, 0
- bl VarGet
- lsls r0, 24
- ldr r1, [r5]
- lsls r4, 1
- lsrs r0, 22
- adds r4, r0
- ldr r5, =0x00000de2
- adds r1, r5
- adds r1, r4
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- adds r0, r6, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r2, 0
- cmp r0, 0x1
- bne _081A6878
- movs r2, 0x1
-_081A6878:
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081A68B4
- movs r4, 0x1
- str r4, [sp, 0x28]
- b _081A68B8
- .pool
-_081A68B4:
- movs r5, 0
- str r5, [sp, 0x28]
-_081A68B8:
- adds r0, r2, 0
- ldr r1, [sp, 0x28]
- bl sub_81A6F70
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x2C]
- movs r0, 0
- mov r10, r0
- mov r8, r0
- ldr r1, [sp, 0x3C]
- str r1, [sp, 0x40]
- mov r2, sp
- str r2, [sp, 0x44]
- lsls r4, r0, 1
- str r4, [sp, 0x30]
- ldr r5, [sp, 0x38]
- adds r5, r4
- str r5, [sp, 0x34]
-_081A68DE:
- ldr r0, [sp, 0x2C]
- cmp r8, r0
- bge _081A68EC
- ldr r0, [sp, 0x28]
- ldr r1, [sp, 0x24]
- movs r2, 0x1
- b _081A68F2
-_081A68EC:
- ldr r0, [sp, 0x28]
- ldr r1, [sp, 0x24]
- movs r2, 0
-_081A68F2:
- bl sub_81A6EF0
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- lsls r2, r7, 4
- adds r4, r2, r1
- ldrh r1, [r4]
- mov r9, r2
- cmp r1, 0xC9
- beq _081A69E2
- movs r3, 0
- mov r2, r8
- adds r6, r3, r2
- cmp r3, r6
- bge _081A6950
- ldr r5, [sp, 0x34]
- ldrh r0, [r5]
- cmp r0, r7
- beq _081A6950
- mov r12, r4
- adds r2, r1, 0
- lsls r4, r3, 1
- ldr r1, [sp, 0x30]
- add r1, sp
- str r6, [sp, 0x48]
-_081A6928:
- ldrh r0, [r1]
- cmp r0, r2
- bne _081A693A
- mov r0, r10
- cmp r0, 0
- bne _081A6950
- mov r5, r12
- ldrh r5, [r5]
- mov r10, r5
-_081A693A:
- adds r4, 0x2
- adds r1, 0x2
- adds r3, 0x1
- ldr r0, [sp, 0x48]
- cmp r3, r0
- bge _081A6950
- ldr r5, [sp, 0x38]
- adds r0, r5, r4
- ldrh r0, [r0]
- cmp r0, r7
- bne _081A6928
-_081A6950:
- cmp r3, r6
- bne _081A69E2
- movs r3, 0
- cmp r3, r6
- bge _081A699C
- ldr r0, =gBattleFrontierHeldItems
- mov r12, r0
- ldr r1, [sp, 0x30]
- ldr r2, [sp, 0x3C]
- adds r5, r1, r2
-_081A6964:
- ldrh r4, [r5]
- cmp r4, 0
- beq _081A6994
- ldr r1, =gFacilityTrainerMons
- ldr r0, [r1]
- mov r2, r9
- adds r1, r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r4, r0
- bne _081A6994
- ldrh r0, [r1]
- cmp r0, r10
- bne _081A699C
- movs r4, 0
- mov r10, r4
- b _081A699C
- .pool
-_081A6994:
- adds r5, 0x2
- adds r3, 0x1
- cmp r3, r6
- blt _081A6964
-_081A699C:
- cmp r3, r6
- bne _081A69E2
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r5, r8
- lsls r3, r5, 1
- adds r0, r3, r5
- lsls r0, 2
- adds r1, r0
- movs r0, 0xE7
- lsls r0, 4
- adds r1, r0
- strh r7, [r1]
- ldr r2, =gFacilityTrainerMons
- ldr r1, [r2]
- add r1, r9
- ldrh r0, [r1]
- ldr r4, [sp, 0x44]
- strh r0, [r4]
- ldr r2, =gBattleFrontierHeldItems
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0x40]
- strh r0, [r5]
- ldr r0, [sp, 0x38]
- adds r3, r0, r3
- strh r7, [r3]
- adds r5, 0x2
- str r5, [sp, 0x40]
- adds r4, 0x2
- str r4, [sp, 0x44]
- movs r1, 0x1
- add r8, r1
-_081A69E2:
- mov r2, r8
- cmp r2, 0x6
- beq _081A69EA
- b _081A68DE
-_081A69EA:
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A67EC
-
- thumb_func_start sub_81A6A08
-sub_81A6A08: @ 81A6A08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- movs r4, 0
- add r5, sp, 0x14
- ldr r7, =gSpecialVar_Result
- movs r1, 0
-_081A6A1E:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _081A6A1E
- movs r4, 0
- ldr r0, =gUnknown_03006298
- mov r8, r0
- ldr r0, =gFacilityTrainerMons
- ldr r6, [r0]
- ldr r1, =gBaseStats
- mov r12, r1
-_081A6A3C:
- lsls r0, r4, 1
- add r0, r8
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r12
- adds r3, r0, r2
- ldrb r2, [r3, 0x6]
- mov r0, sp
- adds r1, r0, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3, 0x7]
- cmp r2, r1
- beq _081A6A70
- ldrb r0, [r3, 0x7]
- mov r2, sp
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081A6A70:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A6A3C
- movs r0, 0
- strb r0, [r5]
- strb r0, [r5, 0x1]
- movs r4, 0x1
- adds r3, r5, 0
-_081A6A84:
- ldrb r0, [r3]
- add r0, sp
- mov r2, sp
- adds r1, r2, r4
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bcs _081A6AAC
- strb r4, [r5]
- b _081A6AB2
- .pool
-_081A6AAC:
- cmp r2, r0
- bne _081A6AB2
- strb r4, [r3, 0x1]
-_081A6AB2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _081A6A84
- ldrb r1, [r5]
- mov r4, sp
- adds r0, r4, r1
- ldrb r2, [r0]
- cmp r2, 0
- beq _081A6ADA
- ldrb r3, [r5, 0x1]
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r2, r0
- bhi _081A6AD6
- cmp r1, r3
- bne _081A6ADA
-_081A6AD6:
- strh r1, [r7]
- b _081A6ADE
-_081A6ADA:
- movs r0, 0x12
- strh r0, [r7]
-_081A6ADE:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A6A08
-
- thumb_func_start sub_81A6AEC
-sub_81A6AEC: @ 81A6AEC
- push {r4-r7,lr}
- sub sp, 0x8
- movs r7, 0
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- movs r4, 0
- movs r1, 0
-_081A6AFC:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081A6AFC
- movs r4, 0
-_081A6B0E:
- ldr r1, =gUnknown_03006298
- lsls r0, r4, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r5, 0
-_081A6B18:
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- lsls r0, r6, 4
- adds r0, r1
- lsls r1, r5, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81A6BA4
- lsls r0, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081A6B18
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A6B0E
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- movs r4, 0x1
- adds r5, r1, 0
- ldr r3, =gBattleFactoryStyleRequiredMoveCounts
- adds r2, r5, 0
-_081A6B5C:
- mov r1, sp
- adds r0, r1, r4
- subs r1, r4, 0x1
- adds r1, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _081A6B74
- strh r4, [r2]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_081A6B74:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081A6B5C
- cmp r7, 0x2
- bls _081A6B86
- movs r0, 0x8
- strh r0, [r5]
-_081A6B86:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6AEC
-
- thumb_func_start sub_81A6BA4
-sub_81A6BA4: @ 81A6BA4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- movs r2, 0
- ldr r6, =gBattleFactoryStyleMoveListPointers
-_081A6BAE:
- movs r3, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- ldrh r0, [r1]
- adds r4, r2, 0x1
- cmp r0, 0
- beq _081A6BE4
- lsls r0, r4, 24
- lsrs r2, r0, 24
-_081A6BC2:
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- bne _081A6BD4
- adds r0, r2, 0
- b _081A6BEE
- .pool
-_081A6BD4:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _081A6BC2
-_081A6BE4:
- lsls r0, r4, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bls _081A6BAE
- movs r0, 0
-_081A6BEE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81A6BA4
-
- thumb_func_start sub_81A6BF4
-sub_81A6BF4: @ 81A6BF4
- push {lr}
- movs r2, 0
- ldr r1, =gMapHeader
- ldr r3, =0xfffffea5
- adds r0, r3, 0
- ldrh r1, [r1, 0x12]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _081A6C0C
- movs r2, 0x1
-_081A6C0C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6BF4
-
- thumb_func_start sub_81A6C1C
-sub_81A6C1C: @ 81A6C1C
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _081A6C48
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- b _081A6C4C
- .pool
-_081A6C48:
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gSlateportBattleTentMons
-_081A6C4C:
- str r0, [r1]
- movs r4, 0
-_081A6C50:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r2, r1
- movs r1, 0xE7
- lsls r1, 4
- adds r2, r1
- ldrh r2, [r2]
- ldr r1, =gFacilityTrainerMons
- ldr r1, [r1]
- lsls r2, 4
- adds r2, r1
- ldrb r2, [r2, 0xA]
- lsls r2, 1
- ldr r1, =gBattleFrontierHeldItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A6C50
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6C1C
-
- thumb_func_start sub_81A6CA8
-sub_81A6CA8: @ 81A6CA8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- negs r2, r1
- orrs r2, r1
- lsrs r2, 31
- lsrs r1, r0, 24
- cmp r1, 0x8
- bls _081A6CBE
- movs r1, 0x7
-_081A6CBE:
- ldr r0, =gUnknown_08612184
- lsls r1, 1
- adds r1, r2, r1
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6CA8
-
- thumb_func_start sub_81A6CD0
-sub_81A6CD0: @ 81A6CD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0x2C]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- ldr r1, [r4]
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 1
- lsrs r0, 22
- adds r2, r0
- ldr r7, =0x00000de2
- adds r1, r7
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- str r1, [sp, 0x30]
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- lsrs r0, 24
- movs r1, 0
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- movs r3, 0
- mov r9, r3
- ldr r1, [r4]
- ldrb r4, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r4, r0
- str r4, [sp, 0x28]
-_081A6D4C:
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- movs r2, 0
- bl sub_81A6EF0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r7, =gFacilityTrainerMons
- ldr r1, [r7]
- lsls r0, r5, 4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _081A6D6A
- b _081A6EB8
-_081A6D6A:
- ldr r0, [sp, 0x20]
- cmp r0, 0x32
- bne _081A6D78
- ldr r0, =0x00000351
- cmp r5, r0
- bls _081A6D78
- b _081A6EB8
-_081A6D78:
- movs r2, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r3, 0xE7
- lsls r3, 4
- adds r0, r3
- ldrh r0, [r0]
- cmp r5, r0
- beq _081A6DA2
- adds r4, r1, 0
- movs r1, 0
-_081A6D8E:
- adds r1, 0xC
- adds r2, 0x1
- cmp r2, 0x5
- bgt _081A6DA2
- ldr r0, [r4]
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- cmp r5, r0
- bne _081A6D8E
-_081A6DA2:
- cmp r2, 0x6
- beq _081A6DA8
- b _081A6EB8
-_081A6DA8:
- movs r4, 0
- cmp r4, r9
- bge _081A6DDC
- add r2, sp, 0xC
- ldr r7, =gFacilityTrainerMons
- ldr r0, [r7]
- lsls r1, r5, 4
- adds r0, r1, r0
- ldrh r2, [r2]
- adds r7, r1, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _081A6DDC
- ldr r6, =gFacilityTrainerMons
- adds r3, r7, 0
- add r2, sp, 0xC
-_081A6DC8:
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r9
- bge _081A6DDC
- ldr r0, [r6]
- adds r0, r3, r0
- ldrh r1, [r2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _081A6DC8
-_081A6DDC:
- cmp r4, r9
- bne _081A6EB8
- movs r4, 0
- cmp r4, r9
- bge _081A6E0C
- ldr r7, =gBattleFrontierHeldItems
- ldr r6, =gFacilityTrainerMons
- add r2, sp, 0x14
- lsls r3, r5, 4
-_081A6DEE:
- ldrh r1, [r2]
- cmp r1, 0
- beq _081A6E04
- ldr r0, [r6]
- adds r0, r3, r0
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- beq _081A6E0C
-_081A6E04:
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r9
- blt _081A6DEE
-_081A6E0C:
- cmp r4, r9
- bne _081A6EB8
- mov r0, r9
- lsls r2, r0, 1
- mov r1, sp
- adds r1, r2
- adds r1, 0xC
- ldr r3, =gFacilityTrainerMons
- ldr r4, [r3]
- lsls r5, 4
- mov r8, r5
- add r4, r8
- ldrh r0, [r4]
- strh r0, [r1]
- add r1, sp, 0x14
- adds r1, r2
- ldr r2, =gBattleFrontierHeldItems
- ldrb r0, [r4, 0xA]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x64
- mov r5, r9
- muls r5, r0
- ldr r6, =gEnemyParty
- adds r0, r5, r6
- ldrh r1, [r4]
- ldr r7, [sp, 0x20]
- lsls r2, r7, 24
- ldrb r3, [r4, 0xC]
- ldr r7, [sp, 0x24]
- str r7, [sp]
- ldrb r4, [r4, 0xB]
- str r4, [sp, 0x4]
- ldr r4, [sp, 0x28]
- str r4, [sp, 0x8]
- lsrs r2, 24
- bl CreateMonWithEVSpreadPersonalityOTID
- add r0, sp, 0x1C
- movs r7, 0
- strb r7, [r0]
- movs r4, 0
- mov r7, r8
- mov r10, r0
- movs r0, 0x1
- add r0, r9
- mov r8, r0
-_081A6E6E:
- ldr r1, =gFacilityTrainerMons
- ldr r0, [r1]
- adds r0, r7, r0
- lsls r1, r4, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, r6
- bl SetMonMoveAvoidReturn
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A6E6E
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, r10
- bl SetMonData
- ldr r2, =gFacilityTrainerMons
- ldr r0, [r2]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r9, r8
-_081A6EB8:
- mov r3, r9
- cmp r3, 0x3
- beq _081A6EC0
- b _081A6D4C
-_081A6EC0:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6CD0
-
- thumb_func_start sub_81A6EF0
-sub_81A6EF0: @ 81A6EF0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r4, 0x8
- negs r1, r0
- orrs r1, r0
- asrs r1, 31
- ands r1, r4
- adds r4, r1, 0
- cmp r3, 0x6
- bhi _081A6F2C
- cmp r2, 0
- beq _081A6F20
- ldr r2, =gUnknown_08612194
- adds r1, r3
- adds r1, 0x1
- b _081A6F38
- .pool
-_081A6F20:
- ldr r2, =gUnknown_08612194
- adds r1, r3
- b _081A6F38
- .pool
-_081A6F2C:
- adds r1, r3, 0
- cmp r1, 0x7
- beq _081A6F34
- movs r1, 0x7
-_081A6F34:
- ldr r2, =gUnknown_08612194
- adds r1, r4, r1
-_081A6F38:
- lsls r1, 2
- adds r0, r2, 0x2
- adds r0, r1, r0
- adds r1, r2
- ldrh r0, [r0]
- ldrh r4, [r1]
- subs r0, r4
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0, r4
- lsls r4, 16
- lsrs r0, r4, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6EF0
-
- thumb_func_start sub_81A6F70
-sub_81A6F70: @ 81A6F70
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000df2
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- movs r0, 0
- cmp r1, 0xE
- bls _081A6FA8
- movs r0, 0x1
- cmp r1, 0x15
- bls _081A6FA8
- movs r0, 0x2
- cmp r1, 0x1C
- bls _081A6FA8
- movs r0, 0x3
- cmp r1, 0x23
- bls _081A6FA8
- movs r0, 0x5
- cmp r1, 0x2A
- bhi _081A6FA8
- movs r0, 0x4
-_081A6FA8:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6F70
-
- thumb_func_start GetAiScriptsInBattleFactory
-GetAiScriptsInBattleFactory: @ 81A6FB4
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- cmp r4, 0x2
- beq _081A6FF8
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, [r5]
- lsls r2, r4, 1
- lsrs r0, 14
- adds r2, r0
- ldr r0, =0x00000de2
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- beq _081A7018
- cmp r2, 0x1
- bgt _081A7014
-_081A6FF8:
- movs r0, 0
- b _081A701E
- .pool
-_081A7014:
- cmp r2, 0x3
- ble _081A701C
-_081A7018:
- movs r0, 0x7
- b _081A701E
-_081A701C:
- movs r0, 0x1
-_081A701E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetAiScriptsInBattleFactory
-
- thumb_func_start SetMonMoveAvoidReturn
-SetMonMoveAvoidReturn: @ 81A7024
- push {lr}
- lsls r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 16
- cmp r1, 0xD8
- bne _081A7034
- movs r1, 0xDA
-_081A7034:
- bl SetMonMoveSlot
- pop {r0}
- bx r0
- thumb_func_end SetMonMoveAvoidReturn
-
- thumb_func_start sub_81A703C
-sub_81A703C: @ 81A703C
- push {lr}
- ldr r1, =gUnknown_086125F8
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A703C
-
- thumb_func_start sub_81A705C
-sub_81A705C: @ 81A705C
- push {lr}
- bl sub_81A79EC
- ldr r1, =gUnknown_0300128C
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A705C
-
- thumb_func_start sub_81A7070
-sub_81A7070: @ 81A7070
- push {r4-r7,lr}
- ldr r0, =0x00004010
- movs r1, 0x1C
- bl VarSet
- ldr r0, =0x00004011
- movs r1, 0xE2
- bl VarSet
- movs r4, 0x1
- movs r6, 0
- movs r5, 0
- movs r7, 0
- ldr r0, =gUnknown_0300128C
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _081A7132
- lsls r0, 2
- ldr r1, =_081A70AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A70AC:
- .4byte _081A70D0
- .4byte _081A70DA
- .4byte _081A70DE
- .4byte _081A70E8
- .4byte _081A70FC
- .4byte _081A70D6
- .4byte _081A7100
- .4byte _081A7108
- .4byte _081A710E
-_081A70D0:
- movs r0, 0
- bl sub_81A82A4
-_081A70D6:
- movs r4, 0
- b _081A711A
-_081A70DA:
- movs r5, 0x1C
- b _081A711A
-_081A70DE:
- bl sub_81A7B58
- lsls r0, 24
- lsrs r5, r0, 24
- b _081A711A
-_081A70E8:
- movs r5, 0x30
- ldr r0, =gUnknown_0300128D
- ldrb r0, [r0]
- movs r7, 0xE1
- cmp r0, 0x1
- bne _081A7118
- movs r7, 0xE2
- b _081A7118
- .pool
-_081A70FC:
- movs r5, 0x30
- b _081A711A
-_081A7100:
- movs r0, 0x1
- bl sub_81A82A4
- b _081A7114
-_081A7108:
- bl sub_81A8374
- b _081A70D6
-_081A710E:
- movs r0, 0x5
- bl sub_81A5030
-_081A7114:
- movs r7, 0x1C
- movs r4, 0
-_081A7118:
- movs r6, 0x1
-_081A711A:
- cmp r4, 0x1
- bne _081A7126
- ldr r0, =0x00004010
- adds r1, r5, 0
- bl VarSet
-_081A7126:
- cmp r6, 0x1
- bne _081A7132
- ldr r0, =0x00004011
- adds r1, r7, 0
- bl VarSet
-_081A7132:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7070
-
- thumb_func_start sub_81A7140
-sub_81A7140: @ 81A7140
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r2, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x4
- bhi _081A723A
- lsls r0, 2
- ldr r1, =_081A7174
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A7174:
- .4byte _081A7188
- .4byte _081A71A0
- .4byte _081A71C4
- .4byte _081A71E8
- .4byte _081A720C
-_081A7188:
- ldr r0, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r3, =0x00000e02
- adds r1, r3
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A723A
- .pool
-_081A71A0:
- ldr r2, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r3, =0x00000e04
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- b _081A7238
- .pool
-_081A71C4:
- ldr r2, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r3, =0x00000e08
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- b _081A7238
- .pool
-_081A71E8:
- ldr r2, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r3, =0x00000e0c
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- b _081A7238
- .pool
-_081A720C:
- cmp r2, 0
- beq _081A7228
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 4
- b _081A7236
- .pool
-_081A7228:
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- ldr r3, =0x00000cdc
- adds r0, r3
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
-_081A7236:
- ands r0, r1
-_081A7238:
- strh r0, [r2]
-_081A723A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7140
-
- thumb_func_start sub_81A7248
-sub_81A7248: @ 81A7248
- push {r4,r5,lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r3, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _081A7264
- b _081A73AA
-_081A7264:
- lsls r0, 2
- ldr r1, =_081A7280
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A7280:
- .4byte _081A7294
- .4byte _081A72AC
- .4byte _081A72D8
- .4byte _081A7314
- .4byte _081A7344
-_081A7294:
- ldr r0, [r2]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r5, =0x00000e02
- adds r0, r5
- strh r1, [r0]
- b _081A73AA
- .pool
-_081A72AC:
- ldr r0, =gSpecialVar_0x8006
- ldrh r3, [r0]
- ldr r0, =0x0000270f
- cmp r3, r0
- bls _081A72B8
- b _081A73AA
-_081A72B8:
- ldr r0, [r2]
- ldr r2, =0x00000ca9
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- ldr r5, =0x00000e04
- b _081A732C
- .pool
-_081A72D8:
- ldr r0, =gSpecialVar_0x8006
- ldrh r4, [r0]
- adds r3, r4, 0
- ldr r0, =0x0000270f
- cmp r3, r0
- bhi _081A73AA
- ldr r1, [r2]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r2, r0, 30
- lsrs r0, r2, 29
- ldr r5, =0x00000e08
- adds r1, r5
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, r3
- bcs _081A73AA
- lsrs r0, r2, 29
- adds r0, r1, r0
- strh r4, [r0]
- b _081A73AA
- .pool
-_081A7314:
- ldr r0, =gSpecialVar_0x8006
- ldrh r3, [r0]
- ldr r0, =0x0000270f
- cmp r3, r0
- bhi _081A73AA
- ldr r0, [r2]
- ldr r2, =0x00000ca9
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- ldr r5, =0x00000e0c
-_081A732C:
- adds r0, r5
- adds r0, r1
- strh r3, [r0]
- b _081A73AA
- .pool
-_081A7344:
- cmp r3, 0
- beq _081A737C
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A7368
- ldr r0, [r2]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- b _081A73A8
- .pool
-_081A7368:
- ldr r0, [r2]
- ldr r2, =0x00000cdc
- adds r0, r2
- ldr r1, [r0]
- ldr r2, =0xfffff7ff
- b _081A73A6
- .pool
-_081A737C:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A739C
- ldr r0, [r2]
- ldr r5, =0x00000cdc
- adds r0, r5
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 3
- orrs r1, r2
- b _081A73A8
- .pool
-_081A739C:
- ldr r0, [r2]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r1, [r0]
- ldr r2, =0xfffffbff
-_081A73A6:
- ands r1, r2
-_081A73A8:
- str r1, [r0]
-_081A73AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7248
-
- thumb_func_start sub_81A73B8
-sub_81A73B8: @ 81A73B8
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xE
- bls _081A73DC
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _081A73E0
- .pool
-_081A73DC:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
-_081A73E0:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A73B8
-
- thumb_func_start sub_81A73EC
-sub_81A73EC: @ 81A73EC
- ldr r0, =gSpecialVar_Result
- ldr r1, =gUnknown_0300128C
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81A73EC
-
- thumb_func_start sub_81A7400
-sub_81A7400: @ 81A7400
- ldr r1, =gUnknown_0300128E
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A7400
-
- thumb_func_start sub_81A740C
-sub_81A740C: @ 81A740C
- ldr r1, =gUnknown_0300128E
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A740C
-
- thumb_func_start sub_81A7418
-sub_81A7418: @ 81A7418
- push {r4,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl save_serialize_map
- movs r0, 0x1
- bl TrySavingData
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7418
-
- thumb_func_start nullsub_76
-nullsub_76: @ 81A7460
- bx lr
- thumb_func_end nullsub_76
-
- thumb_func_start nullsub_124
-nullsub_124: @ 81A7464
- bx lr
- thumb_func_end nullsub_124
-
- thumb_func_start sub_81A7468
-sub_81A7468: @ 81A7468
- push {lr}
- ldr r0, =gUnknown_03001290
- ldr r0, [r0]
- cmp r0, 0x20
- beq _081A748E
- cmp r0, 0x20
- bhi _081A7484
- cmp r0, 0x7
- beq _081A74BC
- cmp r0, 0x10
- beq _081A7498
- b _081A74C2
- .pool
-_081A7484:
- cmp r0, 0x40
- beq _081A74B0
- cmp r0, 0x80
- beq _081A74A4
- b _081A74C2
-_081A748E:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- b _081A74C0
- .pool
-_081A7498:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _081A74C0
- .pool
-_081A74A4:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
- b _081A74C0
- .pool
-_081A74B0:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _081A74C0
- .pool
-_081A74BC:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
-_081A74C0:
- strh r0, [r1]
-_081A74C2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7468
-
- thumb_func_start sub_81A74CC
-sub_81A74CC: @ 81A74CC
- ldr r0, =gSpecialVar_Result
- ldr r1, =gUnknown_0300128D
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81A74CC
-
- thumb_func_start sub_81A74E0
-sub_81A74E0: @ 81A74E0
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1
- ands r4, r0
- adds r4, 0x1
- adds r0, r4, 0
- bl sub_81A7F38
- ldr r0, =gSpecialVar_Result
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A74E0
-
- thumb_func_start sub_81A7508
-sub_81A7508: @ 81A7508
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _081A7538
- ldr r1, =gUnknown_0861231C
- ldr r0, =gUnknown_03001294
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x2]
- b _081A7560
- .pool
-_081A7538:
- cmp r0, 0xA
- bhi _081A7554
- ldr r1, =gUnknown_0861231C
- ldr r0, =gUnknown_03001294
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x3]
- b _081A7560
- .pool
-_081A7554:
- ldr r1, =gUnknown_0861231C
- ldr r0, =gUnknown_03001294
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
-_081A7560:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, =gUnknown_086123E4
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7508
-
- thumb_func_start sub_81A7580
-sub_81A7580: @ 81A7580
- push {lr}
- ldr r0, =sub_81A7EE4
- movs r1, 0x2
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7580
-
- thumb_func_start sub_81A7594
-sub_81A7594: @ 81A7594
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r4, 0
- movs r1, 0
-_081A759E:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A759E
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r2, r0, 16
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- lsrs r2, 24
- strb r2, [r0, 0x1]
- adds r0, r5, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
-_081A75DA:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r4, 0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A75DA
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81A7594
-
- thumb_func_start sub_81A7628
-sub_81A7628: @ 81A7628
- push {r4,lr}
- adds r4, r1, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r4, 0x20
- beq _081A7652
- cmp r4, 0x20
- bhi _081A7648
- cmp r4, 0x7
- beq _081A7664
- cmp r4, 0x10
- beq _081A7658
- b _081A7674
-_081A7648:
- cmp r4, 0x40
- beq _081A765E
- cmp r4, 0x80
- beq _081A766E
- b _081A7674
-_081A7652:
- cmp r0, 0x28
- bne _081A7674
- b _081A7672
-_081A7658:
- cmp r0, 0x29
- bne _081A7674
- b _081A7672
-_081A765E:
- cmp r0, 0x7
- bne _081A7674
- b _081A7672
-_081A7664:
- cmp r0, 0xF
- beq _081A7672
- cmp r0, 0x48
- bne _081A7674
- b _081A7672
-_081A766E:
- cmp r0, 0x11
- bne _081A7674
-_081A7672:
- movs r1, 0x1
-_081A7674:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81A7628
-
- thumb_func_start sub_81A767C
-sub_81A767C: @ 81A767C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- cmp r1, 0x20
- beq _081A76C4
- cmp r1, 0x20
- bhi _081A7696
- cmp r1, 0x7
- beq _081A771C
- cmp r1, 0x10
- beq _081A7704
- b _081A771C
-_081A7696:
- cmp r1, 0x40
- beq _081A76E0
- cmp r1, 0x80
- bne _081A771C
- ldr r1, =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x6]
- cmp r2, 0x8
- beq _081A771A
- cmp r2, 0x3
- beq _081A771A
- ldrb r0, [r0, 0x7]
- cmp r0, 0x8
- beq _081A771A
- cmp r0, 0x3
- bne _081A771C
- b _081A771A
- .pool
-_081A76C4:
- ldr r0, =gBaseStats
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0xF
- beq _081A771A
- ldrb r0, [r1, 0x7]
- cmp r0, 0xF
- bne _081A771C
- b _081A771A
- .pool
-_081A76E0:
- ldr r1, =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x6]
- cmp r2, 0x4
- beq _081A771A
- cmp r2, 0xD
- beq _081A771A
- ldrb r0, [r0, 0x7]
- cmp r0, 0x4
- beq _081A771A
- cmp r0, 0xD
- bne _081A771C
- b _081A771A
- .pool
-_081A7704:
- ldr r0, =gBaseStats
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0xA
- beq _081A771A
- ldrb r0, [r1, 0x7]
- cmp r0, 0xA
- bne _081A771C
-_081A771A:
- movs r3, 0x1
-_081A771C:
- adds r0, r3, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A767C
-
- thumb_func_start sub_81A7728
-sub_81A7728: @ 81A7728
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r6, 0
-_081A7736:
- mov r1, sp
- adds r0, r1, r6
- strb r6, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081A7736
- movs r4, 0
- mov r8, r4
-_081A774A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r2, r1, r6
- ldrb r3, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x9
- bls _081A774A
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, =0x00000cb2
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x1
- mov r10, r1
- cmp r0, 0x4
- bls _081A77A8
- movs r4, 0x3
- mov r10, r4
- cmp r0, 0x9
- bhi _081A77A8
- movs r0, 0x2
- mov r10, r0
-_081A77A8:
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r7, =gUnknown_03001290
-_081A77AE:
- movs r4, 0
- mov r9, r4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x22
- bhi _081A77DC
- movs r0, 0x80
- b _081A77FC
- .pool
-_081A77DC:
- cmp r0, 0x3B
- bhi _081A77E4
- movs r0, 0x20
- b _081A77FC
-_081A77E4:
- cmp r0, 0x4F
- bhi _081A77EC
- movs r0, 0x40
- b _081A77FC
-_081A77EC:
- cmp r1, 0x59
- bhi _081A77FA
- movs r0, 0x7
- b _081A77FC
-_081A77F4:
- movs r0, 0x1
- mov r9, r0
- b _081A786E
-_081A77FA:
- movs r0, 0x10
-_081A77FC:
- str r0, [r7]
- ldr r0, =gUnknown_03001290
- ldr r0, [r0]
- ldr r1, [sp, 0x4]
- cmp r1, r0
- beq _081A7874
- str r0, [sp, 0x4]
- movs r4, 0
- mov r8, r4
- movs r6, 0
-_081A7810:
- mov r1, sp
- adds r0, r1, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A7860
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081A7860
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, [r7]
- adds r0, r4, 0
- bl sub_81A767C
- lsls r0, 24
- cmp r0, 0
- beq _081A77F4
-_081A7860:
- cmp r8, r10
- beq _081A786E
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081A7810
-_081A786E:
- mov r4, r8
- cmp r4, 0
- beq _081A78CC
-_081A7874:
- mov r0, r9
- cmp r0, 0
- beq _081A77AE
- ldr r0, =gUnknown_03001290
- ldr r0, [r0]
- cmp r0, 0x20
- beq _081A7898
- cmp r0, 0x20
- bhi _081A78D0
- cmp r0, 0x7
- beq _081A78D0
- cmp r0, 0x10
- beq _081A78A4
- b _081A78D0
- .pool
-_081A7898:
- ldr r1, =gUnknown_0300128D
- movs r0, 0x1
- b _081A78D4
- .pool
-_081A78A4:
- bl Random
- lsls r0, 16
- lsrs r1, r0, 16
- movs r2, 0x1
- ands r1, r2
- cmp r1, 0
- beq _081A78C0
- ldr r0, =gUnknown_0300128D
- strb r2, [r0]
- b _081A78D6
- .pool
-_081A78C0:
- ldr r0, =gUnknown_0300128D
- strb r1, [r0]
- b _081A78D6
- .pool
-_081A78CC:
- movs r0, 0
- b _081A7956
-_081A78D0:
- ldr r1, =gUnknown_0300128D
- movs r0, 0
-_081A78D4:
- strb r0, [r1]
-_081A78D6:
- movs r1, 0
- mov r8, r1
- movs r6, 0
-_081A78DC:
- mov r4, sp
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A7946
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081A7946
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, =gUnknown_03001290
- ldr r1, [r7]
- adds r0, r5, 0
- bl sub_81A7628
- lsls r0, 24
- cmp r0, 0
- bne _081A7946
- ldr r1, [r7]
- adds r0, r4, 0
- bl sub_81A767C
- lsls r0, 24
- cmp r0, 0
- bne _081A7946
- adds r0, r5, 0
- movs r1, 0x37
- adds r2, r7, 0
- bl SetMonData
-_081A7946:
- cmp r8, r10
- beq _081A7954
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081A78DC
-_081A7954:
- movs r0, 0x1
-_081A7956:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7728
-
- thumb_func_start sub_81A7974
-sub_81A7974: @ 81A7974
- push {r4-r7,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- movs r7, 0x1
- cmp r0, 0x4
- bls _081A798E
- movs r7, 0x3
- cmp r0, 0x9
- bhi _081A798E
- movs r7, 0x2
-_081A798E:
- movs r6, 0
- movs r5, 0
- b _081A79A2
- .pool
-_081A799C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081A79A2:
- cmp r5, 0x2
- bhi _081A79D8
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A79D4
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081A79D4
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081A79D4:
- cmp r6, r7
- bne _081A799C
-_081A79D8:
- cmp r6, 0
- beq _081A79E4
- movs r0, 0x1
- b _081A79E6
- .pool
-_081A79E4:
- movs r0, 0
-_081A79E6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A7974
-
- thumb_func_start sub_81A79EC
-sub_81A79EC: @ 81A79EC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r4, 0xE1
- lsls r4, 4
- adds r0, r4
- ldrb r2, [r0]
- movs r3, 0x78
- ands r3, r2
- adds r5, r1, 0
- cmp r3, 0x40
- bne _081A7A10
- lsls r0, r2, 25
- lsrs r0, 28
- b _081A7B48
- .pool
-_081A7A10:
- ldr r0, =gSpecialVar_0x8007
- lsls r1, r2, 29
- ldrh r0, [r0]
- lsrs r1, 29
- cmp r0, r1
- bne _081A7A34
- cmp r3, 0x18
- bne _081A7A24
- bl sub_81A7728
-_081A7A24:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 28
- b _081A7B48
- .pool
-_081A7A34:
- movs r2, 0
- ldr r3, =gUnknown_0861266C
- movs r1, 0
-_081A7A3A:
- mov r4, sp
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081A7A3A
- movs r4, 0x8
- ldr r0, [r5]
- movs r6, 0xE1
- lsls r6, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 28
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0
- adds r5, r3, 0
- movs r3, 0x1
-_081A7A64:
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, r1
- bne _081A7A78
- mov r6, sp
- adds r0, r6, r2
- strb r3, [r0]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7A78:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081A7A64
- mov r0, sp
- ldrb r0, [r0, 0x7]
- cmp r0, 0x1
- beq _081A7AA0
- bl sub_81A8554
- lsls r0, 24
- cmp r0, 0
- bne _081A7AA0
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x7]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7AA0:
- mov r0, sp
- ldrb r0, [r0, 0x3]
- cmp r0, 0x1
- beq _081A7ABE
- bl sub_81A7974
- lsls r0, 24
- cmp r0, 0
- bne _081A7ABE
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x3]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7ABE:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xE1
- lsls r1, 4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081A7AFA
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- beq _081A7AE6
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x1]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7AE6:
- mov r0, sp
- ldrb r0, [r0, 0x4]
- cmp r0, 0x1
- beq _081A7AFA
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x4]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7AFA:
- adds r0, r4, 0
- bl AllocZeroed
- adds r5, r0, 0
- movs r3, 0
- movs r2, 0
-_081A7B06:
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _081A7B1C
- adds r1, r3, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r5, r1
- strb r2, [r1]
-_081A7B1C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081A7B06
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r0, r5, 0
- bl Free
- cmp r4, 0x3
- bne _081A7B46
- bl sub_81A7728
-_081A7B46:
- adds r0, r4, 0
-_081A7B48:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A79EC
-
- thumb_func_start sub_81A7B58
-sub_81A7B58: @ 81A7B58
- push {r4,lr}
- ldr r4, =gUnknown_03001294
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- strb r0, [r4]
- ldr r1, =gUnknown_0861231C
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7B58
-
- thumb_func_start sub_81A7B84
-sub_81A7B84: @ 81A7B84
- ldr r0, =gUnknown_0300128E
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_81A7B84
-
- thumb_func_start TryGenerateBattlePikeWildMon
-TryGenerateBattlePikeWildMon: @ 81A7B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl GetBattlePikeWildMonHeaderId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- ldr r4, =0x00000ca9
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gUnknown_08612314
- lsrs r0, 28
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, =gEnemyParty
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r0, r5, 16
- lsrs r0, 16
- bl sub_81A890C
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081A7C1C
- bl sub_8165CB4
- adds r7, r0, 0
- cmp r7, 0x3B
- ble _081A7C08
- lsls r0, r6, 2
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- subs r7, r0
- cmp r7, 0x3B
- bgt _081A7C32
-_081A7C08:
- movs r7, 0x3C
- b _081A7C32
- .pool
-_081A7C1C:
- lsls r0, r6, 2
- ldr r2, [sp, 0x4]
- adds r0, r2
- ldr r1, [r0]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x32
- subs r7, r0, r1
-_081A7C32:
- mov r0, r8
- cmp r0, 0x1
- bne _081A7C4A
- lsls r0, r7, 24
- lsrs r0, 24
- bl sub_81A88B0
- lsls r0, 24
- cmp r0, 0
- bne _081A7C4A
- movs r0, 0
- b _081A7CE2
-_081A7C4A:
- ldr r0, =gEnemyParty
- ldr r1, =gBaseStats
- mov r8, r1
- lsls r6, 2
- mov r9, r6
- ldr r2, [sp, 0x4]
- add r2, r9
- mov r10, r2
- ldr r1, [r2]
- lsls r6, r5, 1
- adds r4, r6, r5
- lsls r4, 2
- adds r1, r4, r1
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r2, r1
- lsls r1, r7, 2
- ldr r3, =gExperienceTables
- adds r1, r3
- adds r2, r1
- movs r1, 0x19
- bl SetMonData
- mov r1, r10
- ldr r0, [r1]
- adds r4, r0
- ldrh r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x17]
- mov r7, r9
- cmp r0, 0
- beq _081A7CA8
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
-_081A7CA8:
- str r0, [sp]
- ldr r0, =gEnemyParty
- movs r1, 0x2E
- mov r2, sp
- bl SetMonData
- movs r4, 0
- adds r0, r6, r5
- lsls r6, r0, 2
-_081A7CBA:
- ldr r2, [sp, 0x4]
- adds r0, r7, r2
- ldr r0, [r0]
- adds r0, r6, r0
- lsls r1, r4, 1
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r0, =gEnemyParty
- bl SetMonMoveSlot
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A7CBA
- ldr r0, =gEnemyParty
- bl CalculateMonStats
- movs r0, 0x1
-_081A7CE2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end TryGenerateBattlePikeWildMon
-
- thumb_func_start GetBattlePikeWildMonHeaderId
-GetBattlePikeWildMonHeaderId: @ 81A7D00
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- adds r2, r1, 0
- movs r0, 0x8C
- lsls r0, 1
- cmp r1, r0
- bhi _081A7D34
- movs r1, 0
- b _081A7D4C
- .pool
-_081A7D34:
- movs r0, 0x8C
- lsls r0, 2
- cmp r1, r0
- bhi _081A7D40
- movs r1, 0x1
- b _081A7D4C
-_081A7D40:
- movs r0, 0xD2
- lsls r0, 2
- movs r1, 0x3
- cmp r2, r0
- bhi _081A7D4C
- movs r1, 0x2
-_081A7D4C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end GetBattlePikeWildMonHeaderId
-
- thumb_func_start sub_81A7D54
-sub_81A7D54: @ 81A7D54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_08612688
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_081A7D66:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _081A7D66
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7D54
-
- thumb_func_start sub_81A7D8C
-sub_81A7D8C: @ 81A7D8C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081A7DA4
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _081A7DC8
-_081A7DA4:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _081A7DBC
- movs r0, 0x10
- strh r0, [r4, 0x16]
-_081A7DBC:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, =0x00002d6b
- bl BlendPalettes
-_081A7DC8:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- ble _081A7DDA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
-_081A7DDA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7D8C
-
- thumb_func_start sub_81A7DE8
-sub_81A7DE8: @ 81A7DE8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081A7E00
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _081A7E22
-_081A7E00:
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- bge _081A7E16
- movs r0, 0
- strh r0, [r4, 0x16]
-_081A7E16:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, =0x00002d6b
- bl BlendPalettes
-_081A7E22:
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _081A7E56
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _081A7E50
- ldr r0, =sub_81A7D54
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _081A7E56
- .pool
-_081A7E50:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x8]
-_081A7E56:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81A7DE8
-
- thumb_func_start sub_81A7E60
-sub_81A7E60: @ 81A7E60
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, =sub_81A7D54
- movs r1, 0x3
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, r8
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r6, [r1, 0x10]
- ldr r3, [sp]
- strh r3, [r1, 0x12]
- strh r0, [r1, 0x14]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7E60
-
- thumb_func_start sub_81A7EC4
-sub_81A7EC4: @ 81A7EC4
- push {lr}
- ldr r0, =sub_81A7D54
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081A7EDC
- movs r0, 0
- b _081A7EDE
- .pool
-_081A7EDC:
- movs r0, 0x1
-_081A7EDE:
- pop {r1}
- bx r1
- thumb_func_end sub_81A7EC4
-
- thumb_func_start sub_81A7EE4
-sub_81A7EE4: @ 81A7EE4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081A7F1C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_81A7E60
- b _081A7F30
- .pool
-_081A7F1C:
- bl sub_81A7EC4
- lsls r0, 24
- cmp r0, 0
- beq _081A7F30
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_081A7F30:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A7EE4
-
- thumb_func_start sub_81A7F38
-sub_81A7F38: @ 81A7F38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- cmp r0, 0
- bne _081A7F50
- b _081A807A
-_081A7F50:
- movs r0, 0
- mov r8, r0
-_081A7F54:
- mov r0, sp
- add r0, r8
- mov r1, r8
- strb r1, [r0]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _081A7F54
- movs r5, 0
-_081A7F6C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r2, sp
- add r2, r8
- ldrb r3, [r2]
- mov r0, sp
- adds r1, r0, r4
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _081A7F6C
- movs r1, 0
- mov r8, r1
-_081A7FB0:
- movs r0, 0
- mov r10, r0
- mov r4, sp
- add r4, r8
- ldrb r1, [r4]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- str r4, [sp, 0x8]
- cmp r5, r6
- bcc _081A8044
- adds r0, r7, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- beq _081A7FFC
- movs r0, 0x1
- mov r10, r0
- b _081A8048
- .pool
-_081A7FFC:
- adds r0, r7, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- b _081A8014
-_081A800E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A8014:
- cmp r4, 0x3
- bhi _081A8048
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, r9
- adds r2, r4, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r6, r0, 24
- adds r1, r4, 0
- adds r1, 0x11
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r6
- bcs _081A800E
-_081A8044:
- movs r1, 0x1
- mov r10, r1
-_081A8048:
- mov r0, r10
- cmp r0, 0x1
- bne _081A806C
- ldr r0, [sp, 0x8]
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_81A7594
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- cmp r0, 0
- beq _081A807A
-_081A806C:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _081A7FB0
-_081A807A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7F38
-
- thumb_func_start sub_81A8090
-sub_81A8090: @ 81A8090
- push {r4,lr}
- ldr r4, =gSpecialVar_Result
- bl InBattlePike
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8090
-
- thumb_func_start InBattlePike
-InBattlePike: @ 81A80A8
- push {lr}
- movs r2, 0
- ldr r0, =gMapHeader
- ldrh r1, [r0, 0x12]
- ldr r3, =0xfffffea1
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _081A80CA
- movs r0, 0xB3
- lsls r0, 1
- cmp r1, r0
- beq _081A80CA
- adds r0, 0x1
- cmp r1, r0
- bne _081A80CC
-_081A80CA:
- movs r2, 0x1
-_081A80CC:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end InBattlePike
-
- thumb_func_start sub_81A80DC
-sub_81A80DC: @ 81A80DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x1
- bl sub_81A8590
- lsls r0, 24
- cmp r0, 0
- beq _081A8138
- movs r0, 0x1
- strh r0, [r4]
- bl Random
- ldr r5, =gSaveBlock2Ptr
- ldr r4, [r5]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- movs r3, 0xE1
- lsls r3, 4
- adds r4, r3
- movs r1, 0x7
- ands r1, r0
- ldrb r2, [r4]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldr r2, [r5]
- adds r2, r3
- ldrb r1, [r2]
- movs r0, 0x79
- negs r0, r0
- ands r0, r1
- movs r1, 0x40
- b _081A8248
- .pool
-_081A8138:
- bl Random
- ldr r7, =gSaveBlock2Ptr
- ldr r4, [r7]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- movs r3, 0xE1
- lsls r3, 4
- adds r4, r3
- movs r1, 0x7
- ands r1, r0
- ldrb r2, [r4]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldr r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- movs r6, 0x8
- cmp r0, 0
- beq _081A8172
- movs r6, 0x6
-_081A8172:
- adds r0, r6, 0
- bl AllocZeroed
- adds r5, r0, 0
- movs r2, 0
- movs r3, 0
- cmp r2, r6
- bcs _081A81BE
- adds r4, r7, 0
-_081A8184:
- ldr r0, [r4]
- movs r1, 0xE1
- lsls r1, 4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081A81B0
- cmp r2, 0x1
- beq _081A81B4
- cmp r2, 0x4
- beq _081A81B4
- adds r1, r3, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r5, r1
- strb r2, [r1]
- b _081A81B4
- .pool
-_081A81B0:
- adds r0, r5, r2
- strb r2, [r0]
-_081A81B4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcc _081A8184
-_081A81BE:
- bl Random
- ldr r7, =gSaveBlock2Ptr
- ldr r4, [r7]
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r6, 0xE1
- lsls r6, 4
- adds r4, r6
- movs r1, 0xF
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r4]
- movs r0, 0x79
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- adds r0, r5, 0
- bl Free
- ldr r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x78
- ands r0, r1
- cmp r0, 0x18
- bne _081A821C
- bl sub_81A7974
- lsls r0, 24
- cmp r0, 0
- bne _081A821C
- ldr r2, [r7]
- adds r2, r6
- ldrb r1, [r2]
- mov r0, r8
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2]
-_081A821C:
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- movs r4, 0xE1
- lsls r4, 4
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x78
- ands r0, r1
- cmp r0, 0x38
- bne _081A824C
- bl sub_81A8554
- lsls r0, 24
- cmp r0, 0
- bne _081A824C
- ldr r2, [r5]
- adds r2, r4
- ldrb r1, [r2]
- movs r0, 0x79
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
-_081A8248:
- orrs r0, r1
- strb r0, [r2]
-_081A824C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A80DC
-
- thumb_func_start sub_81A825C
-sub_81A825C: @ 81A825C
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r2, 0xE1
- lsls r2, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A825C
-
- thumb_func_start sub_81A827C
-sub_81A827C: @ 81A827C
- ldr r2, =gSpecialVar_Result
- ldr r1, =gUnknown_0861266C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r3, 0xE1
- lsls r3, 4
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 28
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A827C
-
- thumb_func_start sub_81A82A4
-sub_81A82A4: @ 81A82A4
- push {r4-r7,lr}
- lsls r0, 24
- movs r7, 0x6
- cmp r0, 0
- bne _081A82B0
- movs r7, 0x1
-_081A82B0:
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0xE
- bl __udivsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r5, r4, 0
-_081A82D2:
- lsls r0, r6, 24
- lsrs r0, 24
- adds r1, r7, 0
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r5]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, r0, 0x1
- cmp r3, r2
- bge _081A831A
- ldr r0, =0x00000cb4
- adds r1, r0
- b _081A8314
- .pool
-_081A830C:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _081A831A
-_081A8314:
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A830C
-_081A831A:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- bne _081A82D2
- ldr r5, =gTrainerBattleOpponent_A
- strh r4, [r5]
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- ldrh r0, [r5]
- movs r1, 0
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000cb2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0xD
- bhi _081A8356
- subs r0, 0x1
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_081A8356:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A82A4
-
- thumb_func_start sub_81A8374
-sub_81A8374: @ 81A8374
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0xE
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- lsls r7, r5, 24
- adds r6, r4, 0
-_081A83A0:
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r6]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, r0, 0x1
- cmp r3, r2
- bge _081A83EE
- ldr r0, =0x00000cb4
- adds r1, r0
- b _081A83E8
- .pool
-_081A83E0:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _081A83EE
-_081A83E8:
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A83E0
-_081A83EE:
- ldr r0, [r6]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- bne _081A83A0
- ldr r5, =gTrainerBattleOpponent_A
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0
- bl sub_8162614
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r0, =0x00000cb2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0xE
- bhi _081A8424
- subs r0, 0x1
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_081A8424:
- adds r5, r3, 0
-_081A8426:
- lsrs r0, r7, 24
- movs r1, 0x1
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r5]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r3, r0
- bge _081A8466
- adds r2, 0x2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r4
- beq _081A8466
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- subs r2, 0x2
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_081A8458:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _081A8466
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A8458
-_081A8466:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r3, r0
- bne _081A8426
- ldr r5, =gTrainerBattleOpponent_B
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x1
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000cb2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0xD
- bhi _081A849A
- subs r0, 0x2
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_081A849A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8374
-
- thumb_func_start sub_81A84B4
-sub_81A84B4: @ 81A84B4
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A84C0:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r1, r4
- adds r1, r0
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _081A84C0
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A84B4
-
- thumb_func_start sub_81A84EC
-sub_81A84EC: @ 81A84EC
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _081A8524
- ldr r3, =gTrainerBattleOpponent_A
- ldrh r1, [r3]
- ldr r0, =0x0000012b
- cmp r1, r0
- bhi _081A8542
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A8542
- .pool
-_081A8524:
- cmp r0, 0x1
- bne _081A8542
- ldr r3, =gTrainerBattleOpponent_B
- ldrh r1, [r3]
- ldr r0, =0x0000012b
- cmp r1, r0
- bhi _081A8542
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
-_081A8542:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A84EC
-
- thumb_func_start sub_81A8554
-sub_81A8554: @ 81A8554
- push {r4-r6,lr}
- ldr r5, =gPlayerParty
- movs r6, 0
- movs r4, 0
-_081A855C:
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081A856E
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081A856E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, 0x64
- cmp r4, 0x2
- bls _081A855C
- cmp r6, 0x1
- bhi _081A8588
- movs r0, 0x1
- b _081A858A
- .pool
-_081A8588:
- movs r0, 0
-_081A858A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81A8554
-
- thumb_func_start sub_81A8590
-sub_81A8590: @ 81A8590
- push {r4-r6,lr}
- lsls r0, 24
- movs r6, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r3, =0x00000ca9
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- ldr r3, =0x00000e04
- adds r2, r3
- adds r2, r1
- lsrs r4, r0, 24
- ldrh r2, [r2]
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x5
- bl sub_81A3B30
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- blt _081A85F0
- cmp r2, 0x1
- bgt _081A85F0
- ldr r1, =gUnknown_086125DC
- adds r0, r2, 0
- adds r0, 0x14
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r1, 0x17]
- subs r0, r1
- cmp r4, r0
- bne _081A8634
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _081A8634
- .pool
-_081A85F0:
- ldr r5, =gUnknown_086125DC
- movs r0, 0x5
- lsls r3, r0, 2
- adds r0, r3, r5
- ldrb r1, [r0]
- adds r0, r5, 0x3
- adds r0, r3, r0
- ldrb r2, [r0]
- subs r1, r2
- cmp r4, r1
- bne _081A8610
- movs r6, 0x3
- b _081A8634
- .pool
-_081A8610:
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrb r1, [r0]
- subs r0, r1, r2
- cmp r4, r0
- beq _081A8632
- cmp r4, r1
- bls _081A8634
- subs r0, r4, r1
- adds r0, r2
- adds r1, r5, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A8634
-_081A8632:
- movs r6, 0x4
-_081A8634:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81A8590
-
- thumb_func_start sub_81A863C
-sub_81A863C: @ 81A863C
- push {r4,lr}
- ldr r4, =gSpecialVar_Result
- movs r0, 0
- bl sub_81A8590
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A863C
-
- thumb_func_start sub_81A8658
-sub_81A8658: @ 81A8658
- push {r4,lr}
- ldr r3, =gUnknown_08612675
- ldr r2, =gSpecialVar_0x8007
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xE1
- lsls r1, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- lsls r0, r1, 1
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- adds r0, r3
- ldrb r4, [r0]
- adds r0, r4, 0
- bl sub_81A7F38
- ldr r0, =gSpecialVar_Result
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8658
-
- thumb_func_start sub_81A869C
-sub_81A869C: @ 81A869C
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8005
- ldrb r1, [r0]
- movs r0, 0xE1
- lsls r0, 4
- adds r2, r0
- lsls r1, 7
- ldrb r3, [r2]
- movs r0, 0x7F
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A869C
-
- thumb_func_start sub_81A86C0
-sub_81A86C0: @ 81A86C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r10, r0
-_081A86D4:
- movs r0, 0
- mov r9, r0
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, r5
- bcc _081A8762
- adds r0, r7, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A8762
- adds r0, r7, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- b _081A8732
- .pool
-_081A872C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081A8732:
- cmp r6, 0x3
- bhi _081A8766
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcs _081A872C
-_081A8762:
- movs r0, 0x1
- mov r9, r0
-_081A8766:
- mov r0, r9
- cmp r0, 0x1
- bne _081A8778
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- b _081A8786
- .pool
-_081A8778:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0x2
- bls _081A86D4
-_081A8786:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A86C0
-
- thumb_func_start sub_81A8794
-sub_81A8794: @ 81A8794
- push {r4-r7,lr}
- movs r5, 0
- ldr r7, =gSaveBlock1Ptr
- ldr r6, =gSaveBlock2Ptr
-_081A879C:
- ldr r0, [r6]
- lsls r4, r5, 1
- ldr r1, =0x00000caa
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- movs r2, 0xEA
- lsls r2, 1
- adds r1, r2
- ldr r0, [r7]
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- ldr r1, [r6]
- ldr r2, =0x00000e12
- adds r1, r2
- adds r1, r4
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A879C
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8794
-
- thumb_func_start sub_81A87E8
-sub_81A87E8: @ 81A87E8
- push {r4,lr}
- movs r4, 0
-_081A87EC:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r3, r4, 1
- ldr r1, =0x00000caa
- adds r0, r2, r1
- adds r0, r3
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty - 100
- adds r0, r1
- ldr r1, =0x00000e12
- adds r3, r1
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A87EC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A87E8
-
- thumb_func_start sub_81A8830
-sub_81A8830: @ 81A8830
- push {r4-r6,lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x00000ca8
- adds r1, r0
- movs r4, 0
- strb r4, [r1]
- ldr r1, [r3]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- strh r4, [r0]
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r3, [r3]
- ldr r0, =0x00000cdc
- adds r2, r3, r0
- ldr r1, =gUnknown_08612690
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081A887C
- lsls r1, r5, 1
- ldr r2, =0x00000e04
- adds r0, r3, r2
- adds r0, r1
- strh r4, [r0]
-_081A887C:
- ldr r0, =gTrainerBattleOpponent_A
- strh r4, [r0]
- ldr r1, =gBattleOutcome
- movs r0, 0
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8830
-
- thumb_func_start sub_81A88B0
-sub_81A88B0: @ 81A88B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _081A8904
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- beq _081A88D6
- cmp r0, 0x16
- bne _081A8904
-_081A88D6:
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _081A8904
- subs r0, 0x5
- cmp r5, r0
- bgt _081A8904
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A8904
- movs r0, 0
- b _081A8906
- .pool
-_081A8904:
- movs r0, 0x1
-_081A8906:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A88B0
-
- thumb_func_start sub_81A890C
-sub_81A890C: @ 81A890C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =0x0000017b
- cmp r2, r0
- bne _081A8920
- movs r1, 0
- b _081A892A
- .pool
-_081A8920:
- ldr r0, =0x00000149
- movs r1, 0x2
- cmp r2, r0
- bne _081A892A
- movs r1, 0x1
-_081A892A:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A890C
-
- thumb_func_start sub_81A8934
-@ void sub_81A8934(u8)
-sub_81A8934: @ 81A8934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203CE50
- ldr r0, [r4]
- cmp r0, 0
- bne _081A894A
- movs r0, 0x44
- bl AllocZeroed
- str r0, [r4]
-_081A894A:
- ldr r0, [r4]
- adds r0, 0x41
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8934
-
- thumb_func_start sub_81A895C
-sub_81A895C: @ 81A895C
- push {r4,lr}
- ldr r4, =gUnknown_0203CE50
- ldr r0, [r4]
- cmp r0, 0
- beq _081A896E
- bl Free
- movs r0, 0
- str r0, [r4]
-_081A896E:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetEventObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- bl EventObjectClearHeldMovementIfFinished
- bl sub_80D338C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A895C
-
- thumb_func_start sub_81A89A0
-sub_81A89A0: @ 81A89A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0
- mov r9, r1
- movs r3, 0
- mov r10, r3
- mov r8, r3
-_081A89C4:
- mov r0, r8
- lsls r4, r0, 1
- adds r1, r4, r0
- lsls r1, 3
- add r1, r9
- ldrh r0, [r1, 0x4]
- adds r0, 0x7
- ldrh r1, [r1, 0x6]
- adds r1, 0x7
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gUnknown_0203CE50
- ldr r0, [r0]
- adds r0, 0x41
- ldrb r0, [r0]
- movs r2, 0xA6
- lsls r2, 2
- cmp r0, 0
- bne _081A89F8
- subs r2, 0x48
-_081A89F8:
- ldr r0, =0x0000024f
- cmp r1, r0
- bls _081A8AD4
- subs r1, r2
- adds r0, r1, 0
- cmp r1, 0
- bge _081A8A08
- adds r0, r1, 0x7
-_081A8A08:
- asrs r2, r0, 3
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _081A8AD4
- ldr r3, [sp]
- cmp r0, r3
- bne _081A8AD4
- lsls r0, r2, 3
- subs r0, r1, r0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bhi _081A8AD4
- movs r1, 0
- movs r2, 0
- cmp r5, 0x1
- beq _081A8A58
- cmp r5, 0x1
- bgt _081A8A44
- cmp r5, 0
- beq _081A8A4E
- b _081A8AD4
- .pool
-_081A8A44:
- cmp r5, 0x2
- beq _081A8A64
- cmp r5, 0x3
- beq _081A8A70
- b _081A8AD4
-_081A8A4E:
- ldr r7, =gUnknown_08612698
- movs r1, 0x1
- b _081A8A74
- .pool
-_081A8A58:
- ldr r7, =gUnknown_0861269C
- movs r2, 0x1
- b _081A8A74
- .pool
-_081A8A64:
- ldr r7, =gUnknown_086126A0
- movs r1, 0xFF
- b _081A8A74
- .pool
-_081A8A70:
- ldr r7, =gUnknown_086126A4
- movs r2, 0xFF
-_081A8A74:
- mov r3, r8
- adds r0, r4, r3
- lsls r0, 3
- mov r3, r9
- adds r4, r0, r3
- lsls r0, r1, 24
- asrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r4, 0x4]
- lsls r0, r2, 24
- asrs r0, 24
- ldrh r3, [r4, 0x6]
- adds r0, r3
- strh r0, [r4, 0x6]
- ldrb r0, [r4]
- ldr r6, =gSaveBlock1Ptr
- ldr r2, [r6]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _081A8ACC
- mov r0, r8
- adds r1, r5, 0
- bl sub_81A8D60
- ldrb r4, [r4]
- mov r10, r4
- mov r0, r10
- ldr r2, [r6]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- adds r3, r7, 0
- bl ScriptMovement_StartObjectMovementScript
- b _081A8AD4
- .pool
-_081A8ACC:
- mov r0, r8
- adds r1, r5, 0
- bl sub_81A8D94
-_081A8AD4:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x3F
- bhi _081A8AE4
- b _081A89C4
-_081A8AE4:
- mov r0, r10
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A89A0
-
- thumb_func_start sub_81A8AF8
-sub_81A8AF8: @ 81A8AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, =gUnknown_0203CE50
- ldr r2, [r1]
- cmp r2, 0
- bne _081A8B0C
- b _081A8D4A
-_081A8B0C:
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r0, [r0]
- movs r3, 0xA6
- lsls r3, 2
- mov r10, r3
- cmp r0, 0
- bne _081A8B22
- movs r0, 0x94
- lsls r0, 2
- mov r10, r0
-_081A8B22:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r3, 0xC7
- lsls r3, 4
- adds r7, r0, r3
- movs r0, 0
- mov r9, r0
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r9, r0
- bcc _081A8B3C
- b _081A8D4A
-_081A8B3C:
- mov r8, r1
-_081A8B3E:
- mov r1, r8
- ldr r0, [r1]
- mov r2, r9
- lsls r4, r2, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x4]
- adds r0, 0x7
- ldrh r1, [r1, 0x6]
- adds r1, 0x7
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r0, 16
- mov r3, r10
- subs r1, r0, r3
- adds r0, r1, 0
- cmp r1, 0
- bge _081A8B76
- adds r0, r1, 0x7
-_081A8B76:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldrb r1, [r1]
- subs r0, r1
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- blt _081A8B96
- cmp r1, 0x3
- bne _081A8BAC
-_081A8B96:
- movs r0, 0x3
- negs r0, r0
- movs r6, 0
- cmp r1, r0
- bne _081A8BB4
- b _081A8BB2
- .pool
-_081A8BAC:
- movs r6, 0x2
- cmp r1, 0
- ble _081A8BB4
-_081A8BB2:
- movs r6, 0x1
-_081A8BB4:
- ldr r5, =gUnknown_0203CE50
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- bne _081A8BDC
- b _081A8D32
-_081A8BDC:
- ldr r0, =gEventObjects
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r0, 0
- cmp r6, 0
- bne _081A8C9C
- cmp r0, 0x2
- beq _081A8C60
- cmp r0, 0x2
- bgt _081A8C0C
- cmp r0, 0x1
- beq _081A8C30
- b _081A8D32
- .pool
-_081A8C0C:
- cmp r0, 0x3
- beq _081A8C48
- cmp r0, 0x4
- beq _081A8C16
- b _081A8D32
-_081A8C16:
- ldr r3, =gUnknown_086126AE
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x7
- b _081A8C72
- .pool
-_081A8C30:
- ldr r3, =gUnknown_086126A8
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0xA
- b _081A8C72
- .pool
-_081A8C48:
- ldr r3, =gUnknown_086126AA
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x8
- b _081A8C72
- .pool
-_081A8C60:
- ldr r3, =gUnknown_086126AC
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x9
-_081A8C72:
- strb r1, [r0, 0x9]
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl ScriptMovement_StartObjectMovementScript
- b _081A8D32
- .pool
-_081A8C9C:
- cmp r6, 0x1
- bne _081A8D32
- cmp r0, 0x2
- beq _081A8D00
- cmp r0, 0x2
- bgt _081A8CAE
- cmp r0, 0x1
- beq _081A8CD0
- b _081A8D32
-_081A8CAE:
- cmp r1, 0x3
- beq _081A8CE8
- cmp r1, 0x4
- bne _081A8D32
- ldr r3, =gUnknown_086126AA
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x8
- b _081A8D12
- .pool
-_081A8CD0:
- ldr r3, =gUnknown_086126AC
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x9
- b _081A8D12
- .pool
-_081A8CE8:
- ldr r3, =gUnknown_086126AE
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x7
- b _081A8D12
- .pool
-_081A8D00:
- ldr r3, =gUnknown_086126A8
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0xA
-_081A8D12:
- strb r1, [r0, 0x9]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl ScriptMovement_StartObjectMovementScript
-_081A8D32:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r3, r8
- ldr r0, [r3]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r9, r0
- bcs _081A8D4A
- b _081A8B3E
-_081A8D4A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8AF8
-
- thumb_func_start sub_81A8D60
-sub_81A8D60: @ 81A8D60
- push {r4,lr}
- ldr r4, =gUnknown_0203CE50
- ldr r3, [r4]
- adds r2, r3, 0
- adds r2, 0x40
- ldrb r2, [r2]
- lsls r2, 2
- adds r3, r2
- strb r0, [r3, 0x1]
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0
- strb r1, [r2]
- ldr r1, [r4]
- adds r1, 0x40
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8D60
-
- thumb_func_start sub_81A8D94
-sub_81A8D94: @ 81A8D94
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r5, r0, r1
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x4]
- adds r0, 0x7
- ldrh r1, [r1, 0x6]
- adds r1, 0x7
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gUnknown_0203CE50
- ldr r0, [r0]
- adds r0, 0x41
- ldrb r0, [r0]
- movs r1, 0xA6
- lsls r1, 2
- cmp r0, 0
- bne _081A8DDA
- subs r1, 0x48
-_081A8DDA:
- subs r1, r2, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _081A8DE4
- adds r0, r1, 0x7
-_081A8DE4:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- subs r0, r6
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- blt _081A8DFC
- cmp r1, 0x3
- bne _081A8E08
-_081A8DFC:
- movs r2, 0
- b _081A8E1A
- .pool
-_081A8E08:
- cmp r1, 0
- bgt _081A8E14
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _081A8E18
-_081A8E14:
- movs r2, 0x1
- b _081A8E1A
-_081A8E18:
- movs r2, 0x2
-_081A8E1A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- adds r3, r0, 0
- cmp r2, 0
- bne _081A8E4C
- cmp r0, 0x8
- beq _081A8E72
- cmp r0, 0x8
- bgt _081A8E38
- cmp r0, 0x7
- beq _081A8E48
- b _081A8E76
-_081A8E38:
- cmp r0, 0x9
- beq _081A8E44
- cmp r0, 0xA
- bne _081A8E76
- movs r0, 0x7
- b _081A8E74
-_081A8E44:
- movs r0, 0x8
- b _081A8E74
-_081A8E48:
- movs r0, 0x9
- b _081A8E74
-_081A8E4C:
- cmp r2, 0x1
- bne _081A8E76
- cmp r0, 0x8
- beq _081A8E6A
- cmp r0, 0x8
- bgt _081A8E5E
- cmp r0, 0x7
- beq _081A8E72
- b _081A8E76
-_081A8E5E:
- cmp r3, 0x9
- beq _081A8E6E
- cmp r3, 0xA
- bne _081A8E76
- movs r0, 0x8
- b _081A8E74
-_081A8E6A:
- movs r0, 0x9
- b _081A8E74
-_081A8E6E:
- movs r0, 0x7
- b _081A8E74
-_081A8E72:
- movs r0, 0xA
-_081A8E74:
- strb r0, [r1, 0x9]
-_081A8E76:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81A8D94
-
- thumb_func_start sub_81A8E7C
-sub_81A8E7C: @ 81A8E7C
- push {lr}
- ldr r1, =gUnknown_08613EE0
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8E7C
-
- thumb_func_start sub_81A8E9C
-sub_81A8E9C: @ 81A8E9C
- push {r4-r6,lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r4, =0x00000ca9
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x00000ca8
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- strh r2, [r0]
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- cmp r5, 0
- beq _081A8EF0
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 6
- b _081A8EFC
- .pool
-_081A8EF0:
- ldr r0, [r3]
- ldr r6, =0x00000cdc
- adds r0, r6
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 5
-_081A8EFC:
- ands r2, r0
- cmp r2, 0
- bne _081A8F14
- ldr r0, [r3]
- lsls r1, r5, 1
- ldr r3, =0x00000e1a
- adds r0, r3
- adds r0, r1
- strh r2, [r0]
- adds r0, r5, 0
- bl sub_81AAA7C
-_081A8F14:
- bl sub_81C4EEC
- ldr r0, =gTrainerBattleOpponent_A
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattleOutcome
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8E9C
-
- thumb_func_start sub_81A8F38
-sub_81A8F38: @ 81A8F38
- push {r4,lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x6
- bls _081A8F54
- b _081A903A
-_081A8F54:
- lsls r0, 2
- ldr r1, =_081A8F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A8F70:
- .4byte _081A8F8C
- .4byte _081A8F9C
- .4byte _081A8FB4
- .4byte _081A8FE4
- .4byte _081A8FF8
- .4byte _081A9010
- .4byte _081A9028
-_081A8F8C:
- ldr r0, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r3, =0x00000e18
- b _081A8FFE
- .pool
-_081A8F9C:
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- lsls r1, r4, 1
- ldr r3, =0x00000e1a
- adds r0, r3
- adds r0, r1
- ldrh r0, [r0]
- b _081A9038
- .pool
-_081A8FB4:
- cmp r4, 0
- beq _081A8FCC
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- b _081A9030
- .pool
-_081A8FCC:
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- ldr r3, =0x00000cdc
- adds r0, r3
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- b _081A9036
- .pool
-_081A8FE4:
- ldr r0, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r2, =0x00000e1a
- adds r1, r2
- b _081A9000
- .pool
-_081A8FF8:
- ldr r0, =gSpecialVar_Result
- ldr r1, [r3]
- ldr r3, =0x00000e1c
-_081A8FFE:
- adds r1, r3
-_081A9000:
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A903A
- .pool
-_081A9010:
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- b _081A9036
- .pool
-_081A9028:
- ldr r2, =gSpecialVar_Result
- ldr r0, [r3]
- ldr r3, =0x00000cdc
- adds r0, r3
-_081A9030:
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
-_081A9036:
- ands r0, r1
-_081A9038:
- strh r0, [r2]
-_081A903A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8F38
-
- thumb_func_start sub_81A9048
-sub_81A9048: @ 81A9048
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r1, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A9098
- cmp r0, 0x1
- bgt _081A9078
- cmp r0, 0
- beq _081A9082
- b _081A9126
- .pool
-_081A9078:
- cmp r0, 0x2
- beq _081A90B0
- cmp r0, 0x7
- beq _081A911C
- b _081A9126
-_081A9082:
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- ldr r3, =0x00000e18
- adds r0, r2, r3
- strh r1, [r0]
- b _081A9126
- .pool
-_081A9098:
- lsls r1, 1
- ldr r3, =0x00000e1a
- adds r0, r2, r3
- adds r0, r1
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A9126
- .pool
-_081A90B0:
- cmp r1, 0
- beq _081A90E4
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A90D0
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 6
- b _081A90F6
- .pool
-_081A90D0:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- ldr r2, =0xffffdfff
- b _081A910C
- .pool
-_081A90E4:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A9104
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 5
-_081A90F6:
- orrs r1, r2
- str r1, [r0]
- b _081A9126
- .pool
-_081A9104:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- ldr r2, =0xffffefff
-_081A910C:
- ands r1, r2
- str r1, [r0]
- b _081A9126
- .pool
-_081A911C:
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- ldr r3, =0x00000e2a
- adds r0, r2, r3
- strb r1, [r0]
-_081A9126:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9048
-
- thumb_func_start sub_81A9134
-sub_81A9134: @ 81A9134
- push {r4,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl save_serialize_map
- movs r0, 0x1
- bl TrySavingData
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9134
-
- thumb_func_start sub_81A917C
-sub_81A917C: @ 81A917C
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0x29
- bls _081A91CC
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08613F34
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, =0x00000e18
- adds r4, r1
- b _081A91EA
- .pool
-_081A91CC:
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08613F28
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r2, =0x00000e18
- adds r4, r2
-_081A91EA:
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A917C
-
- thumb_func_start sub_81A91FC
-sub_81A91FC: @ 81A91FC
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000e18
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081A9244
- ldr r0, [r4]
- ldr r1, =0x00000e18
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000e18
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gSpecialVar_Result
- strh r5, [r0]
- b _081A924A
- .pool
-_081A9244:
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
-_081A924A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A91FC
-
- thumb_func_start sub_81A9254
-sub_81A9254: @ 81A9254
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gSaveBlock2Ptr
-_081A925A:
- bl Random
- ldr r1, [r5]
- lsls r2, r4, 1
- ldr r3, =0x00000e22
- adds r1, r3
- adds r1, r2
- strh r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A925A
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e2a
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9254
-
- thumb_func_start CalculateBattlePyramidItemBallItemId
-CalculateBattlePyramidItemBallItemId: @ 81A9290
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- mov r10, r0
- adds r2, 0x9
- adds r0, r1, r2
- ldrh r0, [r0]
- str r0, [sp]
- mov r2, r10
- lsls r0, r2, 1
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x13
- bls _081A92DE
- movs r0, 0x13
- mov r8, r0
-_081A92DE:
- bl sub_81AA9E4
- lsls r0, 24
- ldr r1, =gSpecialVar_LastTalked
- ldrh r4, [r1]
- ldr r1, =gUnknown_08613650
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x1]
- subs r4, r0
- subs r7, r4, 0x1
- ldr r1, [r5]
- lsrs r0, r7, 31
- adds r0, r7, r0
- asrs r0, 1
- lsls r0, 1
- ldr r2, =0x00000e22
- adds r1, r2
- adds r1, r0
- ldrh r6, [r1]
- adds r0, r6, 0
- bl SeedRng2
- movs r5, 0
- mov r0, r8
- lsls r0, 2
- mov r9, r0
- cmp r5, r4
- bge _081A9332
-_081A9318:
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r5, 0x1
- adds r0, r7, 0x1
- cmp r5, r0
- blt _081A9318
-_081A9332:
- ldr r0, =gUnknown_08613B3A
- ldr r1, [sp]
- adds r0, r1, r0
- ldrb r5, [r0]
- ldr r1, =gUnknown_08613ABC
- ldr r3, =gSpecialVar_0x8000
- ldr r4, =gSpecialVar_0x8001
- cmp r5, 0x3E
- bhi _081A935E
- lsls r2, r5, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r6, r0
- blt _081A935E
- adds r0, r2, r1
-_081A9350:
- adds r0, 0x2
- adds r5, 0x1
- cmp r5, 0x3E
- bhi _081A935E
- ldrb r2, [r0]
- cmp r6, r2
- bge _081A9350
-_081A935E:
- mov r0, r10
- cmp r0, 0
- beq _081A9394
- ldr r2, =gUnknown_0861392C
- b _081A9396
- .pool
-_081A9394:
- ldr r2, =gUnknown_0861379C
-_081A9396:
- lsls r0, r5, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- mov r1, r9
- add r1, r8
- lsls r1, 2
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- movs r0, 0x1
- strh r0, [r4]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CalculateBattlePyramidItemBallItemId
-
- thumb_func_start sub_81A93C8
-sub_81A93C8: @ 81A93C8
- push {r4,r5,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r3, r0, r1
- movs r2, 0
- ldr r4, =gSpecialVar_LastTalked
- b _081A93F4
- .pool
-_081A93E4:
- adds r2, 0x1
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _081A940A
-_081A93F4:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r3
- ldrb r0, [r1]
- ldrh r5, [r4]
- cmp r0, r5
- bne _081A93E4
- ldr r0, =0x00007fff
- strh r0, [r1, 0x4]
- strh r0, [r1, 0x6]
-_081A940A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A93C8
-
- thumb_func_start sub_81A9414
-sub_81A9414: @ 81A9414
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A9414
-
- thumb_func_start sub_81A9424
-sub_81A9424: @ 81A9424
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- movs r7, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0
- mov r8, r1
- ldr r2, =gEventObjects
- ldr r0, =gSelectedEventObject
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- bl sub_81A9AA8
- lsls r0, 16
- lsrs r5, r0, 16
- movs r6, 0
- ldr r2, =gUnknown_08613C1C
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A9488
- ldrb r2, [r2, 0x1]
- mov r9, r2
- b _081A94AE
- .pool
-_081A9488:
- adds r6, 0x1
- cmp r6, 0x31
- bhi _081A94AE
- ldr r4, =gUnknown_08613C1C
- lsls r3, r6, 1
- adds r2, r3, r4
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A9488
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- mov r9, r0
-_081A94AE:
- ldr r3, =gUnknown_08613ED8
- ldr r2, =gEventObjects
- ldr r0, =gSelectedEventObject
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- subs r0, 0x1
- adds r0, r3
- ldrb r0, [r0]
- str r0, [sp]
- movs r6, 0
- mov r3, r9
- lsls r3, 2
- mov r9, r3
-_081A94D0:
- ldr r0, [sp]
- cmp r0, 0x8
- bls _081A94D8
- b _081A95E8
-_081A94D8:
- lsls r0, 2
- ldr r1, =_081A94FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A94FC:
- .4byte _081A9520
- .4byte _081A9530
- .4byte _081A9572
- .4byte _081A95B4
- .4byte _081A95BA
- .4byte _081A95C0
- .4byte _081A95C6
- .4byte _081A95D2
- .4byte _081A95DE
-_081A9520:
- mov r0, sp
- movs r1, 0x8
- movs r2, 0
- bl sub_81A9998
- lsls r0, 24
- lsrs r7, r0, 24
- b _081A95EE
-_081A9530:
- movs r6, 0
- ldr r2, =0x7fff0000
- mov r4, r8
- adds r4, 0x4
- mov r5, r8
- b _081A9560
- .pool
-_081A9540:
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3B
- bne _081A955A
- movs r1, 0
- ldrsh r0, [r4, r1]
- asrs r1, r2, 16
- cmp r0, r1
- beq _081A955A
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- cmp r0, r1
- beq _081A955A
- adds r7, 0x1
-_081A955A:
- adds r4, 0x18
- adds r5, 0x18
- adds r6, 0x1
-_081A9560:
- str r2, [sp, 0x4]
- bl sub_81AAA40
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r0
- blt _081A9540
- b _081A95EE
-_081A9572:
- bl sub_81AA9E4
- lsls r0, 24
- ldr r1, =gUnknown_08613650
- lsrs r0, 20
- adds r0, r1
- ldrb r7, [r0, 0x1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e2a
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gBitTable
- movs r6, 0x7
-_081A958E:
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- beq _081A9598
- subs r7, 0x1
-_081A9598:
- adds r1, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _081A958E
- b _081A95EE
- .pool
-_081A95B4:
- mov r0, sp
- movs r1, 0x8
- b _081A95D6
-_081A95BA:
- mov r0, sp
- movs r1, 0x8
- b _081A95CA
-_081A95C0:
- mov r0, sp
- movs r1, 0x10
- b _081A95D6
-_081A95C6:
- mov r0, sp
- movs r1, 0x10
-_081A95CA:
- movs r2, 0x1
- bl sub_81A9998
- b _081A95E8
-_081A95D2:
- mov r0, sp
- movs r1, 0x18
-_081A95D6:
- movs r2, 0x2
- bl sub_81A9998
- b _081A95E8
-_081A95DE:
- mov r0, sp
- movs r1, 0x18
- movs r2, 0x1
- bl sub_81A9998
-_081A95E8:
- cmp r6, 0
- bne _081A95EE
- b _081A94D0
-_081A95EE:
- ldr r1, =gUnknown_08613EC0
- add r1, r9
- ldr r0, [sp]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9424
-
- thumb_func_start sub_81A9618
-sub_81A9618: @ 81A9618
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r2, r0, 29
- ldr r4, =0x00000e1a
- adds r1, r4
- adds r1, r2
- ldrh r3, [r1]
- ldr r0, =0x000003e6
- cmp r3, r0
- bhi _081A963A
- adds r0, r3, 0x1
- strh r0, [r1]
-_081A963A:
- ldr r0, [r5]
- adds r1, r0, r4
- adds r1, r2
- ldr r3, =0x00000e1e
- adds r0, r3
- adds r0, r2
- ldrh r1, [r1]
- ldrh r2, [r0]
- cmp r1, r2
- bls _081A9650
- strh r1, [r0]
-_081A9650:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9618
-
- thumb_func_start sub_81A966C
-sub_81A966C: @ 81A966C
- push {r4,lr}
- ldr r4, =gSpecialVar_Result
- bl InBattlePyramid
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A966C
-
- thumb_func_start sub_81A9684
-sub_81A9684: @ 81A9684
- push {r4,lr}
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A9698
- cmp r0, 0x1
- beq _081A96B4
- b _081A9754
- .pool
-_081A9698:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000e68
- adds r0, r2
- strb r1, [r0]
- b _081A9754
- .pool
-_081A96B4:
- ldr r4, =gSpecialVar_Result
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _081A9710
- cmp r0, 0x1
- bgt _081A9754
- cmp r0, 0
- bne _081A9754
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081A9754
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e68
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x77
- bls _081A96F4
- movs r0, 0x78
- strb r0, [r1]
- b _081A96FC
- .pool
-_081A96F4:
- ldr r0, =gSpecialVar_0x8007
- ldrh r0, [r0]
- bl PlaySE
-_081A96FC:
- ldr r1, =gSpecialVar_Result
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081A9754
- .pool
-_081A9710:
- ldr r1, =gSpecialVar_0x8005
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A9750
- subs r0, 0x1
- strh r0, [r1]
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r2, =0x00000e68
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x78
- bls _081A973E
- movs r0, 0x78
- strb r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081A973E:
- bl door_upload_tiles
- b _081A9754
- .pool
-_081A9750:
- movs r0, 0x2
- strh r0, [r4]
-_081A9754:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A9684
-
- thumb_func_start sub_81A975C
-sub_81A975C: @ 81A975C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- movs r0, 0x64
- mov r9, r0
- ldr r1, =gPlayerParty
- mov r8, r1
-_081A9776:
- movs r4, 0
- adds r7, r5, 0x1
- mov r6, r9
- muls r6, r5
-_081A977E:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A97A2
- subs r0, 0x1
- cmp r0, r5
- bne _081A97A2
- mov r1, r8
- adds r0, r6, r1
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_081A97A2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A977E
- adds r5, r7, 0
- cmp r5, 0x5
- ble _081A9776
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A975C
-
- thumb_func_start sub_81A97C8
-sub_81A97C8: @ 81A97C8
- push {lr}
- ldr r0, =sub_81A97DC
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A97C8
-
- thumb_func_start sub_81A97DC
-sub_81A97DC: @ 81A97DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081A980C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 5
- ldr r1, =gUnknown_08D856C8
- adds r0, r1
- ldr r1, =gPlttBufferUnfaded + 0xC0
- movs r2, 0x10
- bl CpuSet
- adds r0, r4, 0
- bl DestroyTask
-_081A980C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A97DC
-
- thumb_func_start sub_81A9828
-sub_81A9828: @ 81A9828
- push {lr}
- bl sub_809FDD4
- pop {r0}
- bx r0
- thumb_func_end sub_81A9828
-
- thumb_func_start sub_81A9834
-sub_81A9834: @ 81A9834
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- str r0, [sp]
-_081A9844:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, [sp]
- lsls r1, r2, 1
- ldr r5, =0x00000caa
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- subs r5, r0, 0x1
- movs r0, 0
- str r0, [sp, 0x4]
- movs r2, 0x64
- adds r1, r5, 0
- muls r1, r2
- str r1, [sp, 0x8]
- movs r0, 0x8E
- lsls r0, 2
- adds r6, r1, r0
- movs r1, 0
- str r1, [sp, 0x10]
-_081A986C:
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- ldr r3, =gPlayerParty
- ldr r1, [sp, 0x10]
- adds r0, r1, r3
- movs r1, 0xB
- movs r2, 0
- str r3, [sp, 0x14]
- bl GetMonData
- ldr r3, [sp, 0x14]
- cmp r4, r0
- bne _081A993C
- movs r6, 0
- adds r2, r5, 0x1
- str r2, [sp, 0xC]
- movs r1, 0x64
- adds r0, r5, 0
- muls r0, r1
- movs r5, 0x8E
- lsls r5, 2
- adds r5, r0
- mov r9, r5
- ldr r7, [sp, 0x4]
- muls r7, r1
- mov r10, r3
-_081A98AC:
- movs r5, 0
- adds r0, r6, 0x1
- mov r8, r0
- b _081A98C6
- .pool
-_081A98C4:
- adds r5, 0x1
-_081A98C6:
- cmp r5, 0x3
- bgt _081A98EE
- ldr r1, =gSaveBlock1Ptr
- ldr r0, [r1]
- add r0, r9
- adds r1, r5, 0
- adds r1, 0xD
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r1, r6, 0
- adds r1, 0xD
- mov r2, r10
- adds r0, r7, r2
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _081A98C4
-_081A98EE:
- cmp r5, 0x4
- bne _081A9900
- lsls r2, r6, 24
- lsrs r2, 24
- mov r5, r10
- adds r0, r7, r5
- movs r1, 0xA6
- bl SetMonMoveSlot
-_081A9900:
- mov r6, r8
- cmp r6, 0x3
- ble _081A98AC
- ldr r1, =gSaveBlock1Ptr
- ldr r0, [r1]
- ldr r2, [sp, 0x8]
- adds r0, r2
- movs r5, 0x8E
- lsls r5, 2
- adds r0, r5
- ldr r1, =gPlayerParty
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- movs r2, 0x64
- bl memcpy
- ldr r0, =gUnknown_0203CEF8
- ldr r5, [sp, 0x4]
- adds r0, r5, r0
- mov r1, sp
- ldrb r1, [r1, 0xC]
- strb r1, [r0]
- b _081A994C
- .pool
-_081A993C:
- ldr r2, [sp, 0x10]
- adds r2, 0x64
- str r2, [sp, 0x10]
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x2
- ble _081A986C
-_081A994C:
- ldr r1, [sp]
- adds r1, 0x1
- str r1, [sp]
- cmp r1, 0x2
- bgt _081A9958
- b _081A9844
-_081A9958:
- movs r2, 0
- str r2, [sp]
- ldr r4, =gSaveBlock2Ptr
- ldr r3, =0x00000caa
- ldr r2, =gUnknown_0203CEF8
-_081A9962:
- ldr r1, [r4]
- ldr r5, [sp]
- lsls r0, r5, 1
- adds r1, r3
- adds r1, r0
- adds r0, r5, r2
- ldrb r0, [r0]
- strh r0, [r1]
- adds r5, 0x1
- str r5, [sp]
- cmp r5, 0x2
- ble _081A9962
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9834
-
- thumb_func_start sub_81A9998
-sub_81A9998: @ 81A9998
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r4, 0
- ldr r0, =gUnknown_03005DC0
- ldr r5, [r0, 0x8]
- ldr r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, 0xE
- adds r5, r0
- movs r3, 0
- ldr r0, =0x000003ff
- mov r8, r0
- ldr r1, =0x0000028e
- mov r12, r1
- ldr r0, =gEventObjects
- mov r9, r0
-_081A99CC:
- movs r2, 0
-_081A99CE:
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- cmp r0, r12
- bne _081A9A8A
- adds r2, 0x7
- ldr r0, =gSelectedEventObject
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r5, 0xC
- ldrsh r1, [r0, r5]
- subs r2, r1
- adds r1, r3, 0x7
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- subs r3, r1, r0
- cmp r2, r6
- bge _081A9A0E
- negs r0, r6
- cmp r2, r0
- ble _081A9A0E
- cmp r3, r6
- bge _081A9A0E
- cmp r3, r0
- ble _081A9A0E
- cmp r7, 0
- bne _081A9A84
-_081A9A0E:
- cmp r2, 0
- ble _081A9A34
- cmp r3, 0
- ble _081A9A34
- movs r4, 0x3
- cmp r2, r3
- blt _081A9A7C
- movs r4, 0x2
- b _081A9A7C
- .pool
-_081A9A34:
- cmp r2, 0
- bge _081A9A46
- cmp r3, 0
- bge _081A9A46
- movs r4, 0x1
- cmp r2, r3
- ble _081A9A7C
- movs r4, 0
- b _081A9A7C
-_081A9A46:
- cmp r2, 0
- bne _081A9A54
- movs r4, 0
- cmp r3, 0
- ble _081A9A7C
- movs r4, 0x3
- b _081A9A7C
-_081A9A54:
- cmp r3, 0
- bne _081A9A62
- movs r4, 0x1
- cmp r2, 0
- ble _081A9A7C
- movs r4, 0x2
- b _081A9A7C
-_081A9A62:
- cmp r2, 0
- bge _081A9A72
- adds r0, r2, r3
- movs r4, 0x1
- cmp r0, 0
- ble _081A9A7C
- movs r4, 0x3
- b _081A9A7C
-_081A9A72:
- adds r0, r2, r3
- mvns r0, r0
- asrs r4, r0, 31
- movs r0, 0x2
- ands r4, r0
-_081A9A7C:
- movs r0, 0
- mov r5, r10
- str r0, [r5]
- b _081A9A98
-_081A9A84:
- mov r0, r10
- str r7, [r0]
- b _081A9A98
-_081A9A8A:
- adds r2, 0x1
- cmp r2, 0x1F
- ble _081A99CE
- adds r5, 0x5E
- adds r3, 0x1
- cmp r3, 0x1F
- ble _081A99CC
-_081A9A98:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A9998
-
- thumb_func_start sub_81A9AA8
-sub_81A9AA8: @ 81A9AA8
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- adds r1, r0
- ldr r0, =0x00000cb2
- adds r1, r0
- ldrh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A9AA8
-
- thumb_func_start GetBattlePyramidTrainerFlag
-GetBattlePyramidTrainerFlag: @ 81A9AC4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r1, =0x00000e2a
- adds r2, r1
- ldr r4, =gBitTable
- ldr r3, =gEventObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r1, 0x8]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- ands r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetBattlePyramidTrainerFlag
-
- thumb_func_start sub_81A9B04
-sub_81A9B04: @ 81A9B04
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- bl sub_81A9B44
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _081A9B2E
- movs r0, 0x1
- bl GetChosenApproachingTrainerEventObjectId
- ldr r1, =gSelectedEventObject
- strb r0, [r1]
- ldr r0, =gTrainerBattleOpponent_B
- ldrh r0, [r0]
- bl sub_81A9B44
-_081A9B2E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9B04
-
- thumb_func_start sub_81A9B44
-sub_81A9B44: @ 81A9B44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- movs r3, 0
- ldr r0, =gEventObjects
- mov r12, r0
- ldr r6, =gSelectedEventObject
- ldr r1, =gSaveBlock1Ptr
- mov r10, r1
- ldr r7, =gSaveBlock2Ptr
- mov r9, r7
- ldr r0, =0x00000cb4
- mov r8, r0
- ldr r4, =gBitTable
-_081A9B68:
- mov r1, r9
- ldr r2, [r1]
- lsls r0, r3, 1
- mov r7, r8
- adds r1, r2, r7
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r5
- bne _081A9B86
- ldr r1, =0x00000e2a
- adds r0, r2, r1
- ldr r1, [r4]
- ldrb r2, [r0]
- orrs r1, r2
- strb r1, [r0]
-_081A9B86:
- adds r4, 0x4
- adds r3, 0x1
- cmp r3, 0x7
- ble _081A9B68
- ldrb r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r12
- movs r3, 0x2
- strb r3, [r0, 0x6]
- mov r7, r10
- ldr r2, [r7]
- ldr r0, =gSpecialVar_LastTalked
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- ldr r1, =0x00000c79
- adds r2, r1
- strb r3, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x10]
- strh r1, [r0, 0xC]
- ldrb r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x12]
- strh r1, [r0, 0xE]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9B44
-
- thumb_func_start GenerateBattlePyramidWildMon
-GenerateBattlePyramidWildMon: @ 81A9C04
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- lsls r0, r5, 1
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bls _081A9C3A
- movs r0, 0x13
-_081A9C3A:
- cmp r5, 0
- beq _081A9C54
- ldr r1, =gBattlePyramidOpenLevelWildMonPointers
- b _081A9C56
- .pool
-_081A9C54:
- ldr r1, =gBattlePyramidLevel50WildMonPointers
-_081A9C56:
- lsls r0, 2
- adds r0, r1
- ldr r6, [r0]
- ldr r4, =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- subs r0, 0x1
- str r0, [sp, 0x10]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r6, r2
- adds r0, r4, 0
- movs r1, 0xB
- bl SetMonData
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0]
- mov r0, sp
- bl GetSpeciesName
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl SetMonData
- cmp r5, 0
- beq _081A9CD4
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- subs r5, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x5
- adds r5, r0
- b _081A9CF6
- .pool
-_081A9CD4:
- bl Random
- ldr r2, [sp, 0x10]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r6
- ldrb r4, [r1, 0x2]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x5
- adds r5, r4, r0
-_081A9CF6:
- ldr r4, =gEnemyParty
- ldr r2, =gBaseStats
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- adds r2, r1, 0
- muls r2, r0
- lsls r0, r5, 2
- ldr r1, =gExperienceTables
- adds r0, r1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x3]
- cmp r1, 0
- blt _081A9D4C
- cmp r1, 0x1
- bgt _081A9D4C
- adds r2, r0, 0x3
- b _081A9D7C
- .pool
-_081A9D4C:
- ldr r2, =gBaseStats
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x17]
- cmp r0, 0
- beq _081A9D90
- ldr r4, =gEnemyParty
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0x1
- ands r1, r0
- str r1, [sp, 0xC]
- add r2, sp, 0xC
-_081A9D7C:
- adds r0, r4, 0
- movs r1, 0x2E
- bl SetMonData
- b _081A9D9C
- .pool
-_081A9D90:
- str r0, [sp, 0xC]
- ldr r0, =gEnemyParty
- add r2, sp, 0xC
- movs r1, 0x2E
- bl SetMonData
-_081A9D9C:
- movs r0, 0
- str r0, [sp, 0xC]
- movs r2, 0
- lsls r4, r5, 1
-_081A9DA4:
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- lsls r1, r2, 1
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gEnemyParty
- bl SetMonMoveSlot
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- str r0, [sp, 0xC]
- adds r2, r0, 0
- cmp r2, 0x3
- ble _081A9DA4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e1a
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x8B
- bls _081A9E0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0xF
- str r0, [sp, 0x10]
- movs r0, 0
- str r0, [sp, 0xC]
-_081A9DF6:
- adds r1, r0, 0
- adds r1, 0x27
- ldr r0, =gEnemyParty
- add r2, sp, 0x10
- bl SetMonData
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- str r0, [sp, 0xC]
- cmp r0, 0x5
- ble _081A9DF6
-_081A9E0C:
- ldr r0, =gEnemyParty
- bl CalculateMonStats
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GenerateBattlePyramidWildMon
-
- thumb_func_start sub_81A9E28
-sub_81A9E28: @ 81A9E28
- push {lr}
- bl sub_81AA9E4
- lsls r0, 24
- ldr r1, =gUnknown_08613650
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x4]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A9E28
-
- thumb_func_start InBattlePyramid
-InBattlePyramid: @ 81A9E40
- push {lr}
- ldr r0, =gMapHeader
- ldrh r1, [r0, 0x12]
- ldr r0, =0x00000169
- cmp r1, r0
- bne _081A9E58
- movs r0, 0x1
- b _081A9E66
- .pool
-_081A9E58:
- movs r0, 0xBD
- lsls r0, 1
- cmp r1, r0
- beq _081A9E64
- movs r0, 0
- b _081A9E66
-_081A9E64:
- movs r0, 0x2
-_081A9E66:
- pop {r1}
- bx r1
- thumb_func_end InBattlePyramid
-
- thumb_func_start sub_81A9E6C
-sub_81A9E6C: @ 81A9E6C
- push {lr}
- movs r2, 0
- ldr r0, =gMapHeader
- ldrh r1, [r0, 0x12]
- ldr r0, =0x00000169
- cmp r1, r0
- beq _081A9E80
- adds r0, 0x11
- cmp r1, r0
- bne _081A9E82
-_081A9E80:
- movs r2, 0x1
-_081A9E82:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A9E6C
-
- thumb_func_start sub_81A9E90
-sub_81A9E90: @ 81A9E90
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _081A9EB8
- bl sub_81A9834
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, =0x0000400e
- movs r1, 0
- bl VarSet
- bl LoadPlayerParty
-_081A9EB8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9E90
-
- thumb_func_start sub_81A9EC8
-sub_81A9EC8: @ 81A9EC8
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _081A9ED8
- bl DoSoftReset
-_081A9ED8:
- pop {r0}
- bx r0
- thumb_func_end sub_81A9EC8
-
- thumb_func_start sub_81A9EDC
-sub_81A9EDC: @ 81A9EDC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gFacilityTrainers
- movs r1, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9EDC
-
- thumb_func_start sub_81A9EFC
-sub_81A9EFC: @ 81A9EFC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gFacilityTrainers
- movs r1, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x18
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9EFC
-
- thumb_func_start sub_81A9F1C
-sub_81A9F1C: @ 81A9F1C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gFacilityTrainers
- movs r1, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x24
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9F1C
-
- thumb_func_start GetTrainerEncounterMusicIdInBattlePyramind
-GetTrainerEncounterMusicIdInBattlePyramind: @ 81A9F3C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0
- ldr r3, =gFacilityClassToTrainerClass
- ldr r1, =gFacilityTrainers
- ldr r2, [r1]
- movs r1, 0x34
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- ldrb r2, [r0]
- ldr r1, =gUnknown_08613B44
-_081A9F58:
- ldrb r0, [r1]
- cmp r0, r2
- bne _081A9F70
- ldrb r0, [r1, 0x1]
- b _081A9F7A
- .pool
-_081A9F70:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x35
- bls _081A9F58
- movs r0, 0
-_081A9F7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetTrainerEncounterMusicIdInBattlePyramind
-
- thumb_func_start sub_81A9F80
-sub_81A9F80: @ 81A9F80
- push {lr}
- ldr r0, =BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9F80
-
- thumb_func_start sub_81A9F90
-sub_81A9F90: @ 81A9F90
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r1, =0x00000ca9
- adds r0, r4, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 29
- ldr r2, =0x00000e1a
- adds r0, r4, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =0x00000cb2
- adds r4, r1
- ldrh r1, [r4]
- cmp r1, 0x7
- bne _081AA020
- adds r0, 0x1
- lsls r7, r0, 24
- lsls r1, 24
- mov r8, r1
-_081A9FCC:
- lsrs r0, r7, 24
- mov r2, r8
- lsrs r1, r2, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r5
- bge _081AA004
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _081AA004
- adds r6, r1, 0
-_081A9FF0:
- adds r2, 0x1
- cmp r2, r5
- bge _081AA004
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _081A9FF0
-_081AA004:
- cmp r2, r5
- bne _081A9FCC
- b _081AA062
- .pool
-_081AA020:
- lsls r1, 24
- mov r8, r1
- lsls r7, r0, 24
-_081AA026:
- lsrs r0, r7, 24
- mov r2, r8
- lsrs r1, r2, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r5
- bge _081AA05E
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _081AA05E
- adds r6, r1, 0
-_081AA04A:
- adds r2, 0x1
- cmp r2, r5
- bge _081AA05E
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _081AA04A
-_081AA05E:
- cmp r2, r5
- bne _081AA026
-_081AA062:
- adds r0, r3, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A9F90
-
- thumb_func_start sub_81AA078
-sub_81AA078: @ 81AA078
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0xC]
- bl sub_81AA96C
- mov r4, sp
- adds r4, 0x1
- mov r0, sp
- adds r1, r4, 0
- bl sub_81AA33C
- movs r7, 0
-_081AA0A6:
- ldr r1, [sp, 0xC]
- adds r0, r1, r7
- ldrb r0, [r0]
- ldr r2, =0x00000169
- adds r0, r2
- lsls r0, 2
- ldr r1, =gMapLayouts
- adds r0, r1
- ldr r6, [r0]
- ldr r2, [r6, 0xC]
- mov r10, r2
- ldr r0, [sp, 0x4]
- ldr r1, =gUnknown_03005DC0
- str r0, [r1, 0x8]
- ldr r0, [r6]
- lsls r0, 2
- adds r2, r0, 0
- adds r2, 0xF
- str r2, [r1]
- ldr r0, [r6, 0x4]
- lsls r0, 2
- adds r0, 0xE
- str r0, [r1, 0x4]
- ldr r0, [sp, 0x4]
- mov r9, r0
- adds r1, r7, 0
- cmp r7, 0
- bge _081AA0E0
- adds r1, r7, 0x3
-_081AA0E0:
- asrs r1, 2
- ldr r4, [r6, 0x4]
- adds r0, r1, 0
- muls r0, r4
- adds r0, 0x7
- muls r2, r0
- lsls r1, 2
- subs r1, r7, r1
- ldr r3, [r6]
- adds r0, r1, 0
- muls r0, r3
- adds r0, 0x7
- adds r2, r0
- lsls r2, 1
- add r9, r2
- movs r1, 0
- mov r8, r1
- adds r2, r7, 0x1
- str r2, [sp, 0x10]
- cmp r8, r4
- bge _081AA1B6
-_081AA10A:
- movs r0, 0
- mov r12, r0
- mov r1, r8
- adds r1, 0x1
- str r1, [sp, 0x14]
- cmp r12, r3
- bge _081AA1A2
- ldr r2, =gSaveBlock1Ptr
- str r2, [sp, 0x18]
- mov r4, r9
- mov r5, r10
-_081AA120:
- ldrh r1, [r5]
- ldr r0, =0x000003ff
- ands r0, r1
- ldr r2, =0x0000028e
- cmp r0, r2
- bne _081AA194
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r7, r0
- beq _081AA194
- mov r0, sp
- ldrb r0, [r0]
- cmp r7, r0
- bne _081AA164
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bne _081AA164
- ldr r2, [sp, 0x18]
- ldr r3, [r2]
- adds r2, r7, 0
- cmp r7, 0
- bge _081AA14E
- adds r2, r7, 0x3
-_081AA14E:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r7, r1
- ldr r0, [r6]
- muls r0, r1
- add r0, r12
- strh r0, [r3]
- ldr r0, [r6, 0x4]
- muls r0, r2
- add r0, r8
- strh r0, [r3, 0x2]
-_081AA164:
- ldrh r0, [r5]
- movs r1, 0xFC
- lsls r1, 8
- ands r1, r0
- ldr r2, =0x0000028d
- adds r0, r2, 0
- orrs r1, r0
- strh r1, [r4]
- ldr r3, [r6]
- b _081AA196
- .pool
-_081AA194:
- strh r1, [r4]
-_081AA196:
- adds r4, 0x2
- adds r5, 0x2
- movs r0, 0x1
- add r12, r0
- cmp r12, r3
- blt _081AA120
-_081AA1A2:
- lsls r0, r3, 3
- adds r0, 0x1E
- add r9, r0
- lsls r0, r3, 1
- add r10, r0
- ldr r1, [sp, 0x14]
- mov r8, r1
- ldr r0, [r6, 0x4]
- cmp r8, r0
- blt _081AA10A
-_081AA1B6:
- ldr r7, [sp, 0x10]
- cmp r7, 0xF
- bgt _081AA1BE
- b _081AA0A6
-_081AA1BE:
- bl mapheader_run_script_with_tag_x1
- ldr r0, [sp, 0xC]
- bl Free
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA078
-
- thumb_func_start sub_81AA1D8
-sub_81AA1D8: @ 81AA1D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r5, 0
- mov r6, sp
- adds r6, 0x1
- add r0, sp, 0x4
- mov r8, r0
- ldr r4, =gSaveBlock2Ptr
- ldr r3, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r2, r0, 0
-_081AA1F2:
- ldr r0, [r4]
- lsls r1, r5, 1
- adds r0, r3
- adds r0, r1
- ldrh r1, [r0]
- orrs r1, r2
- strh r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _081AA1F2
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, sp
- adds r1, r6, 0
- bl sub_81AA33C
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0xC7
- lsls r0, 4
- adds r1, r0
- ldr r2, =0x05000180
- mov r0, r8
- bl CpuSet
- movs r5, 0
-_081AA22E:
- cmp r5, 0
- bne _081AA254
- ldr r1, =gUnknown_08613650
- lsls r0, r7, 4
- adds r0, r1
- ldrb r0, [r0, 0x3]
- b _081AA25C
- .pool
-_081AA254:
- ldr r1, =gUnknown_08613650
- lsls r0, r7, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
-_081AA25C:
- cmp r0, 0x4
- bhi _081AA2E4
- lsls r0, 2
- ldr r1, =_081AA274
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AA274:
- .4byte _081AA288
- .4byte _081AA292
- .4byte _081AA2A2
- .4byte _081AA2B0
- .4byte _081AA2CC
-_081AA288:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_81AA398
- b _081AA2E4
-_081AA292:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_81AA4D8
- b _081AA2BE
-_081AA2A2:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_81AA4D8
- b _081AA2BE
-_081AA2B0:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_81AA648
-_081AA2BE:
- lsls r0, 24
- cmp r0, 0
- beq _081AA2E4
- adds r0, r4, 0
- bl sub_81AA398
- b _081AA2E4
-_081AA2CC:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_81AA648
- lsls r0, 24
- cmp r0, 0
- beq _081AA2E4
- adds r0, r4, 0
- bl sub_81AA398
-_081AA2E4:
- adds r5, 0x1
- cmp r5, 0x1
- ble _081AA22E
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA1D8
-
- thumb_func_start sub_81AA2F8
-sub_81AA2F8: @ 81AA2F8
- push {r4,r5,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r5, =BattleFrontier_BattlePyramidEmptySquare_EventScript_252C4F
- ldr r4, =BattleFrontier_BattlePyramidEmptySquare_EventScript_252C6A
- movs r2, 0xC8
- lsls r2, 4
- adds r1, r0, r2
- movs r3, 0xC7
- lsls r3, 4
- adds r2, r0, r3
- movs r3, 0x3F
-_081AA310:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x3B
- beq _081AA328
- str r5, [r1]
- b _081AA32A
- .pool
-_081AA328:
- str r4, [r1]
-_081AA32A:
- adds r1, 0x18
- adds r2, 0x18
- subs r3, 0x1
- cmp r3, 0
- bge _081AA310
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA2F8
-
- thumb_func_start sub_81AA33C
-sub_81AA33C: @ 81AA33C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000e28
- adds r0, r1, r2
- ldrh r2, [r0]
- movs r3, 0xF
- ands r2, r3
- strb r2, [r4]
- ldr r7, =0x00000e22
- adds r1, r7
- ldrh r0, [r1]
- ands r0, r3
- strb r0, [r6]
- cmp r2, r0
- bne _081AA386
- ldr r1, [r5]
- ldr r2, =0x00000e28
- adds r0, r1, r2
- ldrh r2, [r0]
- adds r3, r2, 0x1
- adds r0, r3, 0
- asrs r0, 4
- lsls r0, 4
- subs r0, r3, r0
- strb r0, [r4]
- adds r0, r1, r7
- ldrh r1, [r0]
- adds r2, r1, 0
- adds r2, 0xF
- adds r0, r2, 0
- asrs r0, 4
- lsls r0, 4
- subs r0, r2, r0
- strb r0, [r6]
-_081AA386:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AA33C
-
- thumb_func_start sub_81AA398
-sub_81AA398: @ 81AA398
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r5, 0
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0x8]
- bl sub_81AA96C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e26
- adds r0, r1
- ldrh r4, [r0]
- movs r0, 0xF
- ands r4, r0
- ldr r0, [sp]
- cmp r0, 0
- bne _081AA3F0
- ldr r1, =gUnknown_08613650
- lsls r0, r6, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0x4]
- b _081AA3FE
- .pool
-_081AA3F0:
- ldr r1, =gUnknown_08613650
- lsls r0, r6, 4
- adds r0, r1
- ldrb r1, [r0]
- mov r10, r1
- ldrb r0, [r0, 0x1]
- str r0, [sp, 0x4]
-_081AA3FE:
- movs r0, 0
- mov r8, r0
- cmp r8, r10
- bge _081AA4C0
-_081AA406:
- movs r1, 0x1
- add r1, r8
- mov r9, r1
- b _081AA42E
- .pool
-_081AA414:
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r3, [sp, 0x4]
- add r3, r8
- lsls r3, 24
- lsrs r3, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x8]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA4B6
-_081AA42E:
- ldr r0, =gBitTable
- mov r12, r0
- ldr r6, =gSaveBlock2Ptr
- ldr r7, =0x00000e28
- movs r3, 0x2
- lsls r0, r4, 2
- mov r1, r12
- adds r2, r0, r1
-_081AA43E:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _081AA464
- ldr r0, [r6]
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _081AA474
- b _081AA472
- .pool
-_081AA464:
- ldr r0, [r6]
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _081AA474
-_081AA472:
- orrs r5, r3
-_081AA474:
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, 0xF
- ble _081AA480
- mov r2, r12
- movs r4, 0
-_081AA480:
- ldr r0, [r6]
- ldr r1, =0x00000e26
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0xF
- ands r1, r0
- cmp r4, r1
- bne _081AA4A6
- movs r1, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _081AA4A4
- movs r0, 0x6
- orrs r5, r0
- b _081AA4A6
- .pool
-_081AA4A4:
- orrs r5, r1
-_081AA4A6:
- adds r0, r5, 0
- ands r0, r3
- cmp r0, 0
- beq _081AA43E
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _081AA414
-_081AA4B6:
- movs r0, 0x1
- ands r5, r0
- mov r8, r9
- cmp r8, r10
- blt _081AA406
-_081AA4C0:
- ldr r0, [sp, 0x8]
- bl Free
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA398
-
- thumb_func_start sub_81AA4D8
-sub_81AA4D8: @ 81AA4D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r6, 0
- movs r7, 0
- movs r0, 0
- str r0, [sp, 0xC]
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0x14]
- bl sub_81AA96C
- ldr r1, [sp]
- cmp r1, 0
- bne _081AA524
- ldr r1, =gUnknown_08613650
- lsls r0, r4, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- str r0, [sp, 0x10]
- movs r0, 0
- b _081AA530
- .pool
-_081AA524:
- ldr r1, =gUnknown_08613650
- lsls r0, r4, 4
- adds r0, r1
- ldrb r2, [r0]
- str r2, [sp, 0x10]
- ldrb r0, [r0, 0x1]
-_081AA530:
- movs r3, 0
- str r3, [sp, 0x8]
- ldr r1, [sp, 0x10]
- asrs r1, 31
- str r1, [sp, 0x18]
- ldr r2, [sp, 0x10]
- cmp r3, r2
- bge _081AA622
- str r0, [sp, 0x1C]
- adds r3, r0, 0
- lsls r3, 24
- mov r9, r3
-_081AA548:
- cmp r7, 0
- bne _081AA56E
- mov r0, r9
- lsrs r3, r0, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x4]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA568
- movs r7, 0x1
- b _081AA56E
- .pool
-_081AA568:
- ldr r1, [sp, 0xC]
- adds r1, 0x1
- str r1, [sp, 0xC]
-_081AA56E:
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _081AA600
- ldr r2, =gUnknown_08613F46
- mov r8, r2
- ldr r3, [sp, 0x4]
- lsls r4, r3, 2
- adds r0, r6, r4
- add r0, r8
- ldrb r2, [r0]
- mov r0, r9
- lsrs r3, r0, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x14]
- bl sub_81AA760
- lsls r0, 24
- ldr r1, [sp, 0x1C]
- mov r10, r1
- adds r5, r4, 0
- cmp r0, 0
- beq _081AA5E8
- ldr r4, [sp, 0xC]
- adds r4, 0x1
- b _081AA5C2
- .pool
-_081AA5A8:
- adds r0, r6, r5
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r10
- lsls r3, r0, 24
- lsrs r3, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x14]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA5E0
-_081AA5C2:
- adds r6, 0x1
- ldr r0, =gUnknown_08613F46
- adds r1, r6, r5
- adds r1, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _081AA5D6
- cmp r6, 0x3
- ble _081AA5D8
-_081AA5D6:
- movs r6, 0
-_081AA5D8:
- adds r7, 0x2
- asrs r0, r7, 1
- cmp r0, 0x4
- bne _081AA5A8
-_081AA5E0:
- str r4, [sp, 0xC]
- b _081AA600
- .pool
-_081AA5E8:
- adds r6, 0x1
- adds r0, r6, r4
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _081AA5F8
- cmp r6, 0x3
- ble _081AA5FA
-_081AA5F8:
- movs r6, 0
-_081AA5FA:
- ldr r1, [sp, 0xC]
- adds r1, 0x1
- str r1, [sp, 0xC]
-_081AA600:
- asrs r0, r7, 1
- cmp r0, 0x4
- beq _081AA622
- movs r0, 0x1
- ands r7, r0
- ldr r2, [sp, 0x1C]
- adds r2, 0x1
- str r2, [sp, 0x1C]
- movs r3, 0x80
- lsls r3, 17
- add r9, r3
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- cmp r0, r1
- blt _081AA548
-_081AA622:
- movs r1, 0
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x18]
- subs r0, r2, r3
- asrs r0, 1
- ldr r2, [sp, 0xC]
- cmp r0, r2
- ble _081AA634
- movs r1, 0x1
-_081AA634:
- adds r0, r1, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA4D8
-
- thumb_func_start sub_81AA648
-sub_81AA648: @ 81AA648
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r6, r1, 24
- movs r4, 0
- movs r7, 0
- movs r0, 0
- mov r8, r0
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0x8]
- bl sub_81AA96C
- ldr r1, [sp]
- cmp r1, 0
- bne _081AA694
- ldr r1, =gUnknown_08613650
- lsls r0, r5, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- mov r10, r0
- movs r0, 0
- b _081AA6A0
- .pool
-_081AA694:
- ldr r1, =gUnknown_08613650
- lsls r0, r5, 4
- adds r0, r1
- ldrb r2, [r0]
- mov r10, r2
- ldrb r0, [r0, 0x1]
-_081AA6A0:
- movs r3, 0
- str r3, [sp, 0x4]
- mov r1, r10
- asrs r1, 31
- str r1, [sp, 0xC]
- cmp r3, r10
- bge _081AA73E
- ldr r2, =gUnknown_08613F46
- mov r9, r2
- lsls r5, r6, 2
- lsls r6, r0, 24
-_081AA6B6:
- adds r0, r4, r5
- add r0, r9
- ldrb r2, [r0]
- lsrs r3, r6, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x8]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA714
- adds r7, 0x1
- b _081AA6EE
- .pool
-_081AA6D8:
- adds r0, r4, r5
- adds r0, r1
- ldrb r2, [r0]
- lsrs r3, r6, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x8]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA728
-_081AA6EE:
- adds r4, 0x1
- adds r0, r4, r5
- add r0, r9
- ldrb r0, [r0]
- ldr r1, =gUnknown_08613F46
- cmp r0, 0xFF
- beq _081AA700
- cmp r4, 0x3
- ble _081AA702
-_081AA700:
- movs r4, 0
-_081AA702:
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x4
- bne _081AA6D8
- b _081AA728
- .pool
-_081AA714:
- adds r4, 0x1
- adds r0, r4, r5
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _081AA724
- cmp r4, 0x3
- ble _081AA726
-_081AA724:
- movs r4, 0
-_081AA726:
- adds r7, 0x1
-_081AA728:
- mov r1, r8
- cmp r1, 0x4
- beq _081AA73E
- movs r2, 0x80
- lsls r2, 17
- adds r6, r2
- ldr r3, [sp, 0x4]
- adds r3, 0x1
- str r3, [sp, 0x4]
- cmp r3, r10
- blt _081AA6B6
-_081AA73E:
- movs r1, 0
- mov r2, r10
- ldr r3, [sp, 0xC]
- subs r0, r2, r3
- asrs r0, 1
- cmp r0, r7
- ble _081AA74E
- movs r1, 0x1
-_081AA74E:
- adds r0, r1, 0
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA648
-
- thumb_func_start sub_81AA760
-sub_81AA760: @ 81AA760
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e22
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AA7D0
- movs r6, 0x7
-_081AA792:
- movs r4, 0x7
- lsls r5, r6, 24
-_081AA796:
- lsls r1, r4, 24
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- lsrs r2, r5, 24
- mov r3, r10
- bl sub_81AA810
- lsls r0, 24
- cmp r0, 0
- beq _081AA7CC
- subs r4, 0x1
- cmp r4, 0
- bge _081AA796
- subs r6, 0x1
- movs r1, 0x1
- negs r1, r1
- cmp r6, r1
- bgt _081AA792
- b _081AA7FC
- .pool
-_081AA7CC:
- movs r0, 0
- b _081AA7FE
-_081AA7D0:
- movs r6, 0
-_081AA7D2:
- movs r4, 0
- lsls r5, r6, 24
-_081AA7D6:
- lsls r1, r4, 24
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- lsrs r2, r5, 24
- mov r3, r10
- bl sub_81AA810
- lsls r0, 24
- cmp r0, 0
- beq _081AA7CC
- adds r4, 0x1
- cmp r4, 0x7
- ble _081AA7D6
- adds r6, 0x1
- cmp r6, 0x7
- ble _081AA7D2
-_081AA7FC:
- movs r0, 0x1
-_081AA7FE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA760
-
- thumb_func_start sub_81AA810
-sub_81AA810: @ 81AA810
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsls r5, 24
- lsrs r6, r5, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0, r1
- str r1, [sp, 0x8]
- add r3, r10
- ldrb r1, [r3]
- adds r1, 0x2C
- movs r0, 0x19
- bl Overworld_GetMapHeaderByGroupAndId
- adds r5, r0, 0
- movs r7, 0
- ldr r1, [r5, 0x4]
- ldrb r2, [r1]
- cmp r7, r2
- bge _081AA95A
- movs r0, 0x3
- ands r0, r4
- lsls r0, 3
- str r0, [sp, 0xC]
-_081AA868:
- ldr r1, [r1, 0x4]
- lsls r2, r7, 1
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x4
- ldrsh r0, [r3, r4]
- ldr r1, [r5, 0x4]
- mov r12, r1
- mov r9, r2
- ldr r2, [sp, 0x4]
- cmp r0, r2
- bne _081AA950
- movs r4, 0x6
- ldrsh r0, [r3, r4]
- cmp r0, r8
- bne _081AA950
- ldr r0, [sp]
- cmp r0, 0
- bne _081AA896
- ldrb r0, [r3, 0x1]
- cmp r0, 0x3B
- bne _081AA8A2
-_081AA896:
- ldr r1, [sp]
- cmp r1, 0x1
- bne _081AA950
- ldrb r0, [r3, 0x1]
- cmp r0, 0x3B
- bne _081AA950
-_081AA8A2:
- movs r3, 0
- ldr r2, [r5, 0x4]
- mov r12, r2
- cmp r3, r6
- bge _081AA8DC
- ldr r4, [sp, 0x4]
- ldr r0, [sp, 0xC]
- adds r4, r0
- str r4, [sp, 0x10]
- mov r1, r10
- lsrs r0, r1, 2
- lsls r0, 3
- mov r2, r8
- adds r1, r2, r0
- ldr r2, [sp, 0x8]
- adds r2, 0x4
-_081AA8C2:
- movs r4, 0
- ldrsh r0, [r2, r4]
- ldr r4, [sp, 0x10]
- cmp r0, r4
- bne _081AA8D4
- movs r4, 0x2
- ldrsh r0, [r2, r4]
- cmp r0, r1
- beq _081AA8DC
-_081AA8D4:
- adds r2, 0x18
- adds r3, 0x1
- cmp r3, r6
- blt _081AA8C2
-_081AA8DC:
- cmp r3, r6
- bne _081AA950
- lsls r0, r6, 1
- mov r8, r0
- adds r0, r6
- lsls r0, 3
- ldr r1, [sp, 0x8]
- adds r5, r0, r1
- mov r3, r12
- ldr r2, [r3, 0x4]
- mov r4, r9
- adds r1, r4, r7
- lsls r1, 3
- adds r0, r5, 0
- adds r1, r2
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldrh r0, [r5, 0x4]
- ldr r1, [sp, 0xC]
- adds r0, r1
- strh r0, [r5, 0x4]
- mov r2, r10
- lsrs r0, r2, 2
- lsls r0, 3
- ldrh r3, [r5, 0x6]
- adds r0, r3
- strh r0, [r5, 0x6]
- adds r0, r6, 0x1
- strb r0, [r5]
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3B
- beq _081AA940
- adds r0, r6, 0
- bl sub_81A9F90
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, r7, 0
- adds r0, r4, 0
- bl sub_81627A4
- strb r0, [r5, 0x1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb4
- adds r0, r1
- add r0, r8
- strh r4, [r0]
-_081AA940:
- movs r0, 0
- b _081AA95C
- .pool
-_081AA950:
- adds r7, 0x1
- mov r1, r12
- ldrb r2, [r1]
- cmp r7, r2
- blt _081AA868
-_081AA95A:
- movs r0, 0x1
-_081AA95C:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA810
-
- thumb_func_start sub_81AA96C
-sub_81AA96C: @ 81AA96C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e22
- adds r1, r0, r2
- ldrh r4, [r1]
- ldr r1, =0x00000e24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- orrs r4, r0
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r2, =gUnknown_08613650+0x5
- mov r12, r2
- movs r7, 0x7
-_081AA994:
- adds r2, r6, r3
- adds r0, r4, 0
- ands r0, r7
- lsls r1, r5, 4
- adds r0, r1
- add r0, r12
- ldrb r0, [r0]
- strb r0, [r2]
- asrs r4, 3
- cmp r3, 0x7
- bne _081AA9C0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000e26
- adds r0, r1, r2
- ldrh r4, [r0]
- ldr r0, =0x00000e28
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 16
- orrs r4, r0
- asrs r4, 8
-_081AA9C0:
- adds r3, 0x1
- cmp r3, 0xF
- ble _081AA994
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AA96C
-
- thumb_func_start sub_81AA9E4
-sub_81AA9E4: @ 81AA9E4
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r1, =0x00000e28
- adds r0, r4, r1
- ldrh r0, [r0]
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =0x00000cb2
- adds r4, r0
- ldrh r0, [r4]
- ldr r1, =gUnknown_08613794
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x21
- bhi _081AAA38
- ldr r1, =gUnknown_08613750
- lsls r0, r2, 1
- adds r0, r1
-_081AAA10:
- ldrb r1, [r0]
- cmp r3, r1
- bge _081AAA30
- ldrb r0, [r0, 0x1]
- b _081AAA3A
- .pool
-_081AAA30:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x21
- bls _081AAA10
-_081AAA38:
- movs r0, 0
-_081AAA3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA9E4
-
- thumb_func_start sub_81AAA40
-sub_81AAA40: @ 81AAA40
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r2, r0, r1
- movs r1, 0
- movs r3, 0xC7
- lsls r3, 4
- adds r0, r3
- b _081AAA6E
- .pool
-_081AAA5C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _081AAA74
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
-_081AAA6E:
- ldrb r0, [r0]
- cmp r0, 0
- bne _081AAA5C
-_081AAA74:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_81AAA40
-
- thumb_func_start sub_81AAA7C
-sub_81AAA7C: @ 81AAA7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r1, =gSaveBlock2Ptr
- mov r8, r1
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0
- mov r12, r0
- lsls r4, r1, 1
- ldr r7, =0x00000e2c
- movs r6, 0
- ldr r5, =0x00000e54
- lsls r2, r1, 2
-_081AAA9E:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, r7
- adds r1, r2
- strh r6, [r1]
- adds r1, r3, r4
- adds r0, r5
- adds r0, r1
- mov r1, r12
- strb r1, [r0]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x9
- ble _081AAA9E
- movs r0, 0x15
- movs r1, 0x1
- bl AddPyramidBagItem
- movs r0, 0x22
- movs r1, 0x1
- bl AddPyramidBagItem
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AAA7C
-
- thumb_func_start GetBattlePyramidPickupItemId
-GetBattlePyramidPickupItemId: @ 81AAAE0
- push {r4-r6,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- lsls r0, r6, 1
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- ble _081AAB0A
- movs r4, 0x13
-_081AAB0A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, =gUnknown_08613F86
- ldrb r0, [r3]
- lsls r5, r4, 2
- cmp r0, r2
- bgt _081AAB36
-_081AAB28:
- adds r1, 0x1
- cmp r1, 0x9
- bhi _081AAB3A
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- ble _081AAB28
-_081AAB36:
- cmp r1, 0x9
- bls _081AAB3C
-_081AAB3A:
- movs r1, 0x9
-_081AAB3C:
- cmp r6, 0
- bne _081AAB58
- ldr r2, =gUnknown_0861379C
- b _081AAB5A
- .pool
-_081AAB58:
- ldr r2, =gUnknown_0861392C
-_081AAB5A:
- lsls r1, 1
- adds r0, r5, r4
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetBattlePyramidPickupItemId
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_intro.s b/asm/battle_intro.s
new file mode 100644
index 000000000..04a0301ce
--- /dev/null
+++ b/asm/battle_intro.s
@@ -0,0 +1,2035 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SetAnimBgAttribute
+SetAnimBgAttribute: @ 811802C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r6, 0x3
+ bls _08118040
+ b _08118132
+_08118040:
+ ldr r0, =gUnknown_0859741A
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ bl GetGpuReg
+ ldr r1, =gUnknown_0203A114
+ strh r0, [r1]
+ cmp r5, 0x6
+ bhi _08118124
+ lsls r0, r5, 2
+ ldr r1, =_08118068
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118068:
+ .4byte _08118084
+ .4byte _08118098
+ .4byte _081180B0
+ .4byte _081180C8
+ .4byte _081180E0
+ .4byte _081180FC
+ .4byte _08118110
+_08118084:
+ ldr r2, =gUnknown_0203A114
+ lsls r3, r4, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ b _08118124
+ .pool
+_08118098:
+ ldr r3, =gUnknown_0203A114
+ movs r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 5
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ b _0811811E
+ .pool
+_081180B0:
+ ldr r3, =gUnknown_0203A114
+ movs r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 6
+ ldrb r2, [r3]
+ movs r0, 0x41
+ negs r0, r0
+ b _081180EE
+ .pool
+_081180C8:
+ ldr r3, =gUnknown_0203A114
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0xD
+ negs r0, r0
+ b _081180EE
+ .pool
+_081180E0:
+ ldr r3, =gUnknown_0203A114
+ movs r0, 0x3
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x4
+ negs r0, r0
+_081180EE:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _08118124
+ .pool
+_081180FC:
+ ldr r2, =gUnknown_0203A114
+ lsls r3, r4, 7
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ b _08118124
+ .pool
+_08118110:
+ ldr r3, =gUnknown_0203A114
+ movs r0, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x20
+ negs r0, r0
+_0811811E:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+_08118124:
+ ldr r0, =gUnknown_0859741A
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_0203A114
+ ldrh r1, [r1]
+ bl SetGpuReg
+_08118132:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetAnimBgAttribute
+
+ thumb_func_start GetAnimBgAttribute
+GetAnimBgAttribute: @ 8118140
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ cmp r2, 0x3
+ bhi _081181C8
+ ldr r0, =gUnknown_0859741E
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl GetGpuReg
+ mov r1, sp
+ strh r0, [r1]
+ cmp r4, 0x6
+ bhi _081181C8
+ lsls r0, r4, 2
+ ldr r1, =_08118174
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118174:
+ .4byte _08118190
+ .4byte _08118198
+ .4byte _081181A0
+ .4byte _081181A8
+ .4byte _081181B0
+ .4byte _081181B8
+ .4byte _081181C0
+_08118190:
+ ldr r0, [sp]
+ lsls r0, 16
+ lsrs r0, 30
+ b _081181CA
+_08118198:
+ ldr r0, [sp]
+ lsls r0, 18
+ lsrs r0, 31
+ b _081181CA
+_081181A0:
+ ldr r0, [sp]
+ lsls r0, 25
+ lsrs r0, 31
+ b _081181CA
+_081181A8:
+ ldr r0, [sp]
+ lsls r0, 28
+ lsrs r0, 30
+ b _081181CA
+_081181B0:
+ ldr r0, [sp]
+ lsls r0, 30
+ lsrs r0, 30
+ b _081181CA
+_081181B8:
+ ldr r0, [sp]
+ lsls r0, 24
+ lsrs r0, 31
+ b _081181CA
+_081181C0:
+ ldr r0, [sp]
+ lsls r0, 19
+ lsrs r0, 27
+ b _081181CA
+_081181C8:
+ movs r0, 0
+_081181CA:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetAnimBgAttribute
+
+ thumb_func_start HandleIntroSlide
+HandleIntroSlide: @ 81181D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, =gBattleTypeFlags
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _08118208
+ ldr r0, =gPartnerTrainerId
+ ldrh r1, [r0]
+ ldr r0, =0x00000c03
+ cmp r1, r0
+ beq _08118208
+ ldr r0, =sub_8118D68
+ b _08118258
+ .pool
+_08118208:
+ ldr r2, [r2]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0811821C
+ ldr r0, =task00_battle_intro_wireless
+ b _08118258
+ .pool
+_0811821C:
+ ldr r0, =0x003f0100
+ ands r0, r2
+ cmp r0, 0
+ beq _08118230
+ ldr r0, =task_battle_intro_anim
+ b _08118258
+ .pool
+_08118230:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r2, r0
+ cmp r2, 0
+ beq _08118250
+ ldr r0, =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08118250
+ movs r4, 0x3
+ ldr r0, =task00_battle_intro_80BC6C8
+ b _08118258
+ .pool
+_08118250:
+ ldr r1, =gUnknown_08597424
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_08118258:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end HandleIntroSlide
+
+ thumb_func_start sub_811828C
+sub_811828C: @ 811828C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_BG1_Y
+ strh r1, [r0]
+ ldr r0, =gBattle_BG2_X
+ strh r1, [r0]
+ ldr r0, =gBattle_BG2_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811828C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 81182EC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x4
+ bls _08118318
+ b _0811852A
+_08118318:
+ lsls r0, 2
+ ldr r1, =_08118330
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118330:
+ .4byte _08118344
+ .4byte _08118374
+ .4byte _0811839C
+ .4byte _081183E4
+ .4byte _08118524
+_08118344:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08118360
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _0811836A
+ .pool
+_08118360:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_0811836A:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _0811852A
+_08118374:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r3, r8
+ adds r1, r0, r3
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811838C
+ b _0811852A
+_0811838C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _0811852A
+_0811839C:
+ ldr r1, =gBattle_WIN0V
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _081183B4
+ b _0811852A
+_081183B4:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, =gIntroSlideFlags
+ ldrh r1, [r2]
+ ldr r0, =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _0811852A
+ .pool
+_081183E4:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ mov r5, r8
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r5, 0xE
+ ldrsh r1, [r2, r5]
+ mov r12, r0
+ cmp r1, 0
+ beq _08118400
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _0811842E
+_08118400:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _08118420
+ ldr r2, =gBattle_BG1_Y
+ ldrh r1, [r2]
+ ldr r0, =0x0000ffb0
+ cmp r1, r0
+ beq _0811842E
+ subs r0, r1, 0x2
+ b _0811842C
+ .pool
+_08118420:
+ ldr r2, =gBattle_BG1_Y
+ ldrh r1, [r2]
+ ldr r0, =0x0000ffc8
+ cmp r1, r0
+ beq _0811842E
+ subs r0, r1, 0x1
+_0811842C:
+ strh r0, [r2]
+_0811842E:
+ ldr r2, =gBattle_WIN0V
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08118442
+ ldr r3, =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_08118442:
+ mov r5, r12
+ adds r0, r5, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0811845A
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_0811845A:
+ movs r3, 0
+ ldr r5, =gScanlineEffect
+ mov r9, r5
+ ldr r7, =gScanlineEffectRegBuffers
+ mov r6, r9
+ adds r5, r1, 0
+_08118466:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _08118466
+ cmp r3, 0x9F
+ bgt _081184AA
+ ldr r7, =gScanlineEffectRegBuffers
+ ldr r6, =gScanlineEffect
+ ldr r1, =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_08118490:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _08118490
+_081184AA:
+ mov r3, r12
+ adds r0, r3, r4
+ lsls r0, 3
+ mov r5, r8
+ adds r1, r0, r5
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ bne _0811852A
+ movs r0, 0x3
+ mov r3, r9
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, =0x0600e000
+ ldr r2, =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _0811852A
+ .pool
+_08118524:
+ adds r0, r4, 0
+ bl sub_811828C
+_0811852A:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_battle_intro_80BC47C
+
+ thumb_func_start task00_battle_intro_80BC6C8
+task00_battle_intro_80BC6C8: @ 8118538
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x3
+ beq _08118578
+ cmp r0, 0x3
+ bgt _08118568
+ cmp r0, 0x2
+ beq _0811856C
+ b _08118580
+ .pool
+_08118568:
+ cmp r0, 0x4
+ bne _08118580
+_0811856C:
+ ldr r1, =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _0811857E
+ .pool
+_08118578:
+ ldr r1, =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x6
+_0811857E:
+ strh r0, [r1]
+_08118580:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ adds r6, r0, 0
+ cmp r1, 0x4
+ bne _081185E4
+ ldr r7, =gBattle_BG1_Y
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081185A6
+ ldr r1, =0x000001ff
+ adds r0, r1
+_081185A6:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _081185C8
+ adds r0, r1, 0x4
+ b _081185CA
+ .pool
+_081185C8:
+ adds r0, r1, 0x6
+_081185CA:
+ strh r0, [r4, 0x14]
+ ldr r2, =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _081185E4
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_081185E4:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _081185F4
+ b _0811881A
+_081185F4:
+ lsls r0, 2
+ ldr r1, =_08118608
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118608:
+ .4byte _0811861C
+ .4byte _0811864C
+ .4byte _08118678
+ .4byte _081186C8
+ .4byte _08118814
+_0811861C:
+ ldr r1, =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08118640
+ strh r3, [r2, 0xC]
+ b _08118644
+ .pool
+_08118640:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_08118644:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0811881A
+_0811864C:
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08118662
+ b _0811881A
+_08118662:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _0811881A
+ .pool
+_08118678:
+ ldr r1, =gBattle_WIN0V
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _08118690
+ b _0811881A
+_08118690:
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, =gIntroSlideFlags
+ ldrh r1, [r2]
+ ldr r0, =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _0811881A
+ .pool
+_081186C8:
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08118708
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08118728
+ ldr r1, =0x00001842
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0xF
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ b _08118728
+ .pool
+_08118708:
+ ldrh r2, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r2
+ cmp r0, 0
+ beq _08118728
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08118728
+ adds r0, r2, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_08118728:
+ ldr r2, =gBattle_WIN0V
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0811873C
+ ldr r3, =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_0811873C:
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08118752
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_08118752:
+ movs r3, 0
+ ldr r0, =gScanlineEffect
+ mov r8, r0
+ ldr r2, =gScanlineEffectRegBuffers
+ mov r12, r2
+ mov r7, r8
+ adds r4, r1, 0
+_08118760:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _08118760
+ cmp r3, 0x9F
+ bgt _081187A4
+ ldr r0, =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, =gScanlineEffect
+ ldr r1, =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_0811878A:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _0811878A
+_081187A4:
+ ldr r1, =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _0811881A
+ movs r0, 0x3
+ mov r3, r8
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, =0x0600e000
+ ldr r2, =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _0811881A
+ .pool
+_08118814:
+ adds r0, r5, 0
+ bl sub_811828C
+_0811881A:
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _08118832
+ ldrh r1, [r1, 0x10]
+ movs r0, 0x52
+ bl SetGpuReg
+_08118832:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 8118844
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gBattle_BG1_X
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _0811886E
+ b _08118A96
+_0811886E:
+ lsls r0, 2
+ ldr r1, =_08118884
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118884:
+ .4byte _08118898
+ .4byte _081188F0
+ .4byte _0811891C
+ .4byte _0811896C
+ .4byte _08118A90
+_08118898:
+ ldr r1, =0x00001842
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r4, =0x00000808
+ movs r0, 0x52
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ strh r4, [r2, 0x10]
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ ldr r1, =0x02000002
+ ands r0, r1
+ cmp r0, 0
+ beq _081188E4
+ movs r0, 0x10
+ b _081188E6
+ .pool
+_081188E4:
+ movs r0, 0x1
+_081188E6:
+ strh r0, [r2, 0xC]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _08118A96
+_081188F0:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08118908
+ b _08118A96
+_08118908:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ b _08118A96
+ .pool
+_0811891C:
+ ldr r1, =gBattle_WIN0V
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _08118934
+ b _08118A96
+_08118934:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, =gIntroSlideFlags
+ ldrh r1, [r2]
+ ldr r0, =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _08118A96
+ .pool
+_0811896C:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r2, r1, r4
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _08118986
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _081189A6
+_08118986:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _081189A6
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081189A6
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_081189A6:
+ ldr r2, =gBattle_WIN0V
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _081189BA
+ ldr r3, =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_081189BA:
+ mov r6, r12
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _081189D0
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_081189D0:
+ movs r3, 0
+ ldr r6, =gScanlineEffect
+ mov r8, r6
+ ldr r7, =gScanlineEffectRegBuffers
+ adds r4, r1, 0
+_081189DA:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _081189DA
+ cmp r3, 0x9F
+ bgt _08118A1E
+ ldr r7, =gScanlineEffectRegBuffers
+ ldr r6, =gScanlineEffect
+ ldr r1, =gTasks
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_08118A04:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _08118A04
+_08118A1E:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _08118A96
+ movs r0, 0x3
+ mov r6, r8
+ strb r0, [r6, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, =0x0600e000
+ ldr r2, =0x05000200
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _08118A96
+ .pool
+_08118A90:
+ adds r0, r5, 0
+ bl sub_811828C
+_08118A96:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _08118AB0
+ ldrh r1, [r1, 0x10]
+ movs r0, 0x52
+ bl SetGpuReg
+_08118AB0:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start task00_battle_intro_wireless
+task00_battle_intro_wireless: @ 8118AC0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ ble _08118B36
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _08118B36
+ ldr r2, =gBattle_BG1_X
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _08118AFE
+ cmp r1, 0x4F
+ bhi _08118B18
+_08118AFE:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, =gBattle_BG2_X
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _08118B36
+ .pool
+_08118B18:
+ str r5, [sp]
+ ldr r1, =0x0600e000
+ ldr r4, =0x05000200
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, =0x0600f000
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_08118B36:
+ ldr r0, =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r9, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _08118B4E
+ b _08118D5A
+_08118B4E:
+ lsls r0, r1, 2
+ ldr r1, =_08118B6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118B6C:
+ .4byte _08118B80
+ .4byte _08118B92
+ .4byte _08118C38
+ .4byte _08118C7C
+ .4byte _08118D54
+_08118B80:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r9
+ movs r1, 0x20
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08118D5A
+_08118B92:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08118BA8
+ b _08118D5A
+_08118BA8:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r4, =gSprites
+ ldr r5, =gBattleStruct
+ ldr r0, [r5]
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r9, r3
+ mov r3, r9
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x7D
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1C
+ adds r1, r4
+ mov r8, r1
+ add r0, r8
+ ldr r6, =sub_8038B74
+ str r6, [r0]
+ adds r3, 0x7E
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r3, r9
+ orrs r2, r3
+ strb r2, [r0, 0x1]
+ ldr r0, [r5]
+ adds r0, 0x7E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ str r6, [r0]
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ ldr r1, =0x00003f06
+ movs r0, 0x4A
+ bl SetGpuReg
+ b _08118D5A
+ .pool
+_08118C38:
+ ldr r1, =gBattle_WIN0V
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _08118C50
+ b _08118D5A
+_08118C50:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r9
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, =gIntroSlideFlags
+ ldrh r1, [r2]
+ ldr r0, =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _08118D5A
+ .pool
+_08118C7C:
+ ldr r2, =gBattle_WIN0V
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08118C90
+ ldr r3, =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_08118C90:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08118CA6
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_08118CA6:
+ movs r3, 0
+ ldr r0, =gScanlineEffect
+ mov r12, r0
+ ldr r2, =gScanlineEffectRegBuffers
+ mov r8, r2
+ mov r7, r12
+ adds r4, r1, 0
+_08118CB4:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _08118CB4
+ cmp r3, 0x9F
+ bgt _08118CF8
+ ldr r0, =gScanlineEffectRegBuffers
+ mov r8, r0
+ ldr r7, =gScanlineEffect
+ ldr r1, =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_08118CDE:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _08118CDE
+_08118CF8:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r9
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08118D5A
+ movs r0, 0x3
+ mov r2, r12
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ b _08118D5A
+ .pool
+_08118D54:
+ adds r0, r6, 0
+ bl sub_811828C
+_08118D5A:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task00_battle_intro_wireless
+
+ thumb_func_start sub_8118D68
+sub_8118D68: @ 8118D68
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0x5
+ bls _08118D86
+ b _08118FB2
+_08118D86:
+ lsls r0, 2
+ ldr r1, =_08118D98
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08118D98:
+ .4byte _08118DB0
+ .4byte _08118DBE
+ .4byte _08118E4C
+ .4byte _08118EA8
+ .4byte _08118F00
+ .4byte _08118FAC
+_08118DB0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x1
+ strh r1, [r0, 0xC]
+ b _08118F84
+_08118DBE:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08118DD4
+ b _08118FB2
+_08118DD4:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, =0x00005c0a
+ movs r0, 0xA
+ bl SetGpuReg
+ ldr r1, =0x00005e0a
+ movs r0, 0xC
+ bl SetGpuReg
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ ldr r2, =0x0000f040
+ adds r0, r2, 0
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r1, 0xF8
+ lsls r1, 6
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f3f
+ movs r0, 0x4A
+ bl SetGpuReg
+ ldr r1, =gBattle_BG0_Y
+ ldr r2, =0x0000ffd0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, =gBattle_BG1_X
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, =gBattle_BG2_X
+ subs r2, 0xC0
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08118FB2
+ .pool
+_08118E4C:
+ ldr r2, =gBattle_WIN0V
+ ldrh r3, [r2]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ adds r1, r3, r0
+ strh r1, [r2]
+ movs r5, 0xFF
+ lsls r5, 8
+ ands r1, r5
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ beq _08118E6E
+ adds r0, r3, 0
+ adds r0, 0xFF
+ strh r0, [r2]
+_08118E6E:
+ ldrh r0, [r2]
+ adds r1, r5, 0
+ ands r1, r0
+ movs r0, 0x80
+ lsls r0, 6
+ cmp r1, r0
+ beq _08118E7E
+ b _08118FB2
+_08118E7E:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r6
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ ldr r2, =gIntroSlideFlags
+ ldrh r1, [r2]
+ ldr r0, =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _08118FB2
+ .pool
+_08118EA8:
+ ldr r3, =gBattle_WIN0V
+ ldrh r2, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ movs r1, 0x98
+ lsls r1, 7
+ cmp r0, r1
+ beq _08118EC2
+ movs r1, 0xFF
+ lsls r1, 2
+ adds r0, r2, r1
+ strh r0, [r3]
+_08118EC2:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r6
+ ldrh r1, [r3, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _08118ED8
+ subs r0, r1, 0x2
+ strh r0, [r3, 0xC]
+_08118ED8:
+ ldr r1, =gBattle_BG1_X
+ ldrh r0, [r3, 0xC]
+ strh r0, [r1]
+ ldr r2, =gBattle_BG2_X
+ negs r1, r0
+ strh r1, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08118FB2
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08118FB2
+ .pool
+_08118F00:
+ ldr r1, =gBattle_BG0_Y
+ ldrh r0, [r1]
+ adds r3, r0, 0x2
+ strh r3, [r1]
+ ldr r1, =gBattle_BG2_Y
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ ldr r5, =gBattle_WIN0V
+ ldrh r2, [r5]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ movs r1, 0xA0
+ lsls r1, 7
+ cmp r0, r1
+ beq _08118F28
+ adds r0, r2, 0
+ adds r0, 0xFF
+ strh r0, [r5]
+_08118F28:
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _08118FB2
+ str r0, [sp]
+ ldr r1, =0x0600e000
+ ldr r2, =0x05000800
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0
+ bl GetGpuReg
+ ldr r1, =0x0000bfff
+ ands r1, r0
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ bl SetBgAttribute
+ movs r1, 0x9C
+ lsls r1, 8
+ movs r0, 0xA
+ bl SetGpuReg
+ movs r1, 0xBC
+ lsls r1, 7
+ movs r0, 0xC
+ bl SetGpuReg
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+_08118F84:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08118FB2
+ .pool
+_08118FAC:
+ adds r0, r4, 0
+ bl sub_811828C
+_08118FB2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8118D68
+
+ thumb_func_start sub_8118FBC
+sub_8118FBC: @ 8118FBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ str r0, [sp]
+ adds r6, r2, 0
+ adds r4, r3, 0
+ ldr r0, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r2, [sp, 0x2C]
+ mov r9, r2
+ ldr r5, [sp, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gMonSpritesGfxPtr
+ ldr r2, [r1]
+ lsls r4, 2
+ adds r2, 0x4
+ adds r2, r4
+ ldr r1, =gBattleMonForms
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r2]
+ adds r0, r1
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r7, 0
+ bl CpuSet
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl LoadBgTiles
+ adds r0, r6, 0
+ adds r0, 0x8
+ cmp r6, r0
+ bge _08119068
+ mov r12, r0
+ mov r2, r8
+ lsls r7, r2, 1
+_0811903A:
+ mov r1, r8
+ adds r2, r1, 0
+ adds r2, 0x8
+ adds r4, r6, 0x1
+ cmp r1, r2
+ bge _08119062
+ mov r0, r10
+ lsls r3, r0, 12
+ lsls r0, r6, 6
+ add r0, r9
+ adds r6, r7, r0
+ subs r1, r2, r1
+_08119052:
+ adds r0, r5, 0
+ orrs r0, r3
+ strh r0, [r6]
+ adds r5, 0x1
+ adds r6, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08119052
+_08119062:
+ adds r6, r4, 0
+ cmp r6, r12
+ blt _0811903A
+_08119068:
+ ldr r1, [sp]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 4
+ mov r1, r9
+ movs r3, 0
+ bl LoadBgTilemap
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8118FBC
+
+ thumb_func_start sub_8119094
+sub_8119094: @ 8119094
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ mov r8, r5
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ mov r7, r8
+ lsls r7, 16
+ lsrs r6, r7, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ lsls r0, 24
+ mov r9, r0
+ ldr r4, =0x040000d4
+ ldr r0, =gMonSpritesGfxPtr
+ ldr r0, [r0]
+ lsrs r2, 22
+ adds r0, 0x4
+ adds r0, r2
+ lsrs r3, 13
+ ldr r0, [r0]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, =0x80000400
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, r7, 0
+ lsrs r2, 21
+ mov r6, r9
+ lsrs r6, 15
+ subs r4, r2, r6
+ lsrs r0, r1, 24
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _08119148
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_08119110:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _08119142
+ mov r1, r10
+ lsls r6, r1, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r7, r8
+ adds r1, r7, r0
+ subs r2, r3, r2
+_08119132:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08119132
+_08119142:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _08119110
+_08119148:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8119094
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
deleted file mode 100644
index ae01e0b5e..000000000
--- a/asm/battle_tower.s
+++ /dev/null
@@ -1,7552 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
-
-
- thumb_func_start sub_81621C0
-sub_81621C0: @ 81621C0
- push {r4,r5,lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0xFA
- lsls r0, 1
- cmp r1, r0
- bne _081621DA
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bec
- adds r0, r1
- bl sub_816534C
-_081621DA:
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000d04
- adds r2, r0, r1
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _081621EE
- adds r0, r1, 0x1
- strh r0, [r2]
-_081621EE:
- ldr r1, [r5]
- ldr r4, =0x00000cb2
- adds r1, r4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl sub_8163E90
- ldr r1, =gSpecialVar_Result
- ldr r0, [r5]
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81621C0
-
- thumb_func_start sub_816222C
-sub_816222C: @ 816222C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- movs r0, 0
- str r0, [sp, 0x24]
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- mov r10, r0
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x2C]
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _08162266
- b _0816239C
-_08162266:
- mov r0, r10
- ldr r1, [sp, 0x2C]
- bl sub_8164FCC
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x28]
- movs r7, 0
- mov r2, sp
- str r2, [sp, 0x34]
-_0816227A:
- movs r3, 0xEC
- adds r0, r7, 0
- muls r0, r3
- movs r4, 0xE7
- lsls r4, 3
- adds r0, r4
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- movs r2, 0
- mov r8, r2
- mov r9, r2
- movs r5, 0
- adds r3, r7, 0x1
- str r3, [sp, 0x30]
- adds r1, r0
-_08162298:
- ldm r1!, {r0}
- mov r4, r8
- orrs r4, r0
- mov r8, r4
- add r9, r0
- adds r5, 0x1
- cmp r5, 0x39
- bls _08162298
- movs r6, 0
- movs r5, 0
- movs r0, 0xEC
- adds r2, r7, 0
- muls r2, r0
-_081622B2:
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- movs r0, 0x2C
- muls r0, r5
- adds r0, r2
- adds r1, r0
- ldr r4, =0x0000076c
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0
- beq _081622E4
- movs r0, 0xEF
- lsls r0, 3
- adds r4, r1, r0
- mov r0, r10
- str r2, [sp, 0x38]
- bl GetFrontierEnemyMonLevel
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x38]
- cmp r1, r0
- bhi _081622E4
- adds r6, 0x1
-_081622E4:
- adds r5, 0x1
- cmp r5, 0x3
- ble _081622B2
- ldr r0, =gUnknown_085DF9F6
- ldr r1, [sp, 0x2C]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r6, r0
- blt _0816233E
- ldr r3, =gSaveBlock2Ptr
- ldr r2, [r3]
- movs r4, 0xEC
- adds r3, r7, 0
- muls r3, r4
- adds r1, r2, r3
- ldr r5, =0x0000073a
- adds r0, r1, r5
- ldrh r0, [r0]
- ldr r4, [sp, 0x28]
- cmp r0, r4
- bne _0816233E
- subs r5, 0x2
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r10
- bne _0816233E
- mov r0, r8
- cmp r0, 0
- beq _0816233E
- movs r1, 0x82
- lsls r1, 4
- adds r0, r2, r1
- adds r0, r3
- ldr r0, [r0]
- cmp r0, r9
- bne _0816233E
- movs r2, 0x96
- lsls r2, 1
- adds r0, r7, r2
- ldr r3, [sp, 0x34]
- stm r3!, {r0}
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x24]
- adds r4, 0x1
- str r4, [sp, 0x24]
-_0816233E:
- ldr r7, [sp, 0x30]
- cmp r7, 0x4
- ble _0816227A
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _08162396
- bl sub_8165B20
- movs r7, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, =gUnknown_085DF9EC
- adds r2, r0, 0
- adds r2, 0xDC
- ldr r1, [sp, 0x24]
- lsls r0, r1, 2
- mov r5, sp
- adds r3, r0, r5
-_08162362:
- ldrb r0, [r2]
- lsls r1, r0, 25
- lsrs r0, r1, 30
- cmp r0, 0
- beq _0816238E
- ldrb r0, [r2, 0x1]
- adds r0, r4
- ldrb r0, [r0]
- ldr r5, [sp, 0x28]
- cmp r0, r5
- bne _0816238E
- lsrs r0, r1, 30
- subs r0, 0x1
- cmp r0, r10
- bne _0816238E
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r7, r1
- stm r3!, {r0}
- ldr r5, [sp, 0x24]
- adds r5, 0x1
- str r5, [sp, 0x24]
-_0816238E:
- adds r2, 0x44
- adds r7, 0x1
- cmp r7, 0x3
- ble _08162362
-_08162396:
- ldr r0, [sp, 0x24]
- cmp r0, 0
- bne _081623C0
-_0816239C:
- movs r0, 0
- b _081623DA
- .pool
-_081623C0:
- ldr r4, =gTrainerBattleOpponent_A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x24]
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4]
- movs r0, 0x1
-_081623DA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_816222C
-
- thumb_func_start sub_81623F0
-sub_81623F0: @ 81623F0
- push {r4-r7,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- bne _08162414
- bl sub_8165E18
- b _08162530
- .pool
-_08162414:
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_81A39C4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
- bl GetFacilityEnemyMonLevel
- subs r4, 0x2
- cmp r4, 0x1
- bhi _08162488
- ldr r1, [r6]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r3, [r0]
- ldr r2, =gTrainerBattleOpponent_A
- lsls r0, r3, 2
- ldr r4, =0x00000cb4
- adds r1, r4
- adds r0, r1, r0
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r4, =gTrainerBattleOpponent_B
- lsls r0, r3, 1
- adds r0, 0x1
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4]
- ldrh r0, [r2]
- movs r1, 0
- bl sub_8162614
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_8162614
- b _08162530
- .pool
-_08162488:
- bl sub_816222C
- lsls r0, 24
- cmp r0, 0
- beq _081624B4
- ldr r4, =gTrainerBattleOpponent_A
- ldrh r0, [r4]
- movs r1, 0
- bl sub_8162614
- ldr r1, [r6]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 1
- adds r2, 0x2
- b _08162528
- .pool
-_081624B4:
- lsls r7, r5, 24
- adds r5, r6, 0
- ldr r6, =0x00000cb2
-_081624BA:
- ldr r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsrs r0, r7, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, [r5]
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r4, r0
- bge _081624FC
- ldr r2, =0x00000cb4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r3
- beq _081624FC
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- subs r2, 0x2
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_081624EE:
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, r2
- bge _081624FC
- ldrh r0, [r1]
- cmp r0, r3
- bne _081624EE
-_081624FC:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _081624BA
- ldr r4, =gTrainerBattleOpponent_A
- strh r3, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r2, [r0]
- adds r0, r2, 0x1
- cmp r0, 0x6
- bgt _08162530
- lsls r0, r2, 1
- ldr r2, =0x00000cb4
-_08162528:
- adds r1, r2
- adds r1, r0
- ldrh r0, [r4]
- strh r0, [r1]
-_08162530:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81623F0
-
- thumb_func_start sub_8162548
-sub_8162548: @ 8162548
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r0, 0x7
- bhi _08162584
- cmp r1, 0x6
- bne _08162570
- ldr r2, =gUnknown_085DFA1A
- lsls r1, r0, 2
- adds r0, r2, 0x2
- adds r0, r1, r0
- adds r1, r2
- ldrh r0, [r0]
- ldrh r4, [r1]
- b _0816258A
- .pool
-_08162570:
- ldr r2, =gUnknown_085DF9FA
- lsls r1, r3, 2
- adds r0, r2, 0x2
- adds r0, r1, r0
- adds r1, r2
- ldrh r0, [r0]
- ldrh r4, [r1]
- b _0816258A
- .pool
-_08162584:
- ldr r1, =gUnknown_085DF9FA
- ldrh r0, [r1, 0x1E]
- ldrh r4, [r1, 0x1C]
-_0816258A:
- subs r0, r4
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- adds r4, r0
- lsls r4, 16
- lsrs r5, r4, 16
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8162548
-
- thumb_func_start sub_81625B4
-sub_81625B4: @ 81625B4
- push {r4,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r0, 0x7
- bhi _081625F4
- cmp r1, 0x6
- bne _081625D4
- ldr r1, =gUnknown_085DFA1A
- lsls r2, r0, 2
- b _081625D8
- .pool
-_081625D4:
- ldr r1, =gUnknown_085DF9FA
- lsls r2, 2
-_081625D8:
- adds r0, r1, 0x2
- adds r0, r2, r0
- adds r2, r1
- ldrh r0, [r0]
- ldrh r1, [r2]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r0, [r2]
- b _08162604
- .pool
-_081625F4:
- ldr r0, =gUnknown_085DF9FA
- ldrh r1, [r0, 0x1E]
- ldrh r2, [r0, 0x1C]
- subs r1, r2
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- ldrh r0, [r0, 0x1C]
-_08162604:
- strh r0, [r4]
- strb r1, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81625B4
-
- thumb_func_start sub_8162614
-sub_8162614: @ 8162614
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162640
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _081626BA
- .pool
-_08162640:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162650
- bl sub_81A4DD8
- b _08162788
- .pool
-_08162650:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _0816266C
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _081626BA
- .pool
-_0816266C:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162698
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _081626BA
- .pool
-_08162698:
- ldr r3, =gApprentices
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r6, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
-_081626BA:
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081626D4
-_081626C6:
- adds r1, 0x1
- cmp r1, 0x1D
- bhi _081626D4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081626C6
-_081626D4:
- cmp r1, 0x1E
- beq _08162700
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- cmp r5, 0x1
- beq _08162744
- cmp r5, 0x1
- ble _0816272E
- cmp r5, 0xF
- bne _0816272E
- b _08162750
- .pool
-_08162700:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08162718
-_0816270A:
- adds r1, 0x1
- cmp r1, 0x13
- bhi _08162718
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _0816270A
-_08162718:
- cmp r1, 0x14
- beq _0816275C
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- cmp r5, 0x1
- beq _08162744
- cmp r5, 0x1
- ble _0816272E
- cmp r5, 0xF
- beq _08162750
-_0816272E:
- ldr r0, =0x00004010
- bl VarSet
- b _08162788
- .pool
-_08162744:
- ldr r0, =0x00004011
- bl VarSet
- b _08162788
- .pool
-_08162750:
- ldr r0, =0x0000401e
- bl VarSet
- b _08162788
- .pool
-_0816275C:
- cmp r5, 0x1
- beq _08162770
- cmp r5, 0x1
- ble _08162768
- cmp r5, 0xF
- beq _08162780
-_08162768:
- ldr r0, =0x00004010
- b _08162772
- .pool
-_08162770:
- ldr r0, =0x00004011
-_08162772:
- movs r1, 0x7
- bl VarSet
- b _08162788
- .pool
-_08162780:
- ldr r0, =0x0000401e
- movs r1, 0x7
- bl VarSet
-_08162788:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8162614
-
- thumb_func_start sub_8162794
-sub_8162794: @ 8162794
- push {lr}
- movs r0, 0xFA
- lsls r0, 1
- movs r1, 0
- bl sub_8162614
- pop {r0}
- bx r0
- thumb_func_end sub_8162794
-
- thumb_func_start sub_81627A4
-sub_81627A4: @ 81627A4
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _081627CC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _08162836
- .pool
-_081627CC:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _081627E8
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _08162836
- .pool
-_081627E8:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162814
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _08162836
- .pool
-_08162814:
- ldr r3, =gApprentices
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
-_08162836:
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _08162850
-_08162842:
- adds r1, 0x1
- cmp r1, 0x1D
- bhi _08162850
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08162842
-_08162850:
- cmp r1, 0x1E
- beq _0816286C
- ldr r0, =gUnknown_085DCF0E
- b _08162892
- .pool
-_0816286C:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08162884
-_08162876:
- adds r1, 0x1
- cmp r1, 0x13
- bhi _08162884
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08162876
-_08162884:
- cmp r1, 0x14
- bne _08162890
- movs r0, 0x7
- b _08162896
- .pool
-_08162890:
- ldr r0, =gUnknown_085DCF2C
-_08162892:
- adds r0, r1, r0
- ldrb r0, [r0]
-_08162896:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81627A4
-
- thumb_func_start sub_81628A0
-sub_81628A0: @ 81628A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- movs r1, 0
- mov r8, r1
- mov r10, r0
- movs r5, 0
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- mov r4, r10
- ldrb r4, [r4, 0xC]
- str r4, [sp, 0x18]
- mov r9, r5
- movs r7, 0x4
- str r7, [sp, 0x1C]
- ldr r1, =0x00000744
- adds r1, r0
- mov r12, r1
-_081628CA:
- movs r6, 0
- movs r3, 0
- mov r2, r12
- ldrb r0, [r2]
- ldr r4, [sp, 0x18]
- cmp r0, r4
- bne _081628FA
- mov r4, r9
- mov r2, r10
- adds r2, 0xC
-_081628DE:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _081628FA
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- adds r1, r3, r4
- ldr r7, =0x00000744
- adds r0, r7
- adds r0, r1
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _081628DE
-_081628FA:
- cmp r3, 0x4
- bne _08162944
- movs r6, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r3, =0x0000073c
- adds r0, r3
- ldr r2, [sp, 0x1C]
- adds r0, r2
- ldrb r0, [r0]
- mov r4, r10
- ldrb r4, [r4, 0x8]
- cmp r0, r4
- bne _08162944
- adds r1, r0, 0
- mov r2, r9
- adds r2, 0x4
-_0816291C:
- cmp r1, 0xFF
- bne _08162930
- movs r6, 0x7
- b _08162944
- .pool
-_08162930:
- adds r6, 0x1
- cmp r6, 0x6
- bgt _08162944
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, r1
- beq _0816291C
-_08162944:
- cmp r6, 0x7
- beq _0816295A
- movs r0, 0xEC
- add r9, r0
- ldr r1, [sp, 0x1C]
- adds r1, 0xEC
- str r1, [sp, 0x1C]
- add r12, r0
- adds r5, 0x1
- cmp r5, 0x4
- ble _081628CA
-_0816295A:
- cmp r5, 0x4
- bgt _08162974
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- movs r1, 0xEC
- muls r1, r5
- adds r0, r1
- movs r4, 0xE7
- lsls r4, 3
- adds r0, r4
- b _081629B2
- .pool
-_08162974:
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- ldr r1, =0x0000073a
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0816299E
- adds r3, r7, 0
- adds r2, r1, 0
- movs r1, 0
-_0816298A:
- adds r1, 0xEC
- adds r5, 0x1
- cmp r5, 0x4
- bgt _081629C4
- ldr r0, [r3]
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _0816298A
-_0816299E:
- cmp r5, 0x4
- bgt _081629C4
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r1, 0xEC
- muls r1, r5
- adds r0, r1
- movs r2, 0xE7
- lsls r2, 3
- adds r0, r2
-_081629B2:
- mov r1, r10
- movs r2, 0xEC
- bl memcpy
- b _08162A8A
- .pool
-_081629C4:
- mov r2, sp
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r3, =0x0000073a
- adds r0, r3
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- add r0, sp, 0xC
- strh r1, [r0]
- movs r7, 0x1
- add r8, r7
- movs r5, 0x1
- add r0, sp, 0xC
- mov r9, r0
- mov r12, r3
-_081629E4:
- movs r3, 0
- adds r7, r5, 0x1
- cmp r3, r8
- bge _08162A2E
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r2, 0xEC
- adds r1, r5, 0
- muls r1, r2
- adds r0, r1
- mov r1, r12
- adds r4, r0, r1
- mov r6, sp
-_081629FE:
- lsls r0, r3, 1
- add r0, sp
- ldrh r2, [r4]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08162A24
- movs r3, 0
- movs r4, 0x1
- mov r8, r4
- strh r2, [r6]
- mov r0, r9
- strh r5, [r0]
- b _08162A2E
- .pool
-_08162A24:
- cmp r1, r0
- bhi _08162A2E
- adds r3, 0x1
- cmp r3, r8
- blt _081629FE
-_08162A2E:
- cmp r3, r8
- bne _08162A54
- mov r1, r8
- lsls r2, r1, 1
- mov r4, sp
- adds r3, r4, r2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r4, 0xEC
- adds r1, r5, 0
- muls r1, r4
- adds r0, r1
- add r0, r12
- ldrh r0, [r0]
- strh r0, [r3]
- add r2, r9
- strh r5, [r2]
- movs r0, 0x1
- add r8, r0
-_08162A54:
- adds r5, r7, 0
- cmp r5, 0x4
- ble _081629E4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- adds r5, r0, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r5, 1
- add r1, sp
- adds r1, 0xC
- ldrh r2, [r1]
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- mov r1, r10
- movs r2, 0xEC
- bl memcpy
-_08162A8A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81628A0
-
- thumb_func_start GetFrontierTrainerFrontSpriteId
-GetFrontierTrainerFrontSpriteId: @ 8162AA0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162AD0
- ldr r1, =gFacilityClassToPicIndex
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08162BC8
- .pool
-_08162AD0:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162AE4
- bl GetFrontierBrainTrainerPicIndex
- lsls r0, 24
- lsrs r0, 24
- b _08162BCA
- .pool
-_08162AE4:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162B08
- ldr r2, =gFacilityClassToPicIndex
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- b _08162BC8
- .pool
-_08162B08:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162B64
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162B38
- ldr r4, =gFacilityClassToPicIndex
- bl sub_818649C
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- b _08162BC8
- .pool
-_08162B38:
- ldr r3, =gFacilityClassToPicIndex
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r2, =0x00000739
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- b _08162BC8
- .pool
-_08162B64:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08162BB0
- ldr r4, =gFacilityClassToPicIndex
- ldr r3, =gApprentices
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r4
- b _08162BC8
- .pool
-_08162BB0:
- ldr r5, =gFacilityClassToPicIndex
- ldr r4, =gApprentices
- bl sub_81864A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r5
-_08162BC8:
- ldrb r0, [r0]
-_08162BCA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFrontierTrainerFrontSpriteId
-
- thumb_func_start GetFrontierOpponentClass
-GetFrontierOpponentClass: @ 8162BD8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162C08
- ldr r1, =gFacilityClassToTrainerClass
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- b _08162C26
- .pool
-_08162C08:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162C1C
- bl GetFrontierBrainTrainerClass
- lsls r0, 24
- lsrs r0, 24
- b _08162D1E
- .pool
-_08162C1C:
- ldr r0, =0x00000c03
- cmp r4, r0
- bne _08162C38
- ldr r0, =gTrainers
- ldr r1, =0x00007da1
-_08162C26:
- adds r0, r1
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162C38:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162C60
- ldr r2, =gFacilityClassToTrainerClass
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162C60:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162CBC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162C90
- ldr r4, =gFacilityClassToTrainerClass
- bl sub_818649C
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162C90:
- ldr r3, =gFacilityClassToTrainerClass
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r2, =0x00000739
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162CBC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162CF4
- ldr r5, =gFacilityClassToTrainerClass
- ldr r4, =gApprentices
- bl sub_81864A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- b _08162D1E
- .pool
-_08162CF4:
- ldr r4, =gFacilityClassToTrainerClass
- ldr r3, =gApprentices
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
- ldrb r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
-_08162D1E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetFrontierOpponentClass
-
- thumb_func_start sub_8162D34
-sub_8162D34: @ 8162D34
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162D5C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _08162E0A
- .pool
-_08162D5C:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162D78
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _08162E0A
- .pool
-_08162D78:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162DC0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162DA0
- bl sub_818649C
- lsls r0, 24
- lsrs r0, 24
- b _08162E0C
- .pool
-_08162DA0:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _08162E0A
- .pool
-_08162DC0:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162DE8
- ldr r4, =gApprentices
- bl sub_81864A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- b _08162E08
- .pool
-_08162DE8:
- ldr r3, =gApprentices
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
-_08162E08:
- adds r0, 0x32
-_08162E0A:
- ldrb r0, [r0]
-_08162E0C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8162D34
-
- thumb_func_start GetFrontierTrainerName
-GetFrontierTrainerName: @ 8162E20
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- bne _08162E54
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xBF
- lsls r1, 4
- adds r2, r0, r1
-_08162E40:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _08162E40
- b _08162F5C
- .pool
-_08162E54:
- ldr r0, =0x000003fe
- cmp r5, r0
- bne _08162E68
- adds r0, r6, 0
- bl CopyFrontierBrainTrainerName
- b _08162F62
- .pool
-_08162E68:
- ldr r0, =0x00000c03
- cmp r5, r0
- bne _08162E88
- ldr r2, =gTrainers + 804 * 0x28 + 0x4 @ TRAINER_STEVEN name
-_08162E70:
- adds r0, r6, r4
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _08162E70
- b _08162F5C
- .pool
-_08162E88:
- ldr r0, =0x0000012b
- cmp r5, r0
- bhi _08162EB4
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0x4
-_08162E9A:
- adds r0, r6, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x6
- ble _08162E9A
- b _08162F5C
- .pool
-_08162EB4:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08162F00
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162ED8
- adds r0, r6, 0
- bl sub_8186468
- b _08162F62
- .pool
-_08162ED8:
- ldr r2, =gSaveBlock2Ptr
- movs r0, 0xEC
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =0xfffef2a8
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r1, r0, 0x4
- adds r0, 0xE4
- ldrb r2, [r0]
- adds r0, r6, 0
- bl TVShowConvertInternationalString
- b _08162F62
- .pool
-_08162F00:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08162F24
- bl sub_81864A8
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81864C0
- lsls r0, 24
- lsrs r4, r0, 24
- b _08162F3E
- .pool
-_08162F24:
- ldr r1, =gSaveBlock2Ptr
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r2, =0xffff969c
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r5, r0, 27
- adds r1, 0x3F
- ldrb r4, [r1]
-_08162F3E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetApprenticeNameInLanguage
- adds r1, r0, 0
- adds r0, r6, 0
- adds r2, r4, 0
- bl TVShowConvertInternationalString
- b _08162F62
- .pool
-_08162F5C:
- adds r1, r6, r4
- movs r0, 0xFF
- strb r0, [r1]
-_08162F62:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end GetFrontierTrainerName
-
- thumb_func_start sub_8162F68
-sub_8162F68: @ 8162F68
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r4, r0
- bne _08162F90
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bed
- adds r0, r1
- b _0816300E
- .pool
-_08162F90:
- ldr r0, =0x000003fe
- cmp r4, r0
- bne _08162FA4
- bl sub_81A4DB8
- lsls r0, 24
- lsrs r0, 24
- b _08163042
- .pool
-_08162FA4:
- ldr r0, =0x0000012b
- cmp r4, r0
- bhi _08162FC0
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- b _0816300E
- .pool
-_08162FC0:
- ldr r0, =0x0000018f
- cmp r4, r0
- bhi _08162FEC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r4, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x00000739
- adds r0, r1
- b _0816300E
- .pool
-_08162FEC:
- ldr r3, =gApprentices
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r5, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x32
-_0816300E:
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08163028
-_0816301A:
- adds r1, 0x1
- cmp r1, 0x13
- bhi _08163028
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _0816301A
-_08163028:
- cmp r1, 0x14
- bne _08163040
- movs r0, 0
- b _08163042
- .pool
-_08163040:
- movs r0, 0x1
-_08163042:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8162F68
-
- thumb_func_start sub_8163048
-sub_8163048: @ 8163048
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ZeroEnemyPartyMons
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- adds r2, r4, 0
- bl sub_81630C4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163048
-
- thumb_func_start sub_816306C
-sub_816306C: @ 816306C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ZeroEnemyPartyMons
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- adds r2, r4, 0
- bl sub_81630C4
- ldr r0, =gTrainerBattleOpponent_B
- ldrh r0, [r0]
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_81630C4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816306C
-
- thumb_func_start sub_81630A0
-sub_81630A0: @ 81630A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ZeroEnemyPartyMons
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- adds r2, r4, 0
- bl sub_8165EA4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81630A0
-
- thumb_func_start sub_81630C4
-sub_81630C4: @ 81630C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- add r4, sp, 0x14
- movs r0, 0xFF
- strb r0, [r4]
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- ldr r0, =0x0000012b
- cmp r5, r0
- bhi _08163138
- adds r0, r5, 0
- bl sub_8165D08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r2, [r0]
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r2
- adds r0, r1
- ldr r0, [r0, 0x30]
- str r0, [sp, 0x2C]
- movs r0, 0
- str r0, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- ldrh r1, [r2]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08163124
- b _08163278
-_08163124:
- b _08163260
- .pool
-_08163138:
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- bne _08163180
- ldr r7, [sp, 0x18]
- adds r0, r7, 0x3
- cmp r7, r0
- blt _0816314A
- b _08163426
-_0816314A:
- ldr r4, =gSaveBlock2Ptr
-_0816314C:
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r5, [sp, 0x18]
- subs r2, r7, r5
- movs r1, 0x2C
- muls r2, r1
- movs r6, 0xC2
- lsls r6, 4
- adds r2, r6
- ldr r1, [r4]
- adds r1, r2
- bl sub_806819C
- adds r7, 0x1
- adds r0, r5, 0
- adds r0, 0x3
- cmp r7, r0
- blt _0816314C
- b _08163426
- .pool
-_08163180:
- ldr r0, =0x000003fe
- cmp r5, r0
- bne _08163190
- bl sub_81A4E04
- b _08163426
- .pool
-_08163190:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08163218
- movs r6, 0
- ldr r7, [sp, 0x18]
- ldr r1, [sp, 0x1C]
- adds r0, r7, r1
- cmp r7, r0
- blt _081631A4
- b _08163426
-_081631A4:
- ldr r2, =0xfffffed4
- adds r1, r5, r2
- movs r0, 0xEC
- adds r2, r1, 0
- muls r2, r0
- mov r8, r2
- muls r0, r5
- ldr r5, =0xfffef2a8
- adds r4, r0, r5
-_081631B6:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r0, 0x2C
- adds r2, r6, 0
- muls r2, r0
- mov r1, r8
- adds r0, r2, r1
- adds r1, r3, r0
- ldr r5, =0x0000076c
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _081631F0
- adds r5, 0xC
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r1, [sp, 0x20]
- cmp r0, r1
- bhi _081631F0
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- adds r1, r3, r4
- adds r2, 0x34
- adds r1, r2
- movs r2, 0
- bl sub_8068338
-_081631F0:
- adds r6, 0x1
- adds r7, 0x1
- ldr r2, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- adds r0, r2, r5
- cmp r7, r0
- blt _081631B6
- b _08163426
- .pool
-_08163218:
- ldr r7, [sp, 0x18]
- adds r0, r7, 0x3
- cmp r7, r0
- blt _08163222
- b _08163426
-_08163222:
- ldr r6, =gSaveBlock2Ptr
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, =0xffff969c
- adds r5, r0, r1
- movs r4, 0
-_08163230:
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r1, [r6]
- adds r1, r5
- lsrs r2, r4, 24
- bl CreateApprenticeMon
- movs r2, 0x80
- lsls r2, 17
- adds r4, r2
- adds r7, 0x1
- ldr r0, [sp, 0x18]
- adds r0, 0x3
- cmp r7, r0
- blt _08163230
- b _08163426
- .pool
-_08163260:
- ldr r0, [sp, 0x28]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- lsls r0, 1
- ldr r5, [sp, 0x2C]
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08163260
-_08163278:
- movs r7, 0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x30]
- ldr r6, [sp, 0x1C]
- cmp r7, r6
- bne _08163296
- b _08163426
-_08163296:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x28]
- bl __modsi3
- lsls r0, 1
- ldr r1, [sp, 0x2C]
- adds r0, r1
- ldrh r4, [r0]
- ldr r2, [sp, 0x20]
- cmp r2, 0x32
- beq _081632B6
- cmp r2, 0x14
- bne _081632BE
-_081632B6:
- ldr r0, =0x00000351
- cmp r4, r0
- bls _081632BE
- b _0816341E
-_081632BE:
- movs r6, 0
- ldr r5, [sp, 0x18]
- adds r5, r7
- mov r8, r5
- b _081632D2
- .pool
-_081632D0:
- adds r6, 0x1
-_081632D2:
- cmp r6, r8
- bge _081632F6
- movs r1, 0x64
- adds r0, r6, 0
- muls r0, r1
- ldr r2, =gEnemyParty
- adds r0, r2
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, =gFacilityTrainerMons
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrh r1, [r1]
- cmp r0, r1
- bne _081632D0
-_081632F6:
- cmp r6, r8
- beq _081632FC
- b _0816341E
-_081632FC:
- movs r6, 0
- cmp r6, r8
- bge _08163346
- ldr r5, =gBattleFrontierHeldItems
- mov r9, r5
- movs r3, 0
-_08163308:
- ldr r0, =gEnemyParty
- adds r5, r3, r0
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x38]
- bl GetMonData
- ldr r3, [sp, 0x38]
- cmp r0, 0
- beq _0816333E
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- ldr r1, =gFacilityTrainerMons
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrb r1, [r1, 0xA]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x38]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08163346
-_0816333E:
- adds r3, 0x64
- adds r6, 0x1
- cmp r6, r8
- blt _08163308
-_08163346:
- cmp r6, r8
- bne _0816341E
- movs r6, 0
- cmp r6, r7
- bge _08163368
- add r0, sp, 0xC
- ldrh r0, [r0]
- cmp r0, r4
- beq _08163368
- add r1, sp, 0xC
-_0816335A:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, r7
- bge _08163368
- ldrh r0, [r1]
- cmp r0, r4
- bne _0816335A
-_08163368:
- cmp r6, r7
- bne _0816341E
- lsls r0, r7, 1
- add r0, sp
- adds r0, 0xC
- strh r4, [r0]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- ldr r2, =gEnemyParty
- adds r0, r2
- ldr r5, =gFacilityTrainerMons
- ldr r2, [r5]
- lsls r4, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- ldr r6, [sp, 0x24]
- str r6, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- ldr r2, [sp, 0x30]
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x20]
- bl CreateMonWithEVSpreadPersonalityOTID
- movs r0, 0xFF
- mov r6, sp
- strb r0, [r6, 0x14]
- movs r6, 0
- adds r0, r7, 0x1
- str r0, [sp, 0x34]
- mov r9, r4
- movs r0, 0x64
- mov r3, r8
- muls r3, r0
- mov r1, r9
- str r1, [sp, 0x3C]
- ldr r2, =gEnemyParty
- mov r10, r2
-_081633B8:
- ldr r0, [r5]
- ldr r7, [sp, 0x3C]
- adds r0, r7, r0
- lsls r4, r6, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- mov r7, r10
- adds r0, r3, r7
- str r3, [sp, 0x38]
- bl SetMonMoveSlot
- ldr r0, [r5]
- ldr r1, [sp, 0x3C]
- adds r0, r1, r0
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- ldr r3, [sp, 0x38]
- cmp r0, 0xDA
- bne _081633EC
- movs r0, 0
- mov r2, sp
- strb r0, [r2, 0x14]
-_081633EC:
- adds r6, 0x1
- cmp r6, 0x3
- ble _081633B8
- movs r5, 0x64
- mov r4, r8
- muls r4, r5
- ldr r6, =gEnemyParty
- adds r4, r6
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x14
- bl SetMonData
- ldr r0, =gFacilityTrainerMons
- ldr r0, [r0]
- add r0, r9
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- ldr r7, [sp, 0x34]
-_0816341E:
- ldr r0, [sp, 0x1C]
- cmp r7, r0
- beq _08163426
- b _08163296
-_08163426:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81630C4
-
- thumb_func_start sub_8163444
-sub_8163444: @ 8163444
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- movs r1, 0xFF
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xDC
- adds r0, r2
- mov r10, r0
- ldrb r0, [r0, 0x1]
- movs r1, 0x9
- str r1, [sp, 0x10]
- cmp r0, 0x4
- bhi _08163474
- movs r0, 0x6
- str r0, [sp, 0x10]
-_08163474:
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- movs r1, 0x32
- str r1, [sp, 0xC]
- cmp r0, 0
- beq _0816348A
- movs r0, 0x64
- str r0, [sp, 0xC]
-_0816348A:
- movs r7, 0
- adds r2, 0xE2
- str r2, [sp, 0x14]
- add r1, sp, 0x4
- mov r9, r1
-_08163494:
- ldr r2, [sp, 0x8]
- adds r6, r2, r7
- movs r0, 0x64
- muls r0, r6
- ldr r1, =gEnemyParty
- adds r0, r1
- lsls r5, r7, 1
- adds r4, r5, r7
- lsls r4, 2
- mov r2, r10
- adds r1, r2, r4
- ldrh r1, [r1, 0x4]
- movs r2, 0x8
- str r2, [sp]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- bl CreateMonWithEVSpread
- movs r0, 0xFF
- mov r1, r9
- strb r0, [r1]
- adds r2, r7, 0x1
- mov r8, r2
- movs r1, 0x3
-_081634C4:
- ldr r2, [sp, 0x14]
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _081634D4
- movs r2, 0
- mov r0, r9
- strb r2, [r0]
-_081634D4:
- adds r4, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081634C4
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x4
- bl SetMonData
- adds r2, r5, r7
- lsls r2, 2
- add r2, r10
- adds r2, 0xE
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r7, r8
- cmp r7, 0x3
- bne _08163494
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163444
-
- thumb_func_start RandomizeFacilityTrainerMonId
-RandomizeFacilityTrainerMonId: @ 8163524
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r4
- adds r0, r1
- ldr r5, [r0, 0x30]
- movs r4, 0
- ldrh r1, [r5]
- b _08163558
- .pool
-_0816354C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 1
- adds r0, r5
- ldrh r1, [r0]
-_08163558:
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _0816354C
-_0816355E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r6, 0x32
- beq _0816357A
- cmp r6, 0x14
- bne _08163580
-_0816357A:
- ldr r0, =0x00000351
- cmp r1, r0
- bhi _0816355E
-_08163580:
- adds r0, r1, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end RandomizeFacilityTrainerMonId
-
- thumb_func_start sub_8163590
-sub_8163590: @ 8163590
- push {lr}
- bl ZeroEnemyPartyMons
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _081635C0
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- bl sub_81635D4
- b _081635CA
- .pool
-_081635C0:
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- bl sub_816379C
-_081635CA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163590
-
- thumb_func_start sub_81635D4
-sub_81635D4: @ 81635D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsrs r2, r0, 16
- adds r3, r2, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- ldr r0, =0x0000012b
- cmp r2, r0
- bhi _0816364A
- ldr r4, =gSaveBlock2Ptr
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- ldr r4, [r4]
- lsrs r0, 22
- movs r2, 0xCE
- lsls r2, 4
- adds r1, r4, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, =0x00000cb2
- adds r4, r3
- ldrh r0, [r4]
- cmp r0, 0x5
- bhi _0816363C
- adds r0, r1, 0
- movs r1, 0
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r0, 24
- b _081636A6
- .pool
-_0816363C:
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r0, 24
- b _081636A6
-_0816364A:
- movs r0, 0xFA
- lsls r0, 1
- cmp r2, r0
- bne _08163694
- ldr r7, [sp, 0x10]
- adds r0, r7, 0x3
- cmp r7, r0
- blt _0816365C
- b _08163776
-_0816365C:
- ldr r4, =gSaveBlock2Ptr
-_0816365E:
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r1, [sp, 0x10]
- subs r2, r7, r1
- movs r1, 0x2C
- muls r2, r1
- movs r3, 0xC2
- lsls r3, 4
- adds r2, r3
- ldr r1, [r4]
- adds r1, r2
- bl sub_806819C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [sp, 0x10]
- adds r0, 0x3
- cmp r7, r0
- blt _0816365E
- b _08163776
- .pool
-_08163694:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081636A4
- bl sub_81A6CD0
- b _08163776
- .pool
-_081636A4:
- movs r0, 0x1F
-_081636A6:
- str r0, [sp, 0x18]
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- movs r7, 0
-_081636CE:
- ldr r1, =gUnknown_03006298
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- mov r9, r0
- ldr r3, [sp, 0x10]
- adds r5, r3, r7
- movs r0, 0x64
- adds r6, r5, 0
- muls r6, r0
- ldr r1, =gEnemyParty
- adds r0, r6, r1
- ldr r3, =gFacilityTrainerMons
- ldr r2, [r3]
- mov r1, r9
- lsls r4, r1, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- mov r10, r3
- ldr r3, [sp, 0x18]
- str r3, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl CreateMonWithEVSpreadPersonalityOTID
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
- movs r3, 0
- adds r7, 0x1
- mov r10, r7
- adds r7, r4, 0
-_08163718:
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- mov r2, r9
- lsls r0, r2, 4
- adds r0, r1
- lsls r1, r3, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- ldr r2, =gEnemyParty
- adds r0, r6, r2
- adds r2, r3, 0
- str r3, [sp, 0x1C]
- bl SetMonMoveAvoidReturn
- ldr r3, [sp, 0x1C]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _08163718
- movs r3, 0x64
- adds r4, r5, 0
- muls r4, r3
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r1, =gFacilityTrainerMons
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r2, r10
- lsls r0, r2, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _081636CE
-_08163776:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81635D4
-
- thumb_func_start sub_816379C
-sub_816379C: @ 816379C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r0, [r1, 0xA]
- mov r9, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- mov r9, r2
- movs r7, 0
- mov r8, r7
-_081637D0:
- ldr r1, =gUnknown_03006298
- mov r2, r8
- lsls r0, r2, 1
- adds r0, r1
- ldrh r4, [r0]
- ldr r5, [sp, 0x10]
- add r5, r8
- movs r7, 0x64
- adds r6, r5, 0
- muls r6, r7
- ldr r1, =gEnemyParty
- adds r0, r6, r1
- ldr r7, =gFacilityTrainerMons
- ldr r2, [r7]
- lsls r4, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- movs r7, 0
- str r7, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- movs r2, 0x1E
- bl CreateMonWithEVSpreadPersonalityOTID
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
- mov r10, r5
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x14]
- mov r8, r4
- mov r5, r8
-_08163818:
- ldr r1, =gFacilityTrainerMons
- ldr r0, [r1]
- adds r0, r5, r0
- lsls r4, r7, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- ldr r2, =gEnemyParty
- adds r0, r6, r2
- adds r2, r7, 0
- bl SetMonMoveAvoidReturn
- ldr r1, =gFacilityTrainerMons
- ldr r0, [r1]
- adds r0, r5, r0
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _08163846
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
-_08163846:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _08163818
- movs r2, 0x64
- mov r4, r10
- muls r4, r2
- ldr r7, =gEnemyParty
- adds r4, r7
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r1, =gFacilityTrainerMons
- ldr r0, [r1]
- add r0, r8
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- ldr r2, [sp, 0x14]
- lsls r0, r2, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _081637D0
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816379C
-
- thumb_func_start ConvertBattleFrontierTrainerSpeechToString
-ConvertBattleFrontierTrainerSpeechToString: @ 81638AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x1
- adds r1, r4, 0
- bl GetStringWidth
- cmp r0, 0xCC
- bls _0816390A
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertEasyChatWordsToString
- ldrb r0, [r4]
- movs r1, 0x1
- cmp r0, 0xFE
- beq _081638EE
- adds r2, r4, 0
-_081638E4:
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r1, 0x1
- cmp r0, 0xFE
- bne _081638E4
-_081638EE:
- ldr r2, =gStringVar4
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0xFE
- beq _08163904
-_081638FA:
- adds r1, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFE
- bne _081638FA
-_08163904:
- adds r1, r3
- movs r0, 0xFA
- strb r0, [r1]
-_0816390A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ConvertBattleFrontierTrainerSpeechToString
-
- thumb_func_start sub_8163914
-sub_8163914: @ 8163914
- push {lr}
- bl GetFacilityEnemyMonLevel
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _08163930
- ldr r0, =gTrainerBattleOpponent_B
- b _08163932
- .pool
-_08163930:
- ldr r0, =gTrainerBattleOpponent_A
-_08163932:
- ldrh r3, [r0]
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _08163950
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- b _08163986
- .pool
-_08163950:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _08163974
- ldr r2, =gFacilityTrainers
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081639A8
- .pool
-_08163974:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _0816399C
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2b8
-_08163986:
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081639A8
- .pool
-_0816399C:
- adds r0, r3, 0
- adds r0, 0x70
- lsls r0, 24
- lsrs r0, 24
- bl CopyFriendsApprenticeChallengeText
-_081639A8:
- pop {r0}
- bx r0
- thumb_func_end sub_8163914
-
- thumb_func_start sub_81639AC
-sub_81639AC: @ 81639AC
- push {r4-r6,lr}
- sub sp, 0x4
- bl sub_81864CC
- ldr r0, =gBattleScripting
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0xA
- bhi _08163A78
- lsls r0, 2
- ldr r1, =_081639D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081639D0:
- .4byte _081639FC
- .4byte _08163A38
- .4byte _08163A74
- .4byte _081639FC
- .4byte _081639FC
- .4byte _081639FC
- .4byte _081639FC
- .4byte _081639FC
- .4byte _08163A78
- .4byte _081639FC
- .4byte _081639FC
-_081639FC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ebc
- adds r1, r0, r2
- ldr r2, [r1]
- ldr r0, =0x00fffffe
- cmp r2, r0
- bhi _08163A2C
- adds r0, r2, 0x1
- str r0, [r1]
- movs r1, 0x14
- bl __umodsi3
- cmp r0, 0
- bne _08163A78
- bl UpdateGymLeaderRematch
- b _08163A78
- .pool
-_08163A2C:
- ldr r0, =0x00ffffff
- str r0, [r1]
- b _08163A78
- .pool
-_08163A38:
- movs r5, 0
- ldr r6, =gSaveBlock1Ptr
-_08163A3C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- movs r0, 0x8E
- lsls r0, 2
- adds r1, r4, r0
- ldr r0, [r6]
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _08163A3C
- b _08163A78
- .pool
-_08163A74:
- bl sub_816537C
-_08163A78:
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81639AC
-
- thumb_func_start sub_8163A8C
-sub_8163A8C: @ 8163A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsBattleTransitionDone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08163AB0
- ldr r0, =gMain
- ldr r1, =sub_81639AC
- str r1, [r0, 0x8]
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08163AB0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163A8C
-
- thumb_func_start sub_8163AC4
-sub_8163AC4: @ 8163AC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, =gBattleScripting
- ldr r2, =gSpecialVar_0x8004
- ldrh r1, [r2]
- adds r0, 0x26
- strb r1, [r0]
- ldrh r0, [r2]
- cmp r0, 0xA
- bls _08163ADA
- b _08163E68
-_08163ADA:
- lsls r0, 2
- ldr r1, =_08163AF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08163AF0:
- .4byte _08163B1C
- .4byte _08163BC0
- .4byte _08163C10
- .4byte _08163C70
- .4byte _08163CC4
- .4byte _08163D28
- .4byte _08163D74
- .4byte _08163DB4
- .4byte _08163E2C
- .4byte _08163DF4
- .4byte _08163DC8
-_08163B1C:
- ldr r5, =gBattleTypeFlags
- movs r0, 0x84
- lsls r0, 1
- str r0, [r5]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- beq _08163B56
- cmp r4, 0x1
- bgt _08163B44
- cmp r4, 0
- beq _08163B4E
- b _08163BA6
- .pool
-_08163B44:
- cmp r4, 0x2
- beq _08163B64
- cmp r4, 0x3
- beq _08163B98
- b _08163BA6
-_08163B4E:
- movs r0, 0x3
- bl sub_8163048
- b _08163BA6
-_08163B56:
- movs r0, 0x4
- bl sub_8163048
- ldr r0, [r5]
- orrs r0, r4
- str r0, [r5]
- b _08163BA6
-_08163B64:
- movs r0, 0x2
- bl sub_816306C
- ldr r1, =gPartnerTrainerId
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000cd6
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldrh r0, [r1]
- bl sub_8165404
- ldr r0, [r5]
- ldr r1, =0x00408041
- orrs r0, r1
- str r0, [r5]
- b _08163BA6
- .pool
-_08163B98:
- ldr r0, [r5]
- ldr r1, =0x00800043
- orrs r0, r1
- str r0, [r5]
- movs r0, 0x2
- bl sub_816306C
-_08163BA6:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0
- b _08163E10
- .pool
-_08163BC0:
- movs r5, 0
- ldr r6, =gSaveBlock1Ptr
-_08163BC4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- movs r0, 0x8E
- lsls r0, 2
- adds r4, r0
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _08163BC4
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0xC
- b _08163E10
- .pool
-_08163C10:
- bl ZeroEnemyPartyMons
- movs r5, 0
- ldr r4, =gSaveBlock2Ptr
-_08163C18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- adds r2, r5, 0
- muls r2, r1
- movs r1, 0xC2
- lsls r1, 4
- adds r2, r1
- ldr r1, [r4]
- adds r1, r2
- bl sub_806819C
- adds r5, 0x1
- cmp r5, 0x2
- ble _08163C18
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00000808
- str r0, [r1]
- ldr r1, =gTrainerBattleOpponent_A
- movs r0, 0
- strh r0, [r1]
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0xD
- b _08163E10
- .pool
-_08163C70:
- ldr r4, =gBattleTypeFlags
- ldr r0, =0x00010008
- str r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _08163C8A
- ldr r0, [r4]
- orrs r0, r1
- str r0, [r4]
-_08163C8A:
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _08163C9A
- movs r0, 0x2
- bl sub_8163048
-_08163C9A:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl sub_806E694
- movs r0, 0x3
- b _08163E10
- .pool
-_08163CC4:
- ldr r4, =gBattleTypeFlags
- ldr r0, =0x00020008
- str r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _08163CDE
- ldr r0, [r4]
- orrs r0, r1
- str r0, [r4]
-_08163CDE:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _08163D0C
- movs r0, 0x3
- bl sub_8163048
- b _08163D12
- .pool
-_08163D0C:
- movs r0, 0x3
- bl sub_81630A0
-_08163D12:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0x4
- b _08163E10
- .pool
-_08163D28:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00040008
- str r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _08163D58
- movs r0, 0x3
- bl sub_8163048
- b _08163D5E
- .pool
-_08163D58:
- movs r0, 0x3
- bl sub_81630A0
-_08163D5E:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0x5
- b _08163E10
- .pool
-_08163D74:
- ldr r4, =gBattleTypeFlags
- ldr r0, =0x00080008
- str r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bne _08163D8E
- ldr r0, [r4]
- orrs r0, r1
- str r0, [r4]
-_08163D8E:
- bl sub_8163590
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0x6
- b _08163E10
- .pool
-_08163DB4:
- ldr r1, =gBattleTypeFlags
- movs r0, 0x84
- lsls r0, 1
- str r0, [r1]
- movs r0, 0x3
- bl sub_8163048
- b _08163E00
- .pool
-_08163DC8:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00200008
- str r0, [r1]
- movs r0, 0x3
- bl sub_8163048
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0xA
- b _08163E10
- .pool
-_08163DF4:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00008109
- str r0, [r1]
- movs r0, 0x1
- bl sub_816306C
-_08163E00:
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0x7
-_08163E10:
- bl sub_80B100C
- lsls r0, 24
- lsrs r0, 24
- bl BattleTransition_StartOnField
- b _08163E68
- .pool
-_08163E2C:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x00408049
- str r0, [r1]
- ldr r5, =0x00000c03
- adds r0, r5, 0
- bl sub_8165404
- ldr r4, =gApproachingTrainerId
- movs r0, 0
- strb r0, [r4]
- ldr r0, =MossdeepCity_SpaceCenter_2F_EventScript_224157 + 1
- bl BattleSetup_ConfigureTrainerBattle
- movs r0, 0x1
- strb r0, [r4]
- ldr r0, =MossdeepCity_SpaceCenter_2F_EventScript_224166 + 1
- bl BattleSetup_ConfigureTrainerBattle
- ldr r0, =gPartnerTrainerId
- strh r5, [r0]
- ldr r0, =sub_8163A8C
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl PlayMapChosenOrBattleBGM
- movs r0, 0x12
- bl BattleTransition_StartOnField
-_08163E68:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163AC4
-
- thumb_func_start sub_8163E90
-sub_8163E90: @ 8163E90
- push {r4-r6,lr}
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r5, [r0]
- lsls r5, 30
- lsrs r5, 30
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8164FCC
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, [r6]
- lsls r5, 1
- lsls r4, 2
- adds r5, r4
- movs r1, 0xCE
- lsls r1, 4
- adds r0, r1
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, r2
- bcs _08163ED0
- strh r2, [r1]
-_08163ED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163E90
-
- thumb_func_start sub_8163EE4
-sub_8163EE4: @ 8163EE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x0000064c
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_8164FB8
- ldr r0, [r4]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, [r4]
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08163F40
- ldr r4, =gUnknown_085DCEFA
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08163F52
- .pool
-_08163F40:
- ldr r4, =gUnknown_085DCEDC
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08163F52:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r5, 0
- adds r0, 0xC
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- adds r1, 0xA
- bl CopyUnalignedWord
- adds r0, r5, 0x4
- ldr r1, [r4]
- bl StringCopy7
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8164FCC
- strh r0, [r5, 0x2]
- movs r4, 0
- movs r2, 0x10
- adds r2, r5
- mov r12, r2
- movs r7, 0x1C
- adds r7, r5
- mov r9, r7
- adds r6, r5, 0
- adds r6, 0x28
- movs r0, 0xE4
- adds r0, r5
- mov r8, r0
-_08163F96:
- lsls r2, r4, 1
- mov r1, r12
- adds r3, r1, r2
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r7, =0x00002bbc
- adds r0, r1, r7
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- mov r0, r9
- adds r3, r0, r2
- adds r7, 0xC
- adds r0, r1, r7
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- adds r3, r6, r2
- ldr r0, =0x00002bd4
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r4, 0x1
- cmp r4, 0x5
- ble _08163F96
- movs r4, 0
-_08163FCC:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _08163FF4
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty - 100
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r5, r1
- bl sub_80686FC
-_08163FF4:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08163FCC
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- mov r7, r8
- strb r0, [r7]
- ldr r0, [r6]
- ldr r1, =0x0000064c
- adds r0, r1
- bl CalcEmeraldBattleTowerChecksum
- bl sub_8163E90
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8163EE4
-
- thumb_func_start sub_8164040
-sub_8164040: @ 8164040
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r4, [r0]
- lsls r4, 30
- lsrs r4, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r5, [r5]
- lsls r4, 1
- lsrs r0, 14
- adds r4, r0
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r5, r2
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _0816408E
- cmp r1, 0x1
- bgt _0816408A
- ldr r1, =0x00000cb2
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0816408E
-_0816408A:
- bl sub_8163EE4
-_0816408E:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r1, [r4]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_81A4C30
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164040
-
- thumb_func_start nullsub_61
-nullsub_61: @ 81640D8
- bx lr
- thumb_func_end nullsub_61
-
- thumb_func_start nullsub_116
-nullsub_116: @ 81640DC
- bx lr
- thumb_func_end nullsub_116
-
- thumb_func_start sub_81640E0
-sub_81640E0: @ 81640E0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r6, 0
- movs r2, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r5, r0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, 0xE0
- adds r0, r1
- mov r3, sp
-_08164122:
- ldrh r1, [r0]
- cmp r1, r7
- beq _08164130
- cmp r1, r4
- beq _08164130
- stm r3!, {r2}
- adds r6, 0x1
-_08164130:
- adds r0, 0xC
- adds r2, 0x1
- cmp r2, 0x2
- ble _08164122
- bl Random
- ldr r4, =gUnknown_03006298
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4]
-_08164150:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4, 0x2]
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- beq _08164150
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81640E0
-
- thumb_func_start sub_8164188
-sub_8164188: @ 8164188
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0xC]
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
- movs r3, 0
- mov r8, r3
- movs r7, 0
- adds r2, r6, 0
- ldr r0, =0xfffffed4
- adds r5, r0
- ldr r6, =0x0000076c
- mov r10, sp
- movs r0, 0xEC
- adds r1, r5, 0
- muls r1, r0
- mov r9, r1
-_081641E6:
- ldr r1, [r2]
- movs r0, 0x2C
- muls r0, r7
- mov r3, r9
- adds r5, r0, r3
- adds r1, r5
- adds r0, r1, r6
- ldrh r0, [r0]
- ldr r3, [sp, 0x10]
- cmp r0, r3
- beq _0816423A
- ldr r3, [sp, 0x14]
- cmp r0, r3
- beq _0816423A
- movs r0, 0xEF
- lsls r0, 3
- adds r4, r1, r0
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- lsrs r0, 24
- str r2, [sp, 0x18]
- bl GetFrontierEnemyMonLevel
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x18]
- cmp r1, r0
- bhi _0816423A
- ldr r0, [r2]
- adds r0, r5
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, 0
- beq _0816423A
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r7}
- movs r0, 0x1
- add r8, r0
-_0816423A:
- adds r7, 0x1
- cmp r7, 0x3
- ble _081641E6
- bl Random
- ldr r4, =gUnknown_03006298
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4, 0x4]
-_08164258:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- strh r0, [r4, 0x6]
- ldrh r1, [r4, 0x4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- beq _08164258
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164188
-
- thumb_func_start sub_81642A0
-sub_81642A0: @ 81642A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0, r1
- str r1, [sp, 0x24]
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0x14]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, [r5]
- ldr r3, [sp, 0x14]
- lsls r2, r3, 1
- lsrs r0, 14
- adds r2, r0
- movs r4, 0xCE
- lsls r4, 4
- adds r1, r4
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x18]
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x1C]
- adds r4, 0x64
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- str r0, [sp, 0x20]
- bl GetFacilityEnemyMonLevel
- movs r7, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- mov r10, r0
-_08164318:
- lsls r6, r7, 1
-_0816431A:
- mov r1, r10
- lsrs r0, r1, 24
- movs r1, 0
- bl sub_8162548
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- movs r2, 0
- mov r9, r2
- cmp r9, r7
- bge _08164368
- ldr r0, [r5]
- ldr r3, =0x00000cb4
- adds r1, r0, r3
- ldrh r0, [r1]
- cmp r0, r8
- beq _08164368
- ldr r0, =gFacilityTrainers
- ldr r2, [r0]
- movs r4, 0x34
- mov r0, r8
- muls r0, r4
- adds r0, r2
- ldrb r3, [r0]
-_0816434C:
- ldrh r0, [r1]
- muls r0, r4
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, r3
- beq _08164368
- adds r1, 0x2
- movs r0, 0x1
- add r9, r0
- cmp r9, r7
- bge _08164368
- ldrh r0, [r1]
- cmp r0, r8
- bne _0816434C
-_08164368:
- cmp r9, r7
- bne _0816431A
- ldr r0, [r5]
- ldr r1, =0x00000cb4
- adds r0, r1
- adds r0, r6
- mov r2, r8
- strh r2, [r0]
- mov r7, r9
- adds r7, 0x1
- cmp r7, 0x5
- ble _08164318
- movs r3, 0x8
- mov r10, r3
- movs r4, 0
- mov r9, r4
- ldr r0, [sp, 0x24]
- str r0, [sp, 0x40]
-_0816438C:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- mov r2, r9
- lsls r1, r2, 1
- ldr r3, =0x00000cb4
- adds r0, r3
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r0
- bl sub_81627A4
- ldr r4, [sp, 0x40]
- strb r0, [r4, 0x19]
- movs r7, 0
-_081643A8:
- adds r0, r7, 0x1
- str r0, [sp, 0x30]
- mov r1, r10
- lsls r1, 1
- str r1, [sp, 0x38]
- mov r2, r10
- adds r2, 0x1
- str r2, [sp, 0x34]
- mov r0, r10
- subs r0, 0x1
- lsls r0, 1
- str r0, [sp, 0x28]
-_081643C0:
- mov r0, r8
- bl RandomizeFacilityTrainerMonId
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _081643F4
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldr r1, [sp, 0x28]
- adds r0, r1
- ldrh r2, [r0]
- ldr r0, =gFacilityTrainerMons
- ldr r0, [r0]
- lsls r2, 4
- adds r2, r0
- lsls r1, r6, 4
- adds r1, r0
- ldrb r0, [r2, 0xA]
- ldrb r1, [r1, 0xA]
- cmp r0, r1
- beq _081643C0
-_081643F4:
- movs r5, 0x8
- cmp r5, r10
- bge _08164430
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r1, =gFacilityTrainerMons
- ldr r3, [r1]
- lsls r1, r6, 4
- adds r1, r3
- ldr r4, =0x00000cc4
- adds r2, r0, r4
- ldrh r0, [r1]
- mov r12, r0
-_0816440E:
- ldrh r0, [r2]
- lsls r0, 4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r12
- beq _08164430
- ldrh r0, [r1]
- ldr r4, [sp, 0x1C]
- cmp r4, r0
- beq _08164430
- ldr r4, [sp, 0x20]
- cmp r4, r0
- beq _08164430
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r10
- blt _0816440E
-_08164430:
- cmp r5, r10
- bne _081643C0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000cb4
- adds r0, r2
- ldr r3, [sp, 0x38]
- adds r0, r3
- strh r6, [r0]
- ldr r4, [sp, 0x34]
- mov r10, r4
- ldr r7, [sp, 0x30]
- cmp r7, 0x1
- ble _081643A8
- ldr r0, [sp, 0x40]
- adds r0, 0x18
- str r0, [sp, 0x40]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _0816438C
- movs r3, 0
- mov r10, r3
- bl sub_8165B20
- movs r4, 0
- mov r9, r4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r2, 0
- adds r6, r0, 0
- adds r6, 0xDC
- mov r8, sp
-_08164474:
- ldrb r0, [r6]
- lsls r4, r0, 25
- lsrs r0, r4, 30
- cmp r0, 0
- beq _081644E0
- ldr r1, =gUnknown_085DF9EC
- ldrb r0, [r6, 0x1]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7
- str r2, [sp, 0x44]
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x44]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bgt _081644E0
- lsrs r0, r4, 30
- subs r0, 0x1
- ldr r3, [sp, 0x14]
- cmp r0, r3
- bne _081644E0
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xE0
- adds r1, r2, r0
- movs r7, 0x2
-_081644B0:
- ldrh r0, [r1]
- ldr r4, [sp, 0x1C]
- cmp r4, r0
- beq _081644C0
- ldr r3, [sp, 0x20]
- cmp r3, r0
- beq _081644C0
- adds r5, 0x1
-_081644C0:
- adds r1, 0xC
- subs r7, 0x1
- cmp r7, 0
- bge _081644B0
- cmp r5, 0x2
- ble _081644E0
- movs r0, 0xC8
- lsls r0, 1
- add r0, r9
- mov r4, r8
- adds r4, 0x4
- mov r8, r4
- subs r4, 0x4
- stm r4!, {r0}
- movs r0, 0x1
- add r10, r0
-_081644E0:
- adds r2, 0x44
- adds r6, 0x44
- movs r1, 0x1
- add r9, r1
- mov r3, r9
- cmp r3, 0x3
- ble _08164474
- mov r4, r10
- cmp r4, 0
- beq _08164532
- bl Random
- ldr r6, =gSaveBlock2Ptr
- ldr r4, [r6]
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- movs r5, 0xCC
- lsls r5, 4
- adds r4, r5
- strh r0, [r4]
- ldrh r0, [r4]
- bl sub_81627A4
- ldr r1, [sp, 0x24]
- adds r1, 0xA8
- strb r0, [r1, 0x1]
- movs r0, 0xD8
- lsls r0, 2
- bl FlagClear
- ldr r0, [r6]
- adds r0, r5
- ldrh r0, [r0]
- bl sub_81640E0
-_08164532:
- movs r0, 0
- mov r10, r0
- mov r9, r0
- mov r1, sp
- str r1, [sp, 0x3C]
-_0816453C:
- ldr r0, =gSaveBlock2Ptr
- movs r2, 0xEC
- mov r1, r9
- muls r1, r2
- movs r3, 0xE7
- lsls r3, 3
- adds r1, r3
- ldr r0, [r0]
- movs r2, 0
- movs r3, 0
- movs r7, 0
- mov r4, r9
- adds r4, 0x1
- str r4, [sp, 0x2C]
- adds r1, r0, r1
-_0816455A:
- ldm r1!, {r0}
- orrs r2, r0
- adds r3, r0
- adds r7, 0x1
- cmp r7, 0x39
- bls _0816455A
- ldr r0, =gSaveBlock2Ptr
- ldr r5, [r0]
- movs r1, 0xEC
- mov r6, r9
- muls r6, r1
- adds r4, r5, r6
- ldr r1, =0x0000073a
- adds r0, r4, r1
- ldrh r0, [r0]
- movs r1, 0x7
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x44]
- ldr r3, [sp, 0x48]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bgt _08164656
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r4, [sp, 0x14]
- cmp r0, r4
- bne _08164656
- cmp r2, 0
- beq _08164656
- adds r1, 0xE8
- adds r0, r5, r1
- adds r0, r6
- ldr r0, [r0]
- cmp r0, r3
- bne _08164656
- movs r5, 0
- movs r7, 0
- ldr r2, =gSaveBlock2Ptr
- mov r8, r2
- ldr r3, =0x0000076c
-_081645B8:
- mov r4, r8
- ldr r2, [r4]
- movs r0, 0x2C
- adds r1, r7, 0
- muls r1, r0
- movs r4, 0xEC
- mov r0, r9
- muls r0, r4
- adds r6, r1, r0
- adds r2, r6
- adds r0, r2, r3
- ldrh r0, [r0]
- ldr r1, [sp, 0x1C]
- cmp r1, r0
- beq _0816463C
- ldr r4, [sp, 0x20]
- cmp r4, r0
- beq _0816463C
- movs r0, 0xEF
- lsls r0, 3
- adds r4, r2, r0
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r0, 24
- str r3, [sp, 0x48]
- bl GetFrontierEnemyMonLevel
- ldrb r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x48]
- cmp r1, r0
- bhi _0816463C
- mov r2, r8
- ldr r0, [r2]
- adds r0, r6
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- b _08164638
- .pool
-_08164638:
- beq _0816463C
- adds r5, 0x1
-_0816463C:
- adds r7, 0x1
- cmp r7, 0x3
- ble _081645B8
- cmp r5, 0x1
- ble _08164656
- movs r0, 0x96
- lsls r0, 1
- add r0, r9
- ldr r3, [sp, 0x3C]
- stm r3!, {r0}
- str r3, [sp, 0x3C]
- movs r4, 0x1
- add r10, r4
-_08164656:
- ldr r0, [sp, 0x2C]
- mov r9, r0
- cmp r0, 0x4
- bgt _08164660
- b _0816453C
-_08164660:
- mov r1, r10
- cmp r1, 0
- beq _081646A0
- bl Random
- ldr r6, =gSaveBlock2Ptr
- ldr r4, [r6]
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r5, =0x00000cc2
- adds r4, r5
- strh r0, [r4]
- ldrh r0, [r4]
- bl sub_81627A4
- ldr r1, [sp, 0x24]
- adds r1, 0xC0
- strb r0, [r1, 0x1]
- ldr r0, =0x00000361
- bl FlagClear
- ldr r0, [r6]
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8164188
-_081646A0:
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81642A0
-
- thumb_func_start sub_81646BC
-sub_81646BC: @ 81646BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- movs r0, 0
- mov r9, r0
- mov r10, r0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- beq _081647CE
- subs r0, 0xC9
- cmp r5, r0
- bhi _081646FC
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- lsls r0, r4, 4
- adds r0, r1
- ldrh r1, [r0, 0x2]
- mov r9, r1
- ldrh r0, [r0]
- mov r10, r0
- b _081647CE
- .pool
-_081646FC:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08164750
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =gUnknown_03006298
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x2C
- muls r1, r0
- ldr r0, =0xfffffed4
- adds r2, r5, r0
- movs r0, 0xEC
- muls r0, r2
- adds r1, r0
- adds r3, r1
- movs r1, 0xEE
- lsls r1, 3
- adds r0, r3, r1
- ldrh r0, [r0]
- mov r9, r0
- ldr r2, =0x0000076c
- adds r3, r2
- ldrh r3, [r3]
- mov r10, r3
- b _081647CE
- .pool
-_08164750:
- ldr r4, =gSaveBlock2Ptr
- ldr r3, [r4]
- ldr r1, =gUnknown_03006298
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r2, =0xfffffe70
- adds r1, r5, r2
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r0, r2
- adds r3, r0
- adds r0, r3, 0
- adds r0, 0xE2
- ldrh r0, [r0]
- mov r9, r0
- adds r3, 0xE0
- ldrh r3, [r3]
- mov r10, r3
- movs r3, 0
- ldr r7, =gStringVar3
- mov r8, r7
- adds r0, r4, 0
- mov r12, r0
- adds r4, r2, 0
- movs r6, 0x8A
- lsls r6, 1
-_08164794:
- mov r1, r8
- adds r2, r3, r1
- mov r1, r12
- ldr r0, [r1]
- adds r1, r3, r4
- adds r0, r6
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08164794
- adds r1, r3, r7
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =0xfffffe70
- adds r1, r5, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r1, =0x0000011b
- adds r0, r2, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl ConvertInternationalString
-_081647CE:
- ldr r0, =gStringVar1
- movs r1, 0xD
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, =gStringVar2
- movs r1, 0xB
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringCopy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81646BC
-
- thumb_func_start sub_8164828
-sub_8164828: @ 8164828
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- bl GetFacilityEnemyMonLevel
- bl sub_81A39C4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =gSpecialVar_LastTalked
- ldrh r0, [r0]
- subs r5, r0, 0x2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r5, 1
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r1
- ldrh r7, [r0]
- movs r3, 0
- str r3, [sp]
- ldr r4, =gUnknown_085DD500
- lsls r6, r7, 16
- b _08164884
- .pool
-_0816487C:
- adds r4, 0x8
- ldr r0, [sp]
- adds r0, 0x1
- str r0, [sp]
-_08164884:
- ldr r1, [sp]
- cmp r1, 0x31
- bhi _0816489A
- lsrs r0, r6, 16
- bl sub_8162D34
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- cmp r1, r0
- bne _0816487C
-_0816489A:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _081648A4
- b _08164AC2
-_081648A4:
- lsls r0, 2
- ldr r1, =_081648B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081648B8:
- .4byte _081648CC
- .4byte _08164984
- .4byte _0816499C
- .4byte _081649BC
- .4byte _08164AC2
-_081648CC:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- bne _081648D6
- b _08164B54
-_081648D6:
- subs r0, 0xC9
- cmp r7, r0
- ble _081648E2
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _081648F4
-_081648E2:
- ldr r0, =gStringVar1
- adds r1, r7, 0
- bl GetFrontierTrainerName
- b _08164AC2
- .pool
-_081648F4:
- movs r3, 0
- lsls r2, r7, 16
- mov r10, r2
- ldr r6, =gStringVar1
- mov r9, r6
- ldr r4, =gSaveBlock2Ptr
- mov r8, r4
- ldr r5, =0xfffffe70
- adds r1, r7, r5
- lsls r0, r1, 4
- adds r0, r1
- lsls r4, r0, 2
- movs r5, 0x8A
- lsls r5, 1
-_08164910:
- mov r0, r9
- adds r2, r3, r0
- mov r1, r8
- ldr r0, [r1]
- adds r1, r3, r4
- adds r0, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08164910
- adds r1, r3, r6
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r3, =0xfffffe70
- adds r0, r7, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4
- ldr r5, =0x0000011b
- adds r0, r1, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- bl ConvertInternationalString
- ldr r0, =gStringVar2
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- adds r1, r4
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar3
- mov r3, r10
- lsrs r1, r3, 16
- bl GetFrontierTrainerName
- b _08164AC2
- .pool
-_08164984:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0
- ldr r4, =0x00000cc4
- adds r1, r4
- b _081649A8
- .pool
-_0816499C:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0
- ldr r5, =0x00000cc6
- adds r1, r5
-_081649A8:
- adds r0, r7, 0
- ldrh r1, [r1]
- bl sub_81646BC
- b _08164AC2
- .pool
-_081649BC:
- ldr r0, =gPartnerTrainerId
- strh r7, [r0]
- ldr r0, =0x0000012b
- cmp r7, r0
- bgt _08164A08
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- lsls r1, r5, 1
- adds r0, r1, 0
- adds r0, 0x8
- lsls r0, 1
- ldr r3, =0x00000cb4
- adds r2, r4, r3
- adds r0, r2, r0
- ldrh r3, [r0]
- ldr r5, =0x00000cd8
- adds r0, r4, r5
- strh r3, [r0]
- adds r1, 0x9
- lsls r1, 1
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x00000cda
- adds r4, r1
- strh r0, [r4]
- b _08164A46
- .pool
-_08164A08:
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _08164A30
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =gUnknown_03006298
- ldrh r2, [r3, 0x4]
- ldr r4, =0x00000cd8
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, 0x6]
- b _08164A40
- .pool
-_08164A30:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =gUnknown_03006298
- ldrh r2, [r3]
- ldr r4, =0x00000cd8
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
-_08164A40:
- ldr r5, =0x00000cda
- adds r1, r5
- strh r0, [r1]
-_08164A46:
- movs r5, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x4]
-_08164A4E:
- lsls r1, r5, 1
- mov r10, r1
- adds r2, r5, 0x1
- mov r9, r2
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r0, 1
- lsls r0, 24
- mov r8, r0
-_08164A60:
- ldr r3, [sp, 0x4]
- lsrs r0, r3, 24
- mov r4, r8
- lsrs r1, r4, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =gPartnerTrainerId
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164A60
- movs r2, 0
- cmp r2, r5
- bge _08164AA2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164AA2
- adds r6, r1, 0
-_08164A8E:
- adds r2, 0x1
- cmp r2, r5
- bge _08164AA2
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08164A8E
-_08164AA2:
- cmp r2, r5
- bne _08164A60
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000cb4
- adds r0, r1
- add r0, r10
- strh r3, [r0]
- mov r5, r9
- cmp r5, 0xD
- ble _08164A4E
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r3, =0x00000cd6
- adds r0, r3
- strh r7, [r0]
-_08164AC2:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- beq _08164B54
- subs r0, 0xC9
- cmp r7, r0
- bgt _08164AF8
- ldr r0, =gUnknown_085DD500
- ldr r4, [sp]
- lsls r1, r4, 3
- b _08164B04
- .pool
-_08164AF8:
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _08164B28
- ldr r0, =gUnknown_085DD500
- ldr r5, [sp]
- lsls r1, r5, 3
-_08164B04:
- adds r0, 0x4
- adds r1, r0
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- b _08164B54
- .pool
-_08164B28:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r7, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- ldr r1, =gUnknown_085DD690
- lsrs r0, 25
- adds r0, r1
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_08164B54:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164828
-
- thumb_func_start sub_8164B74
-sub_8164B74: @ 8164B74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r6, [r0]
- bl GetMultiplayerId
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x6
- bls _08164BAC
- b _08164DB6
-_08164BAC:
- lsls r0, 2
- ldr r1, =_08164BD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08164BD0:
- .4byte _08164BEC
- .4byte _08164C3C
- .4byte _08164CE0
- .4byte _08164D14
- .4byte _08164D98
- .4byte _08164DA8
- .4byte _08164DB6
-_08164BEC:
- cmp r5, 0x3
- beq _08164BF2
- b _08164DB0
-_08164BF2:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r7, 1
- adds r0, r1
- ldr r3, =0x00000cec
- adds r0, r3
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- bne _08164C18
- b _08164DB6
-_08164C18:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0x4
- bl SendBlock
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _08164DB4
- .pool
-_08164C3C:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _08164C4A
- b _08164DB6
-_08164C4A:
- bl ResetBlockReceivedFlags
- ldr r1, =gBlockRecvBuffer
- movs r0, 0x80
- lsls r0, 1
- adds r2, r1, r0
- ldrh r0, [r1]
- ldrh r3, [r2]
- cmp r0, r3
- bhi _08164C60
- ldrh r0, [r2]
-_08164C60:
- str r0, [sp]
- movs r4, 0
- ldr r0, =gSaveBlock2Ptr
- mov r9, r0
-_08164C68:
- adds r1, r4, 0x1
- mov r8, r1
- lsrs r0, r4, 31
- adds r0, r4, r0
- asrs r0, 1
- lsls r7, r0, 24
-_08164C74:
- ldr r0, [sp]
- lsls r0, 24
- lsrs r0, 24
- lsrs r1, r7, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r4
- bge _08164CB0
- mov r1, r9
- ldr r0, [r1]
- ldr r1, =0x00000cb4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164CB0
- ldr r6, =gSaveBlock2Ptr
- adds r5, r1, 0
-_08164C9C:
- adds r2, 0x1
- cmp r2, r4
- bge _08164CB0
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08164C9C
-_08164CB0:
- cmp r4, r2
- bne _08164C74
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r4, 1
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r1
- strh r3, [r0]
- mov r4, r8
- cmp r4, 0xD
- ble _08164C68
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
- b _08164DB4
- .pool
-_08164CE0:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _08164DB6
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r3, =0x00000cb4
- adds r1, r3
- movs r2, 0x28
- bl SendBlock
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _08164DB4
- .pool
-_08164D14:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _08164DB6
- bl ResetBlockReceivedFlags
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r5, =0x00000cb4
- adds r0, r5
- ldr r1, =gBlockRecvBuffer
- movs r2, 0x28
- bl memcpy
- ldr r2, =gTrainerBattleOpponent_A
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r1, r5
- adds r0, r1, r0
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r4, =gTrainerBattleOpponent_B
- lsls r0, r6, 1
- adds r0, 0x1
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4]
- ldrh r0, [r2]
- movs r1, 0
- bl sub_8162614
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_8162614
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08164DB0
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08164DB0
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
- b _08164DB4
- .pool
-_08164D98:
- bl sub_800AC34
- ldr r1, =gSpecialVar_Result
- movs r0, 0x5
- b _08164DB4
- .pool
-_08164DA8:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08164DB6
-_08164DB0:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x6
-_08164DB4:
- strh r0, [r1]
-_08164DB6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164B74
-
- thumb_func_start sub_8164DCC
-sub_8164DCC: @ 8164DCC
- push {lr}
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08164DDA
- bl sub_800AC34
-_08164DDA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164DCC
-
- thumb_func_start sub_8164DE4
-sub_8164DE4: @ 8164DE4
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cd6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xF
- bl sub_8162614
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164DE4
-
- thumb_func_start sub_8164E04
-sub_8164E04: @ 8164E04
- push {r4-r6,lr}
- sub sp, 0x20
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _08164E9A
- ldr r5, =gTrainerBattleOpponent_A
- ldrh r1, [r5]
- mov r0, sp
- bl GetFrontierTrainerName
- mov r0, sp
- bl StripExtCtrlCodes
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000bd8
- adds r0, r1
- mov r1, sp
- bl StringCopy
- ldr r0, [r4]
- ldr r2, =0x00000beb
- adds r0, r2
- ldrh r1, [r5]
- bl sub_8165B88
- ldr r6, =gBattlerPartyIndexes
- ldrh r0, [r6, 0x2]
- movs r5, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, [r4]
- ldr r2, =0x00000bd6
- adds r1, r2
- strh r0, [r1]
- ldrh r0, [r6]
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, [r4]
- ldr r2, =0x00000bd4
- adds r1, r2
- strh r0, [r1]
- movs r2, 0
- movs r5, 0xBE
- lsls r5, 4
- ldr r3, =gBattleMons + 0x30
- adds r6, r4, 0
-_08164E7C:
- ldr r0, [r4]
- adds r0, r5
- adds r0, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xA
- ble _08164E7C
- ldr r0, [r6]
- ldr r1, =gBattleOutcome
- ldrb r1, [r1]
- ldr r2, =0x00000d06
- adds r0, r2
- strb r1, [r0]
-_08164E9A:
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164E04
-
- thumb_func_start sub_8164ED8
-sub_8164ED8: @ 8164ED8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r3, 0
- movs r2, 0
- ldr r4, =0x0000064c
- adds r1, r0, r4
-_08164EEA:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x39
- bls _08164EEA
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000734
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r3
- beq _08164F0A
- ldr r3, =0x0000064c
- adds r0, r1, r3
- bl sub_8164FB8
-_08164F0A:
- movs r4, 0
- adds r7, r5, 0
- movs r6, 0xEC
- mov r8, r7
-_08164F12:
- adds r0, r4, 0
- muls r0, r6
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- ldr r1, [r7]
- movs r3, 0
- movs r2, 0
- adds r5, r4, 0x1
- adds r1, r0
-_08164F26:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x39
- bls _08164F26
- mov r0, r8
- ldr r2, [r0]
- adds r1, r4, 0
- muls r1, r6
- movs r4, 0x82
- lsls r4, 4
- adds r0, r2, r4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08164F52
- movs r3, 0xE7
- lsls r3, 3
- adds r0, r1, r3
- adds r0, r2, r0
- bl sub_8164FB8
-_08164F52:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08164F12
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164ED8
-
- thumb_func_start CalcEmeraldBattleTowerChecksum
-CalcEmeraldBattleTowerChecksum: @ 8164F70
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xE8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08164F7E:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x39
- bls _08164F7E
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CalcEmeraldBattleTowerChecksum
-
- thumb_func_start sub_8164F94
-sub_8164F94: @ 8164F94
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08164FA2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08164FA2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8164F94
-
- thumb_func_start sub_8164FB8
-sub_8164FB8: @ 8164FB8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08164FBE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x3A
- bls _08164FBE
- pop {r0}
- bx r0
- thumb_func_end sub_8164FB8
-
- thumb_func_start sub_8164FCC
-sub_8164FCC: @ 8164FCC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r0, 23
- lsrs r1, 22
- adds r0, r1
- movs r1, 0xCE
- lsls r1, 4
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _08164FEE
- adds r0, r1, 0
-_08164FEE:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8164FCC
-
- thumb_func_start sub_8164FFC
-sub_8164FFC: @ 8164FFC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_085DFA42
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- cmp r4, 0x3
- bls _0816501C
- movs r0, 0x3
- b _08165022
- .pool
-_0816501C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
-_08165022:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8164FFC
-
- thumb_func_start sub_816502C
-sub_816502C: @ 816502C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- adds r5, r0, 0
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_8164FFC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0x44
- mov r10, r2
- cmp r5, 0
- beq _0816506A
- movs r0, 0x45
- mov r10, r0
-_0816506A:
- ldr r1, =gSpecialVar_Result
- mov r9, r1
- movs r0, 0
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8164FCC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _081650DC
- movs r6, 0
- cmp r6, r8
- bge _081650DC
- ldr r7, =gSaveBlock1Ptr
- mov r5, sp
-_0816508C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r6, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r0, r1
- ldrh r1, [r0]
- subs r1, 0x1
- movs r0, 0
- strb r1, [r5]
- strb r0, [r5, 0x1]
- movs r0, 0x64
- muls r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r4, r0, r1
- ldr r0, [r7]
- adds r0, r4
- mov r1, r10
- bl GetMonData
- cmp r0, 0
- bne _081650D4
- movs r0, 0x1
- mov r2, r9
- strh r0, [r2]
- ldr r0, [r7]
- adds r0, r4
- mov r1, r10
- bl SetMonData
- ldr r0, [r7]
- adds r0, r4
- bl GetRibbonCount
- strb r0, [r5, 0x1]
-_081650D4:
- adds r5, 0x4
- adds r6, 0x1
- cmp r6, r8
- blt _0816508C
-_081650DC:
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0
- beq _08165132
- movs r0, 0x2A
- bl IncrementGameStat
- mov r0, r8
- cmp r0, 0x1
- ble _08165110
- mov r3, sp
- add r2, sp, 0x4
- mov r6, r8
- subs r6, 0x1
-_081650F8:
- ldrb r1, [r3, 0x1]
- ldrb r0, [r2, 0x1]
- cmp r0, r1
- bls _08165108
- ldr r1, [sp]
- ldr r0, [r2]
- str r0, [sp]
- str r1, [r2]
-_08165108:
- adds r2, 0x4
- subs r6, 0x1
- cmp r6, 0
- bne _081650F8
-_08165110:
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- bls _08165132
- ldr r2, =gSaveBlock1Ptr
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- movs r0, 0x8E
- lsls r0, 2
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- mov r1, r10
- bl sub_80EE4DC
-_08165132:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816502C
-
- thumb_func_start sub_816515C
-sub_816515C: @ 816515C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r0, =0x00000bec
- adds r7, r2, r0
- ldrb r0, [r2, 0x8]
- adds r5, r1, 0
- cmp r0, 0
- beq _08165194
- ldr r4, =gUnknown_085DCEFA
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _081651A6
- .pool
-_08165194:
- ldr r4, =gUnknown_085DCEDC
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_081651A6:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r1, [r5]
- adds r1, 0xA
- bl CopyUnalignedWord
- adds r0, r7, 0x4
- ldr r1, [r5]
- bl StringCopy7
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r6, 0x7
- movs r4, 0
- ldr r0, =gSaveBlock1Ptr
- mov r8, r0
- adds r5, r7, 0
- adds r5, 0x10
- ldr r1, =0x00002bbc
- mov r12, r1
- adds r3, r7, 0
- adds r3, 0x28
- adds r2, r7, 0
- adds r2, 0x1C
-_081651E0:
- lsls r0, r4, 1
- mov r9, r0
- mov r1, r8
- ldr r0, [r1]
- add r0, r12
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- strh r6, [r2]
- adds r0, r6, 0x6
- strh r0, [r3]
- adds r6, 0x1
- adds r5, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _081651E0
- movs r4, 0
-_08165206:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_80686FC
- adds r4, 0x1
- cmp r4, 0x2
- ble _08165206
- adds r0, r7, 0
- bl sub_8165328
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816515C
-
- thumb_func_start GetEreaderTrainerFrontSpriteId
-GetEreaderTrainerFrontSpriteId: @ 8165244
- ldr r1, =gFacilityClassToPicIndex
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end GetEreaderTrainerFrontSpriteId
-
- thumb_func_start GetEreaderTrainerClassId
-GetEreaderTrainerClassId: @ 8165264
- ldr r1, =gFacilityClassToTrainerClass
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end GetEreaderTrainerClassId
-
- thumb_func_start GetEreaderTrainerName
-GetEreaderTrainerName: @ 8165284
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xBF
- lsls r1, 4
- adds r4, r0, r1
-_08165294:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x4
- ble _08165294
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetEreaderTrainerName
-
- thumb_func_start ValidateEReaderTrainer
-ValidateEReaderTrainer: @ 81652B4
- push {r4-r6,lr}
- ldr r2, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r2]
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r3, =0x00000bec
- adds r5, r0, r3
- movs r4, 0
- movs r3, 0
- adds r6, r1, 0
- adds r1, r5, 0
-_081652CC:
- ldm r1!, {r0}
- orrs r4, r0
- adds r3, 0x1
- cmp r3, 0x2D
- bls _081652CC
- cmp r4, 0
- bne _081652EC
- movs r0, 0x1
- strh r0, [r2]
- b _08165316
- .pool
-_081652EC:
- movs r4, 0
- movs r3, 0
- adds r2, r5, 0
-_081652F2:
- ldm r2!, {r0}
- adds r4, r0
- adds r3, 0x1
- cmp r3, 0x2D
- bls _081652F2
- ldr r1, [r6]
- ldr r2, =0x00000ca4
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r4
- beq _08165316
- ldr r3, =0x00000bec
- adds r0, r1, r3
- bl sub_816534C
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_08165316:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ValidateEReaderTrainer
-
- thumb_func_start sub_8165328
-sub_8165328: @ 8165328
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08165336:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08165336
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8165328
-
- thumb_func_start sub_816534C
-sub_816534C: @ 816534C
- push {lr}
- movs r1, 0
- movs r2, 0
-_08165352:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _08165352
- pop {r0}
- bx r0
- thumb_func_end sub_816534C
-
- thumb_func_start sub_8165360
-sub_8165360: @ 8165360
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165360
-
- thumb_func_start sub_816537C
-sub_816537C: @ 816537C
- push {lr}
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08165398
- ldr r1, =gStringVar4
- movs r0, 0xFF
- strb r0, [r1]
- b _081653C0
- .pool
-_08165398:
- cmp r0, 0x1
- bne _081653B4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c14
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081653C0
- .pool
-_081653B4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c08
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
-_081653C0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816537C
-
- thumb_func_start sub_81653CC
-sub_81653CC: @ 81653CC
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081653E0
- bl sub_80F01B8
-_081653E0:
- movs r0, 0x77
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081653F8
- bl sub_80F01B8
- movs r0, 0x77
- bl FlagClear
-_081653F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81653CC
-
- thumb_func_start sub_8165404
-sub_8165404: @ 8165404
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x70
- lsls r0, 16
- lsrs r7, r0, 16
- bl GetFacilityEnemyMonLevel
- ldr r0, =0x00000c03
- cmp r7, r0
- beq _08165420
- b _0816554C
-_08165420:
- movs r0, 0
- mov r10, r0
- mov r1, sp
- adds r1, 0x44
- str r1, [sp, 0x64]
-_0816542A:
- mov r2, r10
- lsls r2, 2
- mov r9, r2
- mov r3, r10
- adds r3, 0x1
- str r3, [sp, 0x60]
- mov r0, r9
- add r0, r10
- lsls r0, 2
- ldr r6, =gUnknown_085DD6D0
- adds r5, r0, r6
-_08165440:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x44]
- ldr r0, =0x0000ef2a
- adds r1, r4, 0
- bl IsShinyOtIdPersonality
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _08165440
- ldr r0, [sp, 0x44]
- bl GetNatureFromPersonality
- ldrb r1, [r5, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08165440
- movs r0, 0x64
- mov r6, r10
- muls r6, r0
- ldr r1, =gPlayerParty + 300
- mov r8, r1
- adds r0, r6, r1
- mov r5, r9
- add r5, r10
- lsls r5, 2
- ldr r2, =gUnknown_085DD6D0
- adds r3, r5, r2
- ldrh r1, [r3]
- ldrb r2, [r3, 0x3]
- ldrb r3, [r3, 0x2]
- mov r12, r3
- movs r4, 0x1
- str r4, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r4, =0x0000ef2a
- str r4, [sp, 0xC]
- mov r3, r12
- bl CreateMon
- str r7, [sp, 0x44]
- movs r3, 0
- mov r4, r8
- ldr r0, =gUnknown_085DD6D5
- adds r5, r0
-_081654B0:
- adds r1, r3, 0
- adds r1, 0x1A
- adds r2, r5, r3
- adds r0, r6, r4
- bl SetMonData
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r3, r0, 0
- cmp r3, 0x5
- ble _081654B0
- movs r0, 0
- str r0, [sp, 0x44]
- movs r1, 0
- movs r6, 0x64
- mov r4, r10
- muls r4, r6
- ldr r7, =gUnknown_085DD6DC
- ldr r6, =gPlayerParty + 300
- mov r0, r9
- add r0, r10
- lsls r5, r0, 2
-_081654DE:
- lsls r0, r1, 1
- adds r0, r5
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [sp, 0x64]
- ldrb r2, [r0]
- adds r0, r4, r6
- bl SetMonMoveSlot
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r1, r0, 0
- cmp r1, 0x3
- ble _081654DE
- movs r1, 0x64
- mov r4, r10
- muls r4, r1
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, =gTrainers + 804 * 0x28 + 0x4 @ TRAINER_STEVEN name
- bl SetMonData
- movs r0, 0
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- adds r0, r4, 0
- bl CalculateMonStats
- ldr r2, [sp, 0x60]
- mov r10, r2
- cmp r2, 0x2
- bgt _0816552E
- b _0816542A
-_0816552E:
- b _0816585A
- .pool
-_0816554C:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- bne _08165564
- add r0, sp, 0x10
- ldr r1, =gGameLanguage
- ldrb r1, [r1]
- strb r1, [r0]
- b _0816585A
- .pool
-_08165564:
- ldr r0, =0x0000012b
- cmp r7, r0
- bls _0816556C
- b _081656E8
-_0816556C:
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x50]
- adds r0, r7, 0
- bl sub_8165D08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4C]
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x58]
- movs r3, 0
- mov r10, r3
- mov r6, sp
- adds r6, 0x44
- str r6, [sp, 0x64]
- mov r0, sp
- adds r0, 0x48
- str r0, [sp, 0x5C]
-_081655A6:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r0, r10
- adds r0, 0x12
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- str r1, [sp, 0x54]
- movs r6, 0x64
- mov r3, r10
- muls r3, r6
- mov r8, r3
- ldr r0, =gPlayerParty + 300
- mov r9, r0
- mov r0, r8
- add r0, r9
- ldr r6, =gFacilityTrainerMons
- ldr r4, [r6]
- lsls r5, r1, 4
- adds r4, r5, r4
- ldrh r1, [r4]
- ldr r3, [sp, 0x50]
- lsls r2, r3, 24
- ldrb r3, [r4, 0xC]
- mov r12, r3
- ldr r3, [sp, 0x4C]
- str r3, [sp]
- ldrb r4, [r4, 0xB]
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x58]
- str r3, [sp, 0x8]
- lsrs r2, 24
- mov r3, r12
- bl CreateMonWithEVSpreadPersonalityOTID
- movs r0, 0xFF
- str r0, [sp, 0x48]
- movs r0, 0
- str r0, [sp, 0x44]
- movs r2, 0
- mov r0, r10
- adds r0, 0x1
- str r0, [sp, 0x60]
- mov r4, r8
- mov r3, r9
-_08165604:
- ldr r0, [r6]
- adds r0, r5, r0
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, r3
- str r3, [sp, 0x68]
- bl SetMonMoveSlot
- ldr r0, [r6]
- adds r0, r5, r0
- ldr r2, [sp, 0x44]
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- ldr r3, [sp, 0x68]
- cmp r0, 0xDA
- bne _08165634
- movs r0, 0
- str r0, [sp, 0x48]
-_08165634:
- adds r0, r2, 0x1
- str r0, [sp, 0x44]
- adds r2, r0, 0
- cmp r2, 0x3
- ble _08165604
- movs r1, 0x64
- mov r4, r10
- muls r4, r1
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x5C]
- bl SetMonData
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- ldr r2, [sp, 0x54]
- lsls r0, r2, 4
- adds r0, r1
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- str r0, [sp, 0x44]
- movs r2, 0
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r7
- adds r0, r1
- adds r3, r0, 0x4
-_0816567E:
- mov r1, sp
- adds r1, r2
- adds r1, 0x10
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r2, r0, 0
- cmp r2, 0x7
- ble _0816567E
- movs r3, 0x64
- mov r4, r10
- muls r4, r3
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x7
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r7, 0
- bl sub_8162F68
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- ldr r6, [sp, 0x60]
- mov r10, r6
- cmp r6, 0x1
- bgt _081656CA
- b _081655A6
-_081656CA:
- b _0816585A
- .pool
-_081656E8:
- ldr r0, =0x0000018f
- cmp r7, r0
- bls _081656F0
- b _081657F0
-_081656F0:
- ldr r1, =0xfffffed4
- adds r0, r7, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0
- mov r10, r2
- mov r3, sp
- adds r3, 0x44
- str r3, [sp, 0x64]
- add r5, sp, 0x18
- ldr r6, =0x000015fc
- mov r9, r6
- ldr r0, =0x0000ffff
- mov r8, r0
- movs r1, 0x24
- str r1, [sp, 0x6C]
-_08165710:
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- adds r4, r7, 0
- muls r4, r0
- movs r2, 0xE7
- lsls r2, 3
- adds r4, r2
- ldr r0, [r1]
- adds r4, r0, r4
- ldr r3, =0x00000cb4
- adds r0, r3
- ldr r6, [sp, 0x6C]
- adds r0, r6
- ldrh r1, [r0]
- movs r0, 0x2C
- muls r1, r0
- adds r1, r4, r1
- adds r0, r5, 0
- adds r1, 0x34
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3}
- stm r0!, {r2,r3}
- adds r1, r4, 0x4
- add r0, sp, 0x10
- bl StringCopy
- adds r4, 0xE4
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0816578C
- ldrh r0, [r5, 0x20]
- mov r6, r8
- ands r0, r6
- cmp r0, r9
- beq _0816579C
- mov r1, sp
- adds r1, 0x3D
- movs r0, 0xFF
- strb r0, [r1]
- add r0, sp, 0x38
- movs r1, 0x1
- bl ConvertInternationalString
- b _0816579C
- .pool
-_0816578C:
- ldrh r0, [r5, 0x20]
- mov r1, r8
- ands r0, r1
- cmp r0, r9
- bne _0816579C
- add r1, sp, 0x10
- movs r0, 0xFF
- strb r0, [r1, 0x5]
-_0816579C:
- movs r0, 0x64
- mov r4, r10
- muls r4, r0
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8068338
- adds r0, r4, 0
- movs r1, 0x7
- add r2, sp, 0x10
- bl SetMonData
- movs r2, 0x96
- lsls r2, 1
- adds r0, r7, r2
- lsls r0, 16
- lsrs r0, 16
- bl sub_8162F68
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- ldr r3, [sp, 0x6C]
- adds r3, 0x2
- str r3, [sp, 0x6C]
- movs r6, 0x1
- add r10, r6
- mov r0, r10
- cmp r0, 0x1
- ble _08165710
- b _0816585A
- .pool
-_081657F0:
- ldr r1, =0xfffffe70
- adds r0, r7, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0
- mov r10, r2
- mov r3, sp
- adds r3, 0x44
- str r3, [sp, 0x64]
- ldr r6, =gSaveBlock2Ptr
- mov r8, r6
- movs r5, 0x24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, 0
- adds r6, 0xDC
-_08165812:
- movs r0, 0x64
- mov r4, r10
- muls r4, r0
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, r6
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r5
- ldrb r2, [r0]
- adds r0, r4, 0
- bl CreateApprenticeMon
- movs r3, 0xC8
- lsls r3, 1
- adds r0, r7, r3
- lsls r0, 16
- lsrs r0, 16
- bl sub_8162F68
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- adds r5, 0x2
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x1
- ble _08165812
-_0816585A:
- add sp, 0x70
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165404
-
- thumb_func_start sub_816587C
-sub_816587C: @ 816587C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- movs r2, 0
- adds r1, r6, 0
- adds r3, r6, 0
- adds r3, 0x58
-_08165894:
- ldrh r0, [r1, 0x1C]
- cmp r0, 0
- beq _0816589C
- adds r2, 0x1
-_0816589C:
- adds r1, 0x2C
- cmp r1, r3
- ble _08165894
- cmp r2, 0x3
- beq _081658B4
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xEC
- bl memset
- movs r0, 0
- b _081659BE
-_081658B4:
- ldrb r0, [r6]
- strb r0, [r5]
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2]
- movs r2, 0
- ldr r0, =gUnknown_085DCF40
- ldrb r1, [r0]
- ldrb r3, [r6, 0x1]
- mov r12, r0
- adds r4, r5, 0x4
- adds r7, r6, 0x4
- movs r0, 0xC
- adds r0, r5
- mov r9, r0
- movs r0, 0xC
- adds r0, r6
- mov r8, r0
- adds r0, r5, 0
- adds r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x10
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r0, 0x1C
- str r0, [sp, 0x8]
- adds r0, 0xC
- str r0, [sp, 0xC]
- adds r0, 0x90
- str r0, [sp, 0x10]
- cmp r1, r3
- beq _08165904
- mov r1, r12
-_081658F6:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x51
- bgt _08165904
- ldrb r0, [r1]
- cmp r0, r3
- bne _081658F6
-_08165904:
- cmp r2, 0x52
- beq _08165918
- lsls r0, r2, 1
- mov r1, r12
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- b _0816591A
- .pool
-_08165918:
- movs r0, 0x2B
-_0816591A:
- strb r0, [r5, 0x1]
- movs r2, 0
- adds r3, r7, 0
-_08165920:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08165920
- movs r2, 0
- mov r4, r9
- mov r3, r8
-_08165934:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08165934
- mov r3, r10
- ldr r1, [sp, 0x4]
- movs r2, 0x5
-_08165948:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165948
- ldr r3, =gUnknown_085DFA46
- ldr r1, [sp, 0x8]
- movs r2, 0x5
-_0816595C:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0816595C
- ldr r3, =gUnknown_085DFA52
- ldr r1, [sp, 0xC]
- movs r2, 0x5
-_08165970:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165970
- adds r2, r6, 0
- adds r3, r5, 0
- movs r4, 0x58
- adds r4, r2
- mov r8, r4
-_08165988:
- adds r1, r3, 0
- adds r1, 0x34
- adds r0, r2, 0
- adds r0, 0x1C
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
- adds r2, 0x2C
- adds r3, 0x2C
- cmp r2, r8
- ble _08165988
- movs r0, 0
- str r0, [sp]
- ldr r2, =0x0500000b
- mov r0, sp
- ldr r1, [sp, 0x10]
- bl CpuSet
- adds r0, r5, 0
- bl CalcEmeraldBattleTowerChecksum
- movs r0, 0x1
-_081659BE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_816587C
-
- thumb_func_start sub_81659DC
-sub_81659DC: @ 81659DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- movs r2, 0
- adds r1, r4, 0
- adds r3, r4, 0
- adds r3, 0x58
-_081659F4:
- ldrh r0, [r1, 0x34]
- cmp r0, 0
- beq _081659FC
- adds r2, 0x1
-_081659FC:
- adds r1, 0x2C
- cmp r1, r3
- ble _081659F4
- cmp r2, 0x3
- beq _08165A14
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xA4
- bl memset
- movs r0, 0
- b _08165AD8
-_08165A14:
- ldrb r0, [r4]
- strb r0, [r6]
- ldrh r0, [r4, 0x2]
- strh r0, [r6, 0x2]
- movs r2, 0
- ldr r0, =gUnknown_085DCF40
- ldrb r1, [r0, 0x1]
- ldrb r3, [r4, 0x1]
- mov r12, r0
- adds r5, r6, 0x4
- adds r7, r4, 0x4
- movs r0, 0xC
- adds r0, r6
- mov r9, r0
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- adds r0, 0x10
- str r0, [sp]
- movs r0, 0x10
- adds r0, r4
- mov r10, r0
- cmp r1, r3
- beq _08165A58
- mov r1, r12
- adds r1, 0x1
-_08165A4A:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x51
- bgt _08165A58
- ldrb r0, [r1]
- cmp r0, r3
- bne _08165A4A
-_08165A58:
- cmp r2, 0x52
- beq _08165A68
- lsls r0, r2, 1
- add r0, r12
- ldrb r0, [r0]
- b _08165A6A
- .pool
-_08165A68:
- movs r0, 0x24
-_08165A6A:
- strb r0, [r6, 0x1]
- movs r2, 0
- adds r3, r7, 0
-_08165A70:
- adds r0, r5, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08165A70
- movs r2, 0
- mov r5, r9
- mov r3, r8
-_08165A84:
- adds r0, r5, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08165A84
- mov r3, r10
- ldr r1, [sp]
- movs r2, 0x5
-_08165A98:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165A98
- adds r2, r4, 0
- adds r3, r6, 0
- movs r4, 0x58
- adds r4, r2
- mov r8, r4
-_08165AB0:
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r2, 0
- adds r0, 0x34
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r5,r7}
- stm r1!, {r5,r7}
- adds r2, 0x2C
- adds r3, 0x2C
- cmp r2, r8
- ble _08165AB0
- adds r0, r6, 0
- bl sub_8164F94
- movs r0, 0x1
-_08165AD8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81659DC
-
- thumb_func_start sub_8165AE8
-sub_8165AE8: @ 8165AE8
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0
- str r0, [r2, 0x40]
- movs r3, 0
- adds r4, r2, 0
-_08165AF4:
- ldr r0, [r2, 0x40]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2, 0x40]
- adds r3, 0x1
- cmp r3, 0xF
- bls _08165AF4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8165AE8
-
- thumb_func_start sub_8165B08
-sub_8165B08: @ 8165B08
- push {lr}
- movs r1, 0
- movs r3, 0
- adds r2, r0, 0
-_08165B10:
- stm r2!, {r3}
- adds r1, 0x1
- cmp r1, 0x10
- bls _08165B10
- bl ResetApprenticeStruct
- pop {r0}
- bx r0
- thumb_func_end sub_8165B08
-
- thumb_func_start sub_8165B20
-sub_8165B20: @ 8165B20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- mov r8, r0
- mov r9, r8
-_08165B30:
- lsls r0, r5, 4
- adds r1, r0, r5
- lsls r1, 2
- adds r1, 0xDC
- mov r3, r9
- ldr r2, [r3]
- movs r4, 0
- movs r3, 0
- adds r6, r0, 0
- adds r7, r5, 0x1
- adds r2, r1
-_08165B46:
- ldm r2!, {r0}
- adds r4, r0
- adds r3, 0x1
- cmp r3, 0xF
- bls _08165B46
- mov r0, r8
- ldr r2, [r0]
- adds r0, r6, r5
- lsls r1, r0, 2
- movs r3, 0x8E
- lsls r3, 1
- adds r0, r2, r3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r4
- beq _08165B70
- adds r0, r1, 0
- adds r0, 0xDC
- adds r0, r2, r0
- bl sub_8165B08
-_08165B70:
- adds r5, r7, 0
- cmp r5, 0x3
- ble _08165B30
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165B20
-
- thumb_func_start sub_8165B88
-sub_8165B88: @ 8165B88
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- adds r3, r2, 0
- movs r0, 0xFA
- lsls r0, 1
- cmp r2, r0
- bne _08165BA4
- ldr r0, =gGameLanguage
- b _08165C28
- .pool
-_08165BA4:
- ldr r0, =0x0000012b
- cmp r2, r0
- bhi _08165BB8
- ldr r0, =gGameLanguage
- b _08165C28
- .pool
-_08165BB8:
- ldr r0, =0x0000018f
- cmp r2, r0
- bhi _08165BFC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08165BDC
- bl sub_81864B4
- b _08165C2A
- .pool
-_08165BDC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0xfffffed4
- adds r2, r1
- movs r1, 0xEC
- muls r1, r2
- adds r0, r1
- ldr r1, =0x0000081c
- adds r0, r1
- b _08165C28
- .pool
-_08165BFC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08165C14
- bl sub_81864C0
- b _08165C2A
- .pool
-_08165C14:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =0xfffffe70
- adds r1, r3, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r1, =0x0000011b
- adds r0, r2, r1
-_08165C28:
- ldrb r0, [r0]
-_08165C2A:
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165B88
-
- thumb_func_start GetFacilityEnemyMonLevel
-GetFacilityEnemyMonLevel: @ 8165C40
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _08165C84
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldrb r0, [r2]
- lsls r0, 30
- lsrs r0, 30
- bl GetFrontierEnemyMonLevel
- b _08165C88
- .pool
-_08165C84:
- bl GetTentEnemyMonLevel
-_08165C88:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetFacilityEnemyMonLevel
-
- thumb_func_start GetFrontierEnemyMonLevel
-GetFrontierEnemyMonLevel: @ 8165C90
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08165C9E
- cmp r0, 0x1
- beq _08165CA2
-_08165C9E:
- movs r0, 0x32
- b _08165CB0
-_08165CA2:
- bl sub_8165CB4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _08165CB0
- movs r0, 0x3C
-_08165CB0:
- pop {r1}
- bx r1
- thumb_func_end GetFrontierEnemyMonLevel
-
- thumb_func_start sub_8165CB4
-sub_8165CB4: @ 8165CB4
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_08165CBA:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _08165CF4
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08165CF4
- adds r0, r4, 0
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- ble _08165CF4
- adds r6, r0, 0
-_08165CF4:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08165CBA
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8165CB4
-
- thumb_func_start sub_8165D08
-sub_8165D08: @ 8165D08
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- cmp r0, 0x63
- bls _08165D3A
- movs r1, 0x6
- cmp r0, 0x77
- bls _08165D3A
- movs r1, 0x9
- cmp r0, 0x8B
- bls _08165D3A
- movs r1, 0xC
- cmp r0, 0x9F
- bls _08165D3A
- movs r1, 0xF
- cmp r0, 0xB3
- bls _08165D3A
- movs r1, 0x12
- cmp r0, 0xC7
- bls _08165D3A
- movs r1, 0x1F
- cmp r0, 0xDB
- bhi _08165D3A
- movs r1, 0x15
-_08165D3A:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8165D08
-
- thumb_func_start sub_8165D40
-sub_8165D40: @ 8165D40
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _08165D58
- cmp r0, 0x3
- beq _08165D58
- cmp r0, 0x4
- bne _08165D70
-_08165D58:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- b _08165D72
- .pool
-_08165D70:
- movs r0, 0
-_08165D72:
- pop {r1}
- bx r1
- thumb_func_end sub_8165D40
-
- thumb_func_start GetTentEnemyMonLevel
-GetTentEnemyMonLevel: @ 8165D78
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bne _08165DA8
- ldr r1, =gFacilityTrainers
- ldr r0, =gSlateportBattleTentTrainers
- str r0, [r1]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gSlateportBattleTentMons
- b _08165DF2
- .pool
-_08165DA8:
- cmp r0, 0x2
- bne _08165DC8
- ldr r1, =gFacilityTrainers
- ldr r0, =gVerdanturfBattleTentTrainers
- str r0, [r1]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gVerdanturfBattleTentMons
- b _08165DF2
- .pool
-_08165DC8:
- cmp r0, 0x3
- bne _08165DE8
- ldr r1, =gFacilityTrainers
- ldr r0, =gFallarborBattleTentTrainers
- str r0, [r1]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gFallarborBattleTentMons
- b _08165DF2
- .pool
-_08165DE8:
- ldr r1, =gFacilityTrainers
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
-_08165DF2:
- str r0, [r1]
- bl sub_8165CB4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1D
- bhi _08165E02
- movs r0, 0x1E
-_08165E02:
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetTentEnemyMonLevel
-
- thumb_func_start sub_8165E18
-sub_8165E18: @ 8165E18
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
-_08165E1C:
- bl sub_8165D40
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r5]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r3, r0
- bge _08165E58
- adds r2, 0x2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r4
- beq _08165E58
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- subs r2, 0x2
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_08165E4A:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _08165E58
- ldrh r0, [r1]
- cmp r0, r4
- bne _08165E4A
-_08165E58:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r3, r0
- bne _08165E1C
- ldr r5, =gTrainerBattleOpponent_A
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r2, [r0]
- adds r0, r2, 0x1
- cmp r0, 0x2
- bgt _08165E8C
- lsls r0, r2, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_08165E8C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165E18
-
- thumb_func_start sub_8165EA4
-sub_8165EA4: @ 8165EA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- bl GetTentEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r2, [r0]
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r2
- adds r0, r1
- ldr r0, [r0, 0x30]
- str r0, [sp, 0x28]
- movs r0, 0
- str r0, [sp, 0x24]
- ldr r2, [sp, 0x28]
- ldrh r1, [r2]
- b _08165EFE
- .pool
-_08165EEC:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- lsls r0, 1
- ldr r6, [sp, 0x28]
- adds r0, r6
- ldrh r1, [r0]
-_08165EFE:
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _08165EEC
- movs r0, 0
- mov r8, r0
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x2C]
- b _08166092
- .pool
-_08165F24:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x24]
- bl __modsi3
- lsls r0, 1
- ldr r2, [sp, 0x28]
- adds r0, r2
- ldrh r4, [r0]
- movs r6, 0
- ldr r7, [sp, 0x18]
- add r7, r8
- b _08165F44
-_08165F42:
- adds r6, 0x1
-_08165F44:
- cmp r6, r7
- bge _08165F68
- movs r1, 0x64
- adds r0, r6, 0
- muls r0, r1
- ldr r2, =gEnemyParty
- adds r0, r2
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, =gFacilityTrainerMons
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrh r1, [r1]
- cmp r0, r1
- bne _08165F42
-_08165F68:
- cmp r6, r7
- beq _08165F6E
- b _08166092
-_08165F6E:
- movs r6, 0
- cmp r6, r7
- bge _08165FB8
- ldr r0, =gBattleFrontierHeldItems
- mov r9, r0
- movs r3, 0
-_08165F7A:
- ldr r1, =gEnemyParty
- adds r5, r3, r1
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x34]
- bl GetMonData
- ldr r3, [sp, 0x34]
- cmp r0, 0
- beq _08165FB0
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- ldr r1, =gFacilityTrainerMons
- ldr r2, [r1]
- lsls r1, r4, 4
- adds r1, r2
- ldrb r1, [r1, 0xA]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x34]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08165FB8
-_08165FB0:
- adds r3, 0x64
- adds r6, 0x1
- cmp r6, r7
- blt _08165F7A
-_08165FB8:
- cmp r6, r7
- bne _08166092
- movs r6, 0
- cmp r6, r8
- bge _08165FDA
- add r0, sp, 0xC
- ldrh r0, [r0]
- cmp r0, r4
- beq _08165FDA
- add r1, sp, 0xC
-_08165FCC:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, r8
- bge _08165FDA
- ldrh r0, [r1]
- cmp r0, r4
- bne _08165FCC
-_08165FDA:
- cmp r6, r8
- bne _08166092
- mov r2, r8
- lsls r0, r2, 1
- add r0, sp
- adds r0, 0xC
- strh r4, [r0]
- movs r6, 0x64
- adds r0, r7, 0
- muls r0, r6
- ldr r1, =gEnemyParty
- adds r0, r1
- ldr r5, =gFacilityTrainerMons
- ldr r2, [r5]
- lsls r4, 4
- adds r2, r4, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- movs r6, 0
- str r6, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x20]
- bl CreateMonWithEVSpreadPersonalityOTID
- add r1, sp, 0x14
- movs r0, 0xFF
- strb r0, [r1]
- mov r9, r4
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x30]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- mov r8, r1
- adds r3, r5, 0
- mov r5, r9
- ldr r2, =gEnemyParty
- mov r10, r2
-_0816602E:
- ldr r0, [r3]
- adds r0, r5, r0
- lsls r4, r6, 1
- adds r0, 0x2
- adds r0, r4
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- mov r0, r8
- add r0, r10
- str r3, [sp, 0x34]
- bl SetMonMoveSlot
- ldr r3, [sp, 0x34]
- ldr r0, [r3]
- adds r0, r5, r0
- adds r0, 0x2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0xDA
- bne _0816605E
- movs r0, 0
- mov r1, sp
- strb r0, [r1, 0x14]
-_0816605E:
- adds r6, 0x1
- cmp r6, 0x3
- ble _0816602E
- movs r2, 0x64
- adds r4, r7, 0
- muls r4, r2
- ldr r6, =gEnemyParty
- adds r4, r6
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x14
- bl SetMonData
- ldr r0, =gFacilityTrainerMons
- ldr r0, [r0]
- add r0, r9
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- ldr r0, [sp, 0x30]
- mov r8, r0
-_08166092:
- ldr r1, [sp, 0x1C]
- cmp r8, r1
- beq _0816609A
- b _08165F24
-_0816609A:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165EA4
-
- thumb_func_start sub_81660B8
-sub_81660B8: @ 81660B8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081660DA
-_081660C8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081660DA
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081660C8
-_081660DA:
- cmp r1, 0x1E
- beq _081660EC
- ldr r0, =gUnknown_085DCF0E
- b _08166116
- .pool
-_081660EC:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _08166108
-_081660F6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _08166108
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081660F6
-_08166108:
- cmp r1, 0x14
- bne _08166114
- movs r0, 0x7
- b _0816611A
- .pool
-_08166114:
- ldr r0, =gUnknown_085DCF2C
-_08166116:
- adds r0, r1, r0
- ldrb r0, [r0]
-_0816611A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81660B8
-
- thumb_func_start sub_8166124
-sub_8166124: @ 8166124
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r6
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- ldr r1, [r2]
- movs r5, 0
- movs r4, 0
- movs r3, 0
- adds r1, r0
-_08166140:
- ldm r1!, {r0}
- adds r5, r0
- orrs r4, r0
- adds r3, 0x1
- cmp r3, 0x39
- bls _08166140
- cmp r5, 0
- bne _08166154
- cmp r4, 0
- beq _08166180
-_08166154:
- ldr r2, [r2]
- movs r0, 0xEC
- adds r1, r6, 0
- muls r1, r0
- movs r3, 0x82
- lsls r3, 4
- adds r0, r2, r3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r5
- bne _08166174
- movs r0, 0x1
- b _08166182
- .pool
-_08166174:
- movs r3, 0xE7
- lsls r3, 3
- adds r0, r1, r3
- adds r0, r2, r0
- bl sub_8164FB8
-_08166180:
- movs r0, 0
-_08166182:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8166124
-
- thumb_func_start sub_8166188
-sub_8166188: @ 8166188
- push {r4-r7,lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, =0x02000002
- ands r0, r1
- cmp r0, 0
- beq _081661E8
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- movs r5, 0
- ldr r7, =gBaseStats
- lsrs r0, 22
- ldr r1, =gExperienceTables
- adds r6, r0, r1
-_081661A6:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _081661E2
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- adds r2, r1, 0
- muls r2, r0
- adds r2, r6
- adds r0, r4, 0
- movs r1, 0x19
- bl SetMonData
- adds r0, r4, 0
- bl CalculateMonStats
-_081661E2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081661A6
-_081661E8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8166188
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest.s b/asm/contest.s
index b984a98b6..35dbaf385 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -6485,7 +6485,7 @@ _080DEC80:
b _080DEC9C
.pool
_080DEC94:
- bl GetPlayerTextSpeed
+ bl GetPlayerTextSpeedDelay
lsls r0, 24
lsrs r1, r0, 24
_080DEC9C:
diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s
index 35191e10f..3969be9a2 100644
--- a/asm/contest_link_81D9DE4.s
+++ b/asm/contest_link_81D9DE4.s
@@ -97,7 +97,7 @@ _081D9EB4:
ldrb r1, [r1]
adds r0, 0x2C
strb r1, [r0]
- ldr r0, =0x00000864
+ ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
bl FlagGet
lsls r0, 24
lsrs r0, 24
diff --git a/asm/dark.s b/asm/dark.s
new file mode 100644
index 000000000..e4373723d
--- /dev/null
+++ b/asm/dark.s
@@ -0,0 +1,2199 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81136E8
+sub_81136E8: @ 81136E8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =gBattleAnimArgs
+ ldrh r1, [r1]
+ strh r1, [r0, 0x8]
+ ldr r1, =gBattleAnimAttacker
+ ldrb r4, [r1]
+ movs r1, 0x10
+ strh r1, [r0, 0xA]
+ movs r0, 0x52
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08113734
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ b _0811373C
+ .pool
+_08113734:
+ ldr r1, =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+_0811373C:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_811375C
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81136E8
+
+ thumb_func_start sub_811375C
+sub_811375C: @ 811375C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0xA]
+ lsrs r4, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ ldrb r2, [r6, 0x8]
+ cmp r0, r2
+ bne _081137D8
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 8
+ orrs r1, r0
+ movs r5, 0
+ strh r1, [r6, 0xA]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r5, [r6, 0xC]
+ cmp r4, 0x10
+ bne _081137DE
+ ldr r2, =gSprites
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _081137DE
+ .pool
+_081137D8:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+_081137DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811375C
+
+ thumb_func_start sub_81137E4
+sub_81137E4: @ 81137E4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r2, 0x8]
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r2, 0xA]
+ ldr r0, =sub_811381C
+ str r0, [r2]
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81137E4
+
+ thumb_func_start sub_811381C
+sub_811381C: @ 811381C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0xA]
+ lsrs r4, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ ldrb r2, [r6, 0x8]
+ cmp r0, r2
+ bne _0811387C
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 8
+ orrs r1, r0
+ movs r5, 0
+ strh r1, [r6, 0xA]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r5, [r6, 0xC]
+ cmp r4, 0
+ bne _08113882
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+ b _08113882
+ .pool
+_0811387C:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+_08113882:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811381C
+
+ thumb_func_start sub_8113888
+sub_8113888: @ 8113888
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081138BC
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ b _081138C4
+ .pool
+_081138BC:
+ ldr r1, =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+_081138C4:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8113888
+
+ thumb_func_start sub_81138D4
+sub_81138D4: @ 81138D4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ movs r0, 0x7E
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl InitSpriteDataForLinearTranslation
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldr r0, =0x0000ffd8
+ strh r0, [r4, 0x3A]
+ ldr r1, =sub_8113950
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81138D4
+
+ thumb_func_start sub_8113950
+sub_8113950: @ 8113950
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ adds r2, r5, r0
+ strh r2, [r4, 0x34]
+ ldrh r3, [r4, 0x32]
+ ldrh r6, [r4, 0x36]
+ adds r1, r3, r6
+ strh r1, [r4, 0x36]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r6, 0x3C
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _08113992
+ adds r0, r2, r5
+ strh r0, [r4, 0x34]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+_08113992:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r6, [r4, 0x26]
+ adds r0, r6
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ cmp r0, 0x7F
+ ble _081139C2
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x14
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+_081139C2:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081139D4
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_081139D4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8113950
+
+ thumb_func_start sub_81139DC
+sub_81139DC: @ 81139DC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x32]
+ ldr r0, =sub_8113A18
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81139DC
+
+ thumb_func_start sub_8113A18
+sub_8113A18: @ 8113A18
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _08113A4E
+ ldr r0, =sub_8113A58
+ str r0, [r2, 0x1C]
+_08113A4E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8113A18
+
+ thumb_func_start sub_8113A58
+sub_8113A58: @ 8113A58
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0
+ strh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x38]
+ ldrh r2, [r3, 0x30]
+ subs r0, r2
+ strh r0, [r3, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08113A8A
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_08113A8A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8113A58
+
+ thumb_func_start sub_8113A90
+sub_8113A90: @ 8113A90
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _08113AAC
+ ldr r0, =gBattleAnimAttacker
+ b _08113AAE
+ .pool
+_08113AAC:
+ ldr r0, =gBattleAnimTarget
+_08113AAE:
+ ldrb r5, [r0]
+ movs r6, 0x14
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ ldr r7, =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _08113B0C
+ cmp r0, 0x1
+ bgt _08113AE8
+ cmp r0, 0
+ beq _08113AF2
+ b _08113B60
+ .pool
+_08113AE8:
+ cmp r0, 0x2
+ beq _08113B26
+ cmp r0, 0x3
+ beq _08113B3E
+ b _08113B60
+_08113AF2:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ b _08113B60
+_08113B0C:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ b _08113B60
+_08113B26:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x8
+ b _08113B54
+_08113B3E:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x10
+_08113B54:
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r6, 0xEC
+_08113B60:
+ movs r0, 0x20
+ strh r0, [r4, 0x2E]
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0xC
+ strh r0, [r4, 0x36]
+ ldr r0, =0x0000fff4
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldr r0, =sub_8113B90
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8113A90
+
+ thumb_func_start sub_8113B90
+sub_8113B90: @ 8113B90
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113BA4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_08113BA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8113B90
+
+ thumb_func_start sub_8113BAC
+sub_8113BAC: @ 8113BAC
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ strh r1, [r5, 0x12]
+ strh r0, [r5, 0x10]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r5, 0x24]
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113C1C
+ ldr r0, =0x0000fff4
+ b _08113C1E
+ .pool
+_08113C1C:
+ ldr r0, =0x0000ffc0
+_08113C1E:
+ strh r0, [r5, 0x18]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _08113C80
+ add r4, sp, 0xC
+ adds r0, r4, 0
+ bl sub_80A6B30
+ ldr r0, =gBattle_BG1_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrb r1, [r4, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, =0x04000016
+ str r0, [sp]
+ movs r7, 0x2
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113CB0
+ ldr r1, =gBattle_BG2_X
+ b _08113CAA
+ .pool
+_08113C80:
+ ldr r0, =gBattle_BG2_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, =0x0400001a
+ str r0, [sp]
+ movs r7, 0x4
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113CB0
+ ldr r1, =gBattle_BG1_X
+_08113CAA:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+_08113CB0:
+ ldr r0, =0xa2600001
+ str r0, [sp, 0x4]
+ mov r2, sp
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ strb r1, [r0, 0x9]
+ strh r1, [r5, 0x1E]
+ movs r0, 0x10
+ strh r0, [r5, 0x20]
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ movs r0, 0x3
+ bl sub_8114374
+ movs r3, 0
+ ldr r4, =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_08113CDC:
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _08113CDC
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ movs r0, 0x3F
+ eors r7, r0
+ movs r1, 0xFC
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r7, r0
+ movs r0, 0x4A
+ adds r1, r7, 0
+ bl SetGpuReg
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r2, =gBattle_WIN0H
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, =gBattle_WIN0V
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, =sub_8113D60
+ str r0, [r5]
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8113BAC
+
+ thumb_func_start sub_8113D60
+sub_8113D60: @ 8113D60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08113D7A
+ b _08113E72
+_08113D7A:
+ lsls r0, 2
+ ldr r1, =_08113D8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08113D8C:
+ .4byte _08113DA0
+ .4byte _08113E02
+ .4byte _08113E1C
+ .4byte _08113E58
+ .4byte _08113E6C
+_08113DA0:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08113E72
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08113DD0
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC
+ beq _08113DDE
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _08113DDE
+_08113DD0:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _08113DDE
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_08113DDE:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 8
+ ldrh r0, [r4, 0x1E]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _08113E72
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ bne _08113E72
+ b _08113E5E
+_08113E02:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_8114244
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _08113E72
+ b _08113E5E
+_08113E1C:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_8114244
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x4
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r2, r0, 0x4
+ strh r2, [r4, 0x26]
+ lsls r1, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _08113E3E
+ strh r2, [r4, 0x24]
+_08113E3E:
+ ldr r3, =gBattle_WIN0H
+ ldrh r2, [r4, 0x24]
+ lsls r0, r2, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r3]
+ lsls r2, 16
+ lsls r1, 16
+ cmp r2, r1
+ bne _08113E72
+ b _08113E5E
+ .pool
+_08113E58:
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_08113E5E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08113E72
+ .pool
+_08113E6C:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08113E72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8113D60
+
+ thumb_func_start sub_8113E78
+sub_8113E78: @ 8113E78
+ push {r4-r7,lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _08113E94
+ b _081140A6
+_08113E94:
+ lsls r0, 2
+ ldr r1, =_08113EA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08113EA8:
+ .4byte _08113EBC
+ .4byte _08113F40
+ .4byte _08113F84
+ .4byte _08113FF0
+ .4byte _08114058
+_08113EBC:
+ bl IsContest
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08113EF8
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ b _081140A6
+ .pool
+_08113EF8:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _08113F24
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =gBattle_BG2_X
+ b _08113F2E
+ .pool
+_08113F24:
+ ldr r1, =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =gBattle_BG1_X
+_08113F2E:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+ b _08114044
+ .pool
+_08113F40:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08113F68
+ mov r0, sp
+ bl sub_80A6B30
+ ldr r0, =gBattle_BG1_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ b _08113F78
+ .pool
+_08113F68:
+ ldr r0, =gBattle_BG2_Y
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+_08113F78:
+ movs r0, 0x3
+ bl sub_8114374
+ b _08114044
+ .pool
+_08113F84:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x4
+ strh r1, [r5, 0x24]
+ adds r0, 0x4
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113FD8
+ ldr r0, =0x0000fff4
+ b _08113FDA
+ .pool
+_08113FD8:
+ ldr r0, =0x0000ffc0
+_08113FDA:
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x10]
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ movs r0, 0x8
+ strh r0, [r5, 0x20]
+ b _08114044
+ .pool
+_08113FF0:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08114000
+ ldr r0, =0x04000016
+ b _08114002
+ .pool
+_08114000:
+ ldr r0, =0x0400001a
+_08114002:
+ str r0, [sp, 0x10]
+ movs r3, 0
+ add r4, sp, 0x10
+ ldr r6, =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r7, r6, r0
+_08114010:
+ lsls r1, r3, 1
+ adds r2, r1, r6
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r2]
+ adds r1, r7
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _08114010
+ ldr r1, =0xa2600001
+ str r1, [r4, 0x4]
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r4, 0x8]
+ strb r2, [r4, 0x9]
+ ldr r0, [sp, 0x10]
+ ldr r2, [r4, 0x8]
+ bl ScanlineEffect_SetParams
+_08114044:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _081140A6
+ .pool
+_08114058:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08114070
+ ldr r1, =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ b _08114078
+ .pool
+_08114070:
+ ldr r1, =0x00003f3b
+ movs r0, 0x4A
+ bl SetGpuReg
+_08114078:
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r2, =gBattle_WIN0H
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, =gBattle_WIN0V
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldr r1, =0x0000080c
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r0, =sub_81140C8
+ str r0, [r5]
+_081140A6:
+ add sp, 0x1C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8113E78
+
+ thumb_func_start sub_81140C8
+sub_81140C8: @ 81140C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _081140E2
+ b _08114232
+_081140E2:
+ lsls r0, 2
+ ldr r1, =_081140F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081140F4:
+ .4byte _08114108
+ .4byte _08114134
+ .4byte _0811419C
+ .4byte _081141FE
+ .4byte _08114210
+_08114108:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x8
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x16]
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _0811411E
+ strh r2, [r4, 0x12]
+_0811411E:
+ adds r0, r4, 0
+ bl sub_8114244
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _08114132
+ b _08114232
+_08114132:
+ b _08114204
+_08114134:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ cmp r0, 0x3F
+ bgt _08114150
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x4
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x4
+ strh r0, [r4, 0x26]
+ b _08114154
+_08114150:
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+_08114154:
+ ldr r2, =gBattle_WIN0H
+ ldrh r0, [r4, 0x24]
+ lsls r0, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _08114176
+ strh r2, [r4, 0x10]
+_08114176:
+ adds r0, r4, 0
+ bl sub_8114244
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08114232
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _08114232
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08114204
+ .pool
+_0811419C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08114232
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081141CC
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081141DA
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _081141DA
+_081141CC:
+ ldrh r1, [r4, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _081141DA
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_081141DA:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 8
+ ldrh r0, [r4, 0x1E]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08114232
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _08114232
+ b _08114204
+_081141FE:
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_08114204:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08114232
+ .pool
+_08114210:
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08114232:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81140C8
+
+ thumb_func_start sub_8114244
+sub_8114244: @ 8114244
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x12]
+ ldrh r4, [r6, 0x10]
+ subs r0, r4
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _08114338
+ movs r2, 0x22
+ ldrsh r0, [r6, r2]
+ bl __divsi3
+ mov r8, r0
+ movs r3, 0x14
+ ldrsh r0, [r6, r3]
+ lsls r5, r0, 8
+ lsls r0, r4, 16
+ movs r4, 0
+ cmp r0, 0
+ ble _081142A4
+ ldr r0, =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, =gScanlineEffect
+_08114278:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ adds r1, r2, 0
+ subs r1, 0x9F
+ ldrh r0, [r6, 0x1C]
+ subs r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ blt _08114278
+_081142A4:
+ ldrh r4, [r6, 0x10]
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ bgt _081142EE
+ ldr r0, =gScanlineEffectRegBuffers
+ mov r12, r0
+ ldr r7, =gScanlineEffect
+_081142B8:
+ asrs r4, r3, 16
+ cmp r4, 0
+ blt _081142DA
+ asrs r1, r5, 8
+ subs r1, r4
+ lsls r3, r4, 1
+ ldrb r2, [r7, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r6, 0x1C]
+ adds r1, r2
+ strh r1, [r3]
+_081142DA:
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _081142B8
+_081142EE:
+ movs r3, 0x1C
+ ldrsh r0, [r6, r3]
+ adds r0, 0x9F
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ subs r5, r0, r1
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bge _08114366
+ ldr r7, =gScanlineEffectRegBuffers
+ ldr r4, =gScanlineEffect
+_08114306:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _0811431E
+ lsls r2, r3, 1
+ ldrb r1, [r4, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ strh r5, [r2]
+ subs r5, 0x1
+_0811431E:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _08114306
+ b _08114366
+ .pool
+_08114338:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ adds r5, r0, 0
+ adds r5, 0x9F
+ movs r4, 0
+ ldr r3, =gScanlineEffectRegBuffers
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r6, r3, r2
+_0811434A:
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ strh r5, [r1]
+ adds r2, r6
+ strh r5, [r2]
+ subs r5, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _0811434A
+_08114366:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8114244
+
+ thumb_func_start sub_8114374
+sub_8114374: @ 8114374
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ ldr r7, =gSprites
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r0, 0xD
+ negs r0, r0
+ adds r6, r0, 0
+_0811438A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _081143AA
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r0, r6
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_081143AA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _0811438A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8114374
+
+ thumb_func_start sub_81143C0
+sub_81143C0: @ 81143C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldrb r0, [r6]
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_80A438C
+ ldr r0, =gSprites
+ mov r9, r0
+ ldr r0, =gBattlerSpriteIds
+ mov r8, r0
+ ldrb r0, [r6]
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r7, 0x5
+ negs r7, r7
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811444E
+ ldrb r0, [r6]
+ eors r0, r5
+ movs r1, 0x1
+ eors r4, r1
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_80A438C
+ ldrb r0, [r6]
+ eors r0, r5
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+_0811444E:
+ mov r0, r10
+ bl DestroyAnimVisualTask
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81143C0
+
+ thumb_func_start sub_8114470
+sub_8114470: @ 8114470
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r5, 0
+ bl sub_80A477C
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _081144AC
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_80A477C
+_081144AC:
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8114470
+
+ thumb_func_start sub_81144BC
+sub_81144BC: @ 81144BC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81144BC
+
+ thumb_func_start sub_81144F8
+sub_81144F8: @ 81144F8
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r0, =gBattle_WIN0H
+ strh r6, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r6, [r0]
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f3d
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 8
+ movs r0, 0
+ bl SetGpuRegBits
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x00000c08
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811455C
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_0811455C:
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _081145D6
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _081145D6
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0811458C
+ ldrb r0, [r4]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ bne _081145D6
+_0811458C:
+ ldrb r0, [r4]
+ movs r5, 0x2
+ eors r0, r5
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081145D6
+ ldr r3, =gSprites
+ ldr r1, =gBattlerSpriteIds
+ ldrb r0, [r4]
+ eors r0, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r6, 0x1
+_081145D6:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08114614
+ ldr r0, =gContestResources
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ ldrh r5, [r0]
+ b _0811465C
+ .pool
+_08114614:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08114640
+ ldr r1, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ b _08114650
+ .pool
+_08114640:
+ ldr r1, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+_08114650:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0811465C:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A89C8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C1D210
+ bl sub_80A6D48
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08C1D0AC
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gUnknown_08C1D1E8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r2, =gBattle_BG1_X
+ ldr r0, =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x60
+ strh r0, [r2]
+ ldr r2, =gBattle_BG1_Y
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ ldr r2, =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _08114708
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_80A750C
+ b _08114714
+ .pool
+_08114708:
+ lsls r0, r1, 4
+ ldrh r3, [r2, 0x4]
+ movs r1, 0x10
+ movs r2, 0xB
+ bl BlendPalette
+_08114714:
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0xE]
+ strh r6, [r0, 0x14]
+ ldr r1, =sub_8114748
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81144F8
+
+ thumb_func_start sub_8114748
+sub_8114748: @ 8114748
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r2, =gBattle_BG1_X
+ ldrh r3, [r2]
+ subs r1, r3, 0x4
+ strh r1, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x80
+ beq _08114776
+ b _08114886
+_08114776:
+ strh r5, [r4, 0x1C]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ strh r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08114824
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081147B8
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_80A750C
+_081147B8:
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ bl sub_80A6C68
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08114886
+ ldr r2, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ b _08114886
+ .pool
+_08114824:
+ cmp r0, 0x3
+ bne _08114886
+ ldr r0, =gBattle_WIN0H
+ strh r5, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r5, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114856
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_08114856:
+ movs r0, 0
+ bl GetGpuReg
+ adds r1, r0, 0
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ eors r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_08114886:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8114748
+
+ thumb_func_start sub_811489C
+sub_811489C: @ 811489C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0x7
+ bhi _08114900
+ lsls r0, r1, 2
+ ldr r1, =_081148C4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081148C4:
+ .4byte _081148E4
+ .4byte _081148E4
+ .4byte _081148E4
+ .4byte _081148E4
+ .4byte _081148F0
+ .4byte _081148F4
+ .4byte _081148F8
+ .4byte _081148FC
+_081148E4:
+ ldrb r0, [r2]
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _08114902
+_081148F0:
+ movs r4, 0
+ b _08114908
+_081148F4:
+ movs r4, 0x2
+ b _08114908
+_081148F8:
+ movs r4, 0x1
+ b _08114908
+_081148FC:
+ movs r4, 0x3
+ b _08114908
+_08114900:
+ movs r2, 0xFF
+_08114902:
+ movs r0, 0
+ cmp r0, 0
+ beq _0811492E
+_08114908:
+ adds r0, r4, 0
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811492C
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ b _0811492E
+ .pool
+_0811492C:
+ movs r2, 0xFF
+_0811492E:
+ cmp r2, 0xFF
+ beq _0811494A
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ ldr r1, =gBattleAnimArgs
+ ldrb r1, [r1, 0x2]
+ bl sub_80A750C
+_0811494A:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811489C
+
+ thumb_func_start sub_8114960
+sub_8114960: @ 8114960
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gAnimMoveTurn
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _08114974
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_08114974:
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ bne _08114980
+ ldr r1, =gBattleAnimArgs
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_08114980:
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8114960
+
+ .align 2, 0
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index e99c885cc..70786ab65 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -369,7 +369,7 @@ _0811AF86:
thumb_func_start sub_811AF8C
sub_811AF8C: @ 811AF8C
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -418,7 +418,7 @@ _0811AFE6:
thumb_func_start sub_811AFEC
sub_811AFEC: @ 811AFEC
push {r4,lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -461,7 +461,7 @@ _0811B03A:
thumb_func_start sub_811B040
sub_811B040: @ 811B040
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -566,7 +566,7 @@ sub_811B0E8: @ 811B0E8
thumb_func_start sub_811B0F8
sub_811B0F8: @ 811B0F8
push {r4,lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -7951,7 +7951,7 @@ sub_811EA28: @ 811EA28
bgt _0811EA48
cmp r0, 0x11
blt _0811EA66
- ldr r0, =0x00000864
+ ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
bl FlagGet
b _0811EA60
.pool
@@ -9131,7 +9131,7 @@ _0811F2FE:
adds r3, 0x1
cmp r3, 0x10
ble _0811F2FE
- ldr r0, =0x00000864
+ ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
bl FlagGet
lsls r0, 24
cmp r0, 0
diff --git a/asm/electric.s b/asm/electric.s
new file mode 100644
index 000000000..b1fa8b9ae
--- /dev/null
+++ b/asm/electric.s
@@ -0,0 +1,2547 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810A1A8
+sub_810A1A8: @ 810A1A8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810A1D0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _0810A1DC
+ .pool
+_0810A1D0:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_0810A1DC:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, =sub_810A1F8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A1A8
+
+ thumb_func_start sub_810A1F8
+sub_810A1F8: @ 810A1F8
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0810A20E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_0810A20E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810A1F8
+
+ thumb_func_start sub_810A214
+sub_810A214: @ 810A214
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810A23C
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _0810A246
+ .pool
+_0810A23C:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_0810A246:
+ ldr r0, =sub_810A258
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A214
+
+ thumb_func_start sub_810A258
+sub_810A258: @ 810A258
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0810A26E
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_0810A26E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810A258
+
+ thumb_func_start sub_810A274
+sub_810A274: @ 810A274
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810A2C4
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ b _0810A2D8
+ .pool
+_0810A2C4:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r1, r2
+ strh r1, [r5, 0x22]
+ adds r2, r0, 0
+_0810A2D8:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A62EC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A274
+
+ thumb_func_start sub_810A308
+sub_810A308: @ 810A308
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _0810A380
+ cmp r0, 0x1
+ bgt _0810A324
+ cmp r0, 0
+ beq _0810A32E
+ b _0810A380
+ .pool
+_0810A324:
+ cmp r0, 0x2
+ beq _0810A338
+ cmp r0, 0x3
+ beq _0810A35C
+ b _0810A380
+_0810A32E:
+ ldr r0, =gBattleAnimAttacker
+ b _0810A382
+ .pool
+_0810A338:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810A354
+ ldrb r4, [r4]
+ b _0810A384
+ .pool
+_0810A354:
+ ldrb r0, [r4]
+ adds r4, r6, 0
+ eors r4, r0
+ b _0810A384
+_0810A35C:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ movs r4, 0x2
+ eors r0, r4
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810A380
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ eors r4, r0
+ b _0810A384
+ .pool
+_0810A380:
+ ldr r0, =gBattleAnimTarget
+_0810A382:
+ ldrb r4, [r0]
+_0810A384:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _0810A3AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0810A3BE
+ .pool
+_0810A3AC:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x3
+_0810A3BE:
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r7, =gSineTable
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r1, [r6, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810A422
+ adds r0, r4, 0
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+_0810A422:
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ ldr r3, =gOamMatrices
+ lsls r2, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r7
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldr r0, =sub_810E2C8
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A308
+
+ thumb_func_start sub_810A46C
+sub_810A46C: @ 810A46C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, =sub_810A4F4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A46C
+
+ thumb_func_start sub_810A4F4
+sub_810A4F4: @ 810A4F4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810A55E
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0810A564
+ 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]
+ b _0810A564
+_0810A55E:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810A564:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810A4F4
+
+ thumb_func_start sub_810A56C
+sub_810A56C: @ 810A56C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0810A5A4
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x36]
+ strh r0, [r3, 0x38]
+_0810A5A4:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0810A5B6
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_0810A5B6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810A56C
+
+ thumb_func_start sub_810A5BC
+sub_810A5BC: @ 810A5BC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810A5D8
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810A5E0
+_0810A5D8:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_0810A5E0:
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4]
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x36]
+ strh r0, [r6, 0x38]
+ ldr r0, =sub_810A56C
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A5BC
+
+ thumb_func_start sub_810A628
+sub_810A628: @ 810A628
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0810A64C
+ ldr r0, =gBattleAnimTarget
+ b _0810A64E
+ .pool
+_0810A64C:
+ ldr r0, =gBattleAnimAttacker
+_0810A64E:
+ ldrb r6, [r0]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810A666
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810A66E
+_0810A666:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_0810A66E:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r3, [r4]
+ adds r0, r3
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x3C]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, =sub_810A6EC
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A628
+
+ thumb_func_start sub_810A6EC
+sub_810A6EC: @ 810A6EC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810A742
+ 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]
+_0810A742:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0810A754
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810A754:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810A6EC
+
+ thumb_func_start sub_810A75C
+sub_810A75C: @ 810A75C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80A6980
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, =gBattleAnimArgs
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _0810A7A4
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _0810A7B2
+ .pool
+_0810A7A4:
+ cmp r0, 0x2
+ bne _0810A7B6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_0810A7B2:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_0810A7B6:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A75C
+
+ thumb_func_start sub_810A7DC
+sub_810A7DC: @ 810A7DC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ ldr r1, =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, =sub_810A834
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A7DC
+
+ thumb_func_start sub_810A834
+sub_810A834: @ 810A834
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ movs r7, 0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ str r2, [sp]
+ ldrh r4, [r0, 0x8]
+ ldrh r6, [r0, 0xA]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0
+ bne _0810A878
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _0810A882
+ .pool
+_0810A878:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_0810A882:
+ mov r0, r9
+ lsls r1, r0, 2
+ adds r0, r1, r0
+ lsls r0, 3
+ add r0, r10
+ movs r3, 0x1C
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0xA
+ bhi _0810A978
+ lsls r0, 2
+ ldr r1, =_0810A8A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0810A8A4:
+ .4byte _0810A8D0
+ .4byte _0810A978
+ .4byte _0810A8E4
+ .4byte _0810A978
+ .4byte _0810A904
+ .4byte _0810A978
+ .4byte _0810A91A
+ .4byte _0810A978
+ .4byte _0810A93C
+ .4byte _0810A978
+ .4byte _0810A970
+_0810A8D0:
+ ldr r0, =gUnknown_08595828
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _0810A952
+ .pool
+_0810A8E4:
+ mov r0, r12
+ lsls r3, r0, 17
+ mov r1, r8
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =gUnknown_08595828
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _0810A952
+ .pool
+_0810A904:
+ mov r3, r12
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _0810A946
+_0810A91A:
+ mov r0, r12
+ lsls r3, r0, 18
+ lsls r0, r2, 1
+ adds r0, r2
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =gUnknown_08595828
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _0810A952
+ .pool
+_0810A93C:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_0810A946:
+ ldr r0, =gUnknown_08595828
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_0810A952:
+ asrs r3, 16
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _0810A978
+ .pool
+_0810A970:
+ mov r0, r9
+ bl DestroyAnimVisualTask
+ b _0810A9BC
+_0810A978:
+ cmp r7, 0
+ beq _0810A9AC
+ ldr r4, =gSprites
+ lsls r3, r5, 4
+ adds r3, r5
+ lsls r3, 2
+ adds r0, r3, r4
+ ldrh r5, [r0, 0x4]
+ lsls r2, r5, 22
+ lsrs r2, 22
+ add r2, r8
+ ldr r6, =0x000003ff
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, =0xfffffc00
+ ands r1, r5
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r1, [r3]
+ bl _call_via_r1
+_0810A9AC:
+ ldr r0, =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_0810A9BC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A834
+
+ thumb_func_start sub_810A9DC
+sub_810A9DC: @ 810A9DC
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _0810A9FE
+ ldrb r1, [r3, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r2, r0
+ strb r2, [r3, 0x3]
+ b _0810AA12
+_0810A9FE:
+ ldrb r2, [r3, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+_0810AA12:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _0810AA26
+ adds r0, r3, 0
+ bl DestroySprite
+_0810AA26:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810A9DC
+
+ thumb_func_start sub_810AA2C
+sub_810AA2C: @ 810AA2C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ ldr r0, =gUnknown_08595840
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ movs r7, 0x22
+ ldrsh r2, [r4, r7]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r6, r2, r3
+ ldrh r5, [r6, 0x4]
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r7, =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, =sub_810AAB0
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810AA2C
+
+ thumb_func_start sub_810AAB0
+sub_810AAB0: @ 810AAB0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0810AAE4
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+_0810AAE4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _0810AAF8
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_0810AAF8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810AAB0
+
+ thumb_func_start sub_810AAFC
+sub_810AAFC: @ 810AAFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810AB28
+ ldr r4, =gBattleAnimAttacker
+ b _0810AB2A
+ .pool
+_0810AB28:
+ ldr r4, =gBattleAnimTarget
+_0810AB2A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ strh r1, [r5, 0x18]
+ strh r1, [r5, 0x1A]
+ strh r1, [r5, 0x1C]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x22]
+ ldr r0, =sub_810AB78
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810AAFC
+
+ thumb_func_start sub_810AB78
+sub_810AB78: @ 810AB78
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r2, r6, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810AC78
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ ble _0810AC86
+ strh r7, [r5, 0x20]
+ ldr r0, =gUnknown_085958A8
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ movs r3, 0x26
+ ldrsh r2, [r5, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0810AC86
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, =gSprites
+ adds r4, r0
+ ldr r1, =gUnknown_08595858
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ ldr r1, =sub_810ACC0
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0810AC30
+ strh r7, [r5, 0x1A]
+_0810AC30:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _0810AC52
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _0810AC52
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_0810AC52:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _0810AC86
+ .pool
+_0810AC78:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810AC86
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0810AC86:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810AB78
+
+ thumb_func_start sub_810AC8C
+sub_810AC8C: @ 810AC8C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810ACB4
+ ldr r2, =gTasks
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x16]
+ subs r1, 0x1
+ strh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_0810ACB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810AC8C
+
+ thumb_func_start sub_810ACC0
+sub_810ACC0: @ 810ACC0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, =sub_810AC8C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810ACC0
+
+ thumb_func_start sub_810ACD8
+sub_810ACD8: @ 810ACD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810ACF4
+ ldr r4, =gBattleAnimAttacker
+ b _0810ACF6
+ .pool
+_0810ACF4:
+ ldr r4, =gBattleAnimTarget
+_0810ACF6:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, =move_anim_8074EE0
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67BC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810ACD8
+
+ thumb_func_start sub_810AD30
+sub_810AD30: @ 810AD30
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810AD4C
+ ldr r4, =gBattleAnimAttacker
+ b _0810AD4E
+ .pool
+_0810AD4C:
+ ldr r4, =gBattleAnimTarget
+_0810AD4E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810AD30
+
+ thumb_func_start sub_810AD98
+sub_810AD98: @ 810AD98
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810ADE6
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_0810ADE6:
+ ldr r0, =sub_810ADF8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810AD98
+
+ thumb_func_start sub_810ADF8
+sub_810ADF8: @ 810ADF8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810AE0A
+ cmp r0, 0x1
+ beq _0810AE20
+ b _0810AE50
+_0810AE0A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _0810AE50
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810AE50
+_0810AE20:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x50
+ lsls r0, 16
+ movs r1, 0xC8
+ lsls r1, 17
+ cmp r0, r1
+ bls _0810AE50
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_0810AE50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810ADF8
+
+ thumb_func_start sub_810AE5C
+sub_810AE5C: @ 810AE5C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0810AEF0
+ cmp r0, 0x1
+ bgt _0810AE84
+ cmp r0, 0
+ beq _0810AE90
+ b _0810AFC0
+ .pool
+_0810AE84:
+ cmp r0, 0x2
+ beq _0810AF4C
+ cmp r0, 0x3
+ bne _0810AE8E
+ b _0810AFA0
+_0810AE8E:
+ b _0810AFC0
+_0810AE90:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810AECC
+ ldr r0, =0x0000ffe0
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _0810AED2
+ .pool
+_0810AECC:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, =0x0000fffe
+_0810AED2:
+ strh r0, [r5, 0x22]
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r5, 0x24]
+ strh r1, [r0, 0x24]
+ b _0810AF92
+ .pool
+_0810AEF0:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810AFC0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r1, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0810AF92
+ ldrh r2, [r5, 0x22]
+ adds r2, r1, r2
+ strh r2, [r5, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ b _0810AFC0
+ .pool
+_0810AF4C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810AFC0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _0810AFC0
+_0810AF92:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0810AFC0
+ .pool
+_0810AFA0:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_0810AFC0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810AE5C
+
+ thumb_func_start sub_810AFCC
+sub_810AFCC: @ 810AFCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _0810AFE6
+ b _0810B10C
+_0810AFE6:
+ cmp r0, 0x1
+ bgt _0810AFF4
+ cmp r0, 0
+ beq _0810AFFC
+ b _0810B14E
+ .pool
+_0810AFF4:
+ cmp r0, 0x2
+ bne _0810AFFA
+ b _0810B140
+_0810AFFA:
+ b _0810B14E
+_0810AFFC:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _0810B012
+ movs r1, 0x1
+_0810B012:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _0810B048
+ cmp r2, 0x4
+ beq _0810B070
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810B0A8
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, =0x0000fff0
+ b _0810B0B0
+ .pool
+_0810B048:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 7
+ adds r0, 0x78
+ strh r0, [r5, 0x10]
+ b _0810B0E6
+_0810B070:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _0810B0E6
+ .pool
+_0810B0A8:
+ ldr r0, =0x0000fff0
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_0810B0B0:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _0810B0D0
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0x50
+ subs r0, r1
+ strh r0, [r5, 0x12]
+ b _0810B0E6
+ .pool
+_0810B0D0:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x28
+ strh r0, [r5, 0x12]
+ ldrh r1, [r5, 0xE]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+_0810B0E6:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _0810B0FC
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _0810B138
+_0810B0FC:
+ ldr r0, =0x0000ffff
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _0810B138
+ .pool
+_0810B10C:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810B14E
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_810B154
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810B138
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_810B154
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B14E
+_0810B138:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0810B14E
+_0810B140:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810B14E
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0810B14E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810AFCC
+
+ thumb_func_start sub_810B154
+sub_810B154: @ 810B154
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, =gUnknown_08595A00
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r3, 0x12
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0810B18A
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x3A]
+ movs r1, 0x7
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_0810B18A:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0810B19C
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_0810B19C:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _0810B1A8
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_0810B1A8:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ ldrh r5, [r4, 0xE]
+ adds r2, r0, r5
+ strh r2, [r4, 0xE]
+ lsls r0, r1, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1
+ bne _0810B1C8
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _0810B1DC
+_0810B1C8:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _0810B1E8
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _0810B1E8
+_0810B1DC:
+ movs r0, 0x1
+ b _0810B1EA
+ .pool
+_0810B1E8:
+ movs r0, 0
+_0810B1EA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B154
+
+ thumb_func_start sub_810B1F0
+sub_810B1F0: @ 810B1F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0810B230
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_0810B230:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B1F0
+
+ thumb_func_start sub_810B23C
+sub_810B23C: @ 810B23C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810B24E
+ cmp r0, 0x1
+ beq _0810B280
+ b _0810B294
+_0810B24E:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0810B294
+ .pool
+_0810B280:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0810B294
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_0810B294:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B23C
+
+ thumb_func_start sub_810B29C
+sub_810B29C: @ 810B29C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _0810B2B6
+ b _0810B428
+_0810B2B6:
+ lsls r0, 2
+ ldr r1, =_0810B2C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0810B2C8:
+ .4byte _0810B2DC
+ .4byte _0810B36C
+ .4byte _0810B3A8
+ .4byte _0810B404
+ .4byte _0810B414
+_0810B2DC:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ movs r2, 0x14
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r5, 0x1A]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, =0x0000ffff
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl BattleAnimAdjustPanning
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl BattleAnimAdjustPanning
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x24]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ b _0810B426
+ .pool
+_0810B36C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810B39C
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_810B430
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B39C
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _0810B396
+ movs r0, 0x3
+ b _0810B39A
+_0810B396:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_0810B39A:
+ strh r0, [r5, 0x8]
+_0810B39C:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0810B428
+ b _0810B41E
+_0810B3A8:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0810B3B6
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_0810B3B6:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810B428
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810B3E2
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _0810B3F2
+_0810B3E2:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, =0x0000ffff
+ strh r0, [r5, 0x12]
+_0810B3F2:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810B424
+ movs r0, 0x4
+ b _0810B426
+ .pool
+_0810B404:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810B428
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+ b _0810B428
+_0810B414:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0810B424
+_0810B41E:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _0810B428
+_0810B424:
+ movs r0, 0x1
+_0810B426:
+ strh r0, [r5, 0x8]
+_0810B428:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B29C
+
+ thumb_func_start sub_810B430
+sub_810B430: @ 810B430
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, =gUnknown_08595A30
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0x16
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0810B49C
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldrh r6, [r4, 0x10]
+ adds r1, r6
+ ldr r6, =0x000003ff
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0810B484
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_0810B484:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _0810B490
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_0810B490:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_0810B49C:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0810B4BE
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _0810B4BE
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_0810B4BE:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _0810B4D4
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _0810B4E4
+_0810B4D4:
+ cmp r3, 0
+ ble _0810B508
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _0810B508
+_0810B4E4:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1A]
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r0, 0x1
+ b _0810B514
+ .pool
+_0810B508:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_0810B514:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B430
+
+ thumb_func_start sub_810B51C
+sub_810B51C: @ 810B51C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0810B552
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0810B552:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B51C
+
+ thumb_func_start sub_810B55C
+sub_810B55C: @ 810B55C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0810B5D8
+ cmp r0, 0x1
+ bgt _0810B584
+ cmp r0, 0
+ beq _0810B58A
+ b _0810B60E
+ .pool
+_0810B584:
+ cmp r0, 0x2
+ beq _0810B600
+ b _0810B60E
+_0810B58A:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _0810B5B4
+ adds r2, r0, 0
+_0810B5A4:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _0810B5A4
+ strh r1, [r5, 0x24]
+_0810B5B4:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _0810B5F8
+ .pool
+_0810B5D8:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810B60E
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_810B614
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B60E
+_0810B5F8:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0810B60E
+_0810B600:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810B60E
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0810B60E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B55C
+
+ .align 2, 0
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
deleted file mode 100644
index c7b3a0486..000000000
--- a/asm/field_player_avatar.s
+++ /dev/null
@@ -1,4180 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start IsPlayerCollidingWithFarawayIslandMew
-@ bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction)
-IsPlayerCollidingWithFarawayIslandMew: @ 808B324
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gPlayerAvatar
- ldrb r2, [r1, 0x5]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- ldr r5, =gEventObjects
- adds r3, r1, r5
- ldrh r2, [r3, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r3, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- movs r0, 0x1
- movs r1, 0x39
- movs r2, 0x1A
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r1, r0, 24
- adds r6, r4, 0
- cmp r1, 0x10
- beq _0808B3C0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- mov r0, sp
- movs r1, 0x14
- ldrsh r2, [r3, r1]
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r2, r0
- bne _0808B3C0
- movs r5, 0x16
- ldrsh r1, [r3, r5]
- movs r4, 0
- ldrsh r0, [r6, r4]
- ldrh r4, [r3, 0x16]
- cmp r1, r0
- bne _0808B398
- movs r5, 0x10
- ldrsh r0, [r3, r5]
- cmp r0, r2
- bne _0808B398
- movs r2, 0x12
- ldrsh r0, [r3, r2]
- cmp r0, r1
- beq _0808B3C0
-_0808B398:
- mov r0, sp
- movs r5, 0x14
- ldrsh r1, [r3, r5]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _0808B3C0
- lsls r0, r4, 16
- asrs r0, 16
- movs r4, 0
- ldrsh r1, [r6, r4]
- cmp r0, r1
- bne _0808B3C0
- movs r0, 0x1
- b _0808B3C2
- .pool
-_0808B3C0:
- movs r0, 0
-_0808B3C2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsPlayerCollidingWithFarawayIslandMew
-
- thumb_func_start SetPlayerAvatarTransitionFlags
-@ void SetPlayerAvatarTransitionFlags(u16 transitionFlags)
-SetPlayerAvatarTransitionFlags: @ 808B3CC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2, 0x1]
- orrs r0, r1
- strb r0, [r2, 0x1]
- bl DoPlayerAvatarTransition
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetPlayerAvatarTransitionFlags
-
- thumb_func_start DoPlayerAvatarTransition
-@ void DoPlayerAvatarTransition()
-DoPlayerAvatarTransition: @ 808B3E8
- push {r4,r5,lr}
- ldr r0, =gPlayerAvatar
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- beq _0808B428
- movs r5, 0
-_0808B3F4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0808B416
- ldr r0, =gUnknown_084974B8
- lsls r2, r5, 2
- adds r2, r0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- ldr r1, [r2]
- bl _call_via_r1
-_0808B416:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsrs r4, 1
- cmp r5, 0x7
- bls _0808B3F4
- ldr r1, =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x1]
-_0808B428:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoPlayerAvatarTransition
-
- thumb_func_start PlayerAvatarTransition_Dummy
-@ void PlayerAvatarTransition_Dummy(struct npc_state *eventObject)
-PlayerAvatarTransition_Dummy: @ 808B43C
- bx lr
- thumb_func_end PlayerAvatarTransition_Dummy
-
- thumb_func_start PlayerAvatarTransition_Normal
-@ void PlayerAvatarTransition_Normal(struct npc_state *eventObject)
-PlayerAvatarTransition_Normal: @ 808B440
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- movs r0, 0x1
- bl SetPlayerAvatarStateMask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Normal
-
- thumb_func_start PlayerAvatarTransition_MachBike
-@ void PlayerAvatarTransition_MachBike(struct npc_state *eventObject)
-PlayerAvatarTransition_MachBike: @ 808B46C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- movs r0, 0x2
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl BikeClearState
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_MachBike
-
- thumb_func_start PlayerAvatarTransition_AcroBike
-@ void PlayerAvatarTransition_AcroBike(struct npc_state *eventObject)
-PlayerAvatarTransition_AcroBike: @ 808B4A0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- movs r0, 0x4
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl BikeClearState
- bl Bike_HandleBumpySlopeJump
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_AcroBike
-
- thumb_func_start PlayerAvatarTransition_Surfing
-@ void PlayerAvatarTransition_Surfing(struct npc_state *eventObject)
-PlayerAvatarTransition_Surfing: @ 808B4D8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- ldr r1, =gFieldEffectArguments
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_81555AC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayerAvatarTransition_Surfing
-
- thumb_func_start PlayerAvatarTransition_Underwater
-@ void PlayerAvatarTransition_Underwater(struct npc_state *eventObject)
-PlayerAvatarTransition_Underwater: @ 808B534
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x4
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- movs r0, 0x10
- bl SetPlayerAvatarStateMask
- ldrb r0, [r4, 0x4]
- bl sub_8155800
- strb r0, [r4, 0x1A]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Underwater
-
- thumb_func_start PlayerAvatarTransition_ReturnToField
-@ void PlayerAvatarTransition_ReturnToField(struct npc_state *eventObject)
-PlayerAvatarTransition_ReturnToField: @ 808B568
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x20
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end PlayerAvatarTransition_ReturnToField
-
- thumb_func_start sub_808B578
-sub_808B578: @ 808B578
- push {r4,lr}
- ldr r4, =gPlayerAvatar
- movs r0, 0
- strb r0, [r4, 0x3]
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0808B5B6
- bl PlayerCheckIfAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- bne _0808B5A8
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- bne _0808B5B6
- movs r0, 0x1
- b _0808B5B4
- .pool
-_0808B5A8:
- bl sub_808B618
- lsls r0, 24
- cmp r0, 0
- bne _0808B5B6
- movs r0, 0x2
-_0808B5B4:
- strb r0, [r4, 0x3]
-_0808B5B6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B578
-
- thumb_func_start player_is_anim_in_certain_ranges
-player_is_anim_in_certain_ranges: @ 808B5BC
- push {lr}
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- cmp r1, 0x3
- bls _0808B602
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0808B602
- adds r0, r1, 0
- subs r0, 0x19
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0808B602
- adds r0, r1, 0
- subs r0, 0x64
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0808B602
- adds r0, r1, 0
- subs r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0808B610
-_0808B602:
- movs r0, 0x1
- b _0808B612
- .pool
-_0808B610:
- movs r0, 0
-_0808B612:
- pop {r1}
- bx r1
- thumb_func_end player_is_anim_in_certain_ranges
-
- thumb_func_start sub_808B618
-sub_808B618: @ 808B618
- push {lr}
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- beq _0808B634
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _0808B634
- movs r0, 0x1
- b _0808B636
- .pool
-_0808B634:
- movs r0, 0
-_0808B636:
- pop {r1}
- bx r1
- thumb_func_end sub_808B618
-
- thumb_func_start PlayerIsAnimActive
-@ bool8 PlayerIsAnimActive()
-PlayerIsAnimActive: @ 808B63C
- push {lr}
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end PlayerIsAnimActive
-
- thumb_func_start PlayerCheckIfAnimFinishedOrInactive
-@ bool8 PlayerCheckIfAnimFinishedOrInactive()
-PlayerCheckIfAnimFinishedOrInactive: @ 808B660
- push {lr}
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- bl EventObjectCheckHeldMovementStatus
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end PlayerCheckIfAnimFinishedOrInactive
-
- thumb_func_start player_set_x22
-player_set_x22: @ 808B684
- ldr r3, =gEventObjects
- ldr r1, =gPlayerAvatar
- ldrb r2, [r1, 0x5]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x22
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end player_set_x22
-
- thumb_func_start PlayerGetCopyableMovement
-PlayerGetCopyableMovement: @ 808B6A0
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end PlayerGetCopyableMovement
-
- thumb_func_start sub_808B6BC
-sub_808B6BC: @ 808B6BC
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, =gEventObjects
- adds r0, r2
- bl EventObjectForceSetHeldMovement
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808B6BC
-
- thumb_func_start PlayerSetAnimId
-@ void PlayerSetAnimId(u8 animState, u8 a2)
-PlayerSetAnimId: @ 808B6E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _0808B712
- adds r0, r4, 0
- bl player_set_x22
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- adds r1, r5, 0
- bl EventObjectSetHeldMovement
-_0808B712:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayerSetAnimId
-
- thumb_func_start PlayerGoSpeed1
-@ void PlayerGoSpeed1(u8 direction)
-PlayerGoSpeed1: @ 808B720
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkNormalMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed1
-
- thumb_func_start PlayerGoSpeed2
-@ void PlayerGoSpeed2(u8 direction)
-PlayerGoSpeed2: @ 808B738
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkFastMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed2
-
- thumb_func_start PlayerGoSpeed3
-@ void PlayerGoSpeed3(u8 direction)
-PlayerGoSpeed3: @ 808B750
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetRideWaterCurrentMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed3
-
- thumb_func_start PlayerGoSpeed4
-@ void PlayerGoSpeed4(u8 direction)
-PlayerGoSpeed4: @ 808B768
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkFastestMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed4
-
- thumb_func_start PlayerRun
-@ void PlayerRun(u8 direction)
-PlayerRun: @ 808B780
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetPlayerRunMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerRun
-
- thumb_func_start PlayerOnBikeCollide
-@ void PlayerOnBikeCollide(u8 direction)
-PlayerOnBikeCollide: @ 808B798
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetWalkInPlaceNormalMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerOnBikeCollide
-
- thumb_func_start PlayerOnBikeCollideWithFarawayIslandMew
-@ void PlayerOnBikeCollideWithFarawayIslandMew(u8 direction)
-PlayerOnBikeCollideWithFarawayIslandMew: @ 808B7BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkInPlaceNormalMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerOnBikeCollideWithFarawayIslandMew
-
- thumb_func_start PlayerNotOnBikeCollide
-@ void PlayerNotOnBikeCollide(u8 direction)
-PlayerNotOnBikeCollide: @ 808B7D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetWalkInPlaceSlowMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeCollide
-
- thumb_func_start PlayerNotOnBikeCollideWithFarawayIslandMew
-@ void PlayerNotOnBikeCollideWithFarawayIslandMew(u8 direction)
-PlayerNotOnBikeCollideWithFarawayIslandMew: @ 808B7F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkInPlaceSlowMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeCollideWithFarawayIslandMew
-
- thumb_func_start PlayerFaceDirection
-@ void PlayerFaceDirection(u8 direction)
-PlayerFaceDirection: @ 808B810
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerFaceDirection
-
- thumb_func_start PlayerTurnInPlace
-@ void PlayerTurnInPlace(u8 direction)
-PlayerTurnInPlace: @ 808B828
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkInPlaceFastMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerTurnInPlace
-
- thumb_func_start PlayerJumpLedge
-@ void PlayerJumpLedge(u8 direction)
-PlayerJumpLedge: @ 808B840
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xA
- bl PlaySE
- adds r0, r4, 0
- bl GetJump2MovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerJumpLedge
-
- thumb_func_start sub_808B864
-sub_808B864: @ 808B864
- push {r4,lr}
- ldr r4, =gPlayerAvatar
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- beq _0808B872
- cmp r0, 0
- bne _0808B89A
-_0808B872:
- bl player_should_look_direction_be_enforced_upon_movement
- lsls r0, 24
- cmp r0, 0
- beq _0808B89A
- ldr r2, =gEventObjects
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- bl sub_808B6BC
-_0808B89A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808B864
-
- thumb_func_start PlayerIdleWheelie
-PlayerIdleWheelie: @ 808B8A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAcroWheelieFaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerIdleWheelie
-
- thumb_func_start PlayerStartWheelie
-PlayerStartWheelie: @ 808B8C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAcroPopWheelieFaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerStartWheelie
-
- thumb_func_start PlayerEndWheelie
-PlayerEndWheelie: @ 808B8D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAcroEndWheelieFaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end PlayerEndWheelie
-
- thumb_func_start PlayerStandingHoppingWheelie
-PlayerStandingHoppingWheelie: @ 808B8F0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl GetAcroWheelieHopFaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerStandingHoppingWheelie
-
- thumb_func_start PlayerMovingHoppingWheelie
-PlayerMovingHoppingWheelie: @ 808B914
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl GetAcroWheelieHopDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerMovingHoppingWheelie
-
- thumb_func_start PlayerLedgeHoppingWheelie
-PlayerLedgeHoppingWheelie: @ 808B938
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl GetAcroWheelieJumpDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerLedgeHoppingWheelie
-
- thumb_func_start PlayerAcroTurnJump
-PlayerAcroTurnJump: @ 808B95C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl GetJumpInPlaceTurnAroundMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAcroTurnJump
-
- thumb_func_start sub_808B980
-sub_808B980: @ 808B980
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- bl PlaySE
- adds r0, r4, 0
- bl GetAcroWheelieInPlaceDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808B980
-
- thumb_func_start sub_808B9A4
-sub_808B9A4: @ 808B9A4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAcroPopWheelieMoveDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end sub_808B9A4
-
- thumb_func_start sub_808B9BC
-sub_808B9BC: @ 808B9BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAcroWheelieMoveDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end sub_808B9BC
-
- thumb_func_start npc_use_some_d2s
-npc_use_some_d2s: @ 808B9D4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetAcroEndWheelieMoveDirectionMovementAction
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl PlayerSetAnimId
- pop {r0}
- bx r0
- thumb_func_end npc_use_some_d2s
-
- thumb_func_start PlayCollisionSoundIfNotFacingWarp
-@ void PlayCollisionSoundIfNotFacingWarp(u8 direction)
-PlayCollisionSoundIfNotFacingWarp: @ 808B9EC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- ldr r2, =gUnknown_084974D8
- subs r1, r4, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0808BA54
- cmp r4, 0x2
- bne _0808BA4E
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- mov r1, sp
- adds r2, r4, 0
- bl MoveCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWarpDoor
- lsls r0, 24
- cmp r0, 0
- bne _0808BA54
-_0808BA4E:
- movs r0, 0x7
- bl PlaySE
-_0808BA54:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayCollisionSoundIfNotFacingWarp
-
- thumb_func_start GetXYCoordsOneStepInFrontOfPlayer
-GetXYCoordsOneStepInFrontOfPlayer: @ 808BA68
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r3, =gEventObjects
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x10]
- strh r0, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- strh r0, [r5]
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl MoveCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetXYCoordsOneStepInFrontOfPlayer
-
- thumb_func_start PlayerGetDestCoords
-@ void PlayerGetDestCoords(u16 *x, u16 *y)
-PlayerGetDestCoords: @ 808BAAC
- push {r4,r5,lr}
- ldr r5, =gEventObjects
- ldr r4, =gPlayerAvatar
- ldrb r3, [r4, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x10]
- strh r2, [r0]
- ldrb r2, [r4, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x12]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlayerGetDestCoords
-
- thumb_func_start plaer_get_pos_including_state_based_drift
-plaer_get_pos_including_state_based_drift: @ 808BADC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r3, r0, r1
- ldrb r1, [r3]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- beq _0808BAFC
- b _0808BC24
-_0808BAFC:
- ldr r2, =gSprites
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x32
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0808BB12
- b _0808BC24
-_0808BB12:
- ldrh r0, [r3, 0x10]
- strh r0, [r4]
- ldrh r0, [r3, 0x12]
- strh r0, [r5]
- ldrb r0, [r3, 0x1C]
- subs r0, 0x8
- cmp r0, 0x30
- bls _0808BB24
- b _0808BC24
-_0808BB24:
- lsls r0, 2
- ldr r1, =_0808BB40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0808BB40:
- .4byte _0808BC04
- .4byte _0808BC0A
- .4byte _0808BC14
- .4byte _0808BC1A
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC24
- .4byte _0808BC04
- .4byte _0808BC0A
- .4byte _0808BC14
- .4byte _0808BC1A
-_0808BC04:
- ldrh r0, [r5]
- adds r0, 0x1
- b _0808BC0E
-_0808BC0A:
- ldrh r0, [r5]
- subs r0, 0x1
-_0808BC0E:
- strh r0, [r5]
- movs r0, 0x1
- b _0808BC30
-_0808BC14:
- ldrh r0, [r4]
- subs r0, 0x1
- b _0808BC1E
-_0808BC1A:
- ldrh r0, [r4]
- adds r0, 0x1
-_0808BC1E:
- strh r0, [r4]
- movs r0, 0x1
- b _0808BC30
-_0808BC24:
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- strh r0, [r4]
- strh r0, [r5]
- movs r0, 0
-_0808BC30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end plaer_get_pos_including_state_based_drift
-
- thumb_func_start GetPlayerFacingDirection
-@ u8 GetPlayerFacingDirection()
-GetPlayerFacingDirection: @ 808BC38
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bx lr
- .pool
- thumb_func_end GetPlayerFacingDirection
-
- thumb_func_start GetPlayerMovementDirection
-@ u8 GetPlayerMovementDirection()
-GetPlayerMovementDirection: @ 808BC58
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bx lr
- .pool
- thumb_func_end GetPlayerMovementDirection
-
- thumb_func_start PlayerGetZCoord
-@ u8 PlayerGetZCoord()
-PlayerGetZCoord: @ 808BC74
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- bx lr
- .pool
- thumb_func_end PlayerGetZCoord
-
- thumb_func_start sub_808BC90
-sub_808BC90: @ 808BC90
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- bl sub_808EB08
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808BC90
-
- thumb_func_start TestPlayerAvatarFlags
-@ u32 TestPlayerAvatarFlags(u32 mask)
-TestPlayerAvatarFlags: @ 808BCC0
- ldr r1, =gPlayerAvatar
- ldrb r1, [r1]
- ands r1, r0
- adds r0, r1, 0
- bx lr
- .pool
- thumb_func_end TestPlayerAvatarFlags
-
- thumb_func_start sub_808BCD0
-sub_808BCD0: @ 808BCD0
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_808BCD0
-
- thumb_func_start GetPlayerAvatarObjectId
-@ u8 GetPlayerAvatarObjectId()
-GetPlayerAvatarObjectId: @ 808BCDC
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- bx lr
- .pool
- thumb_func_end GetPlayerAvatarObjectId
-
- thumb_func_start sub_808BCE8
-sub_808BCE8: @ 808BCE8
- push {lr}
- bl ForcedMovement_None
- pop {r0}
- bx r0
- thumb_func_end sub_808BCE8
-
- thumb_func_start sub_808BCF4
-sub_808BCF4: @ 808BCF4
- push {r4,lr}
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- adds r0, r4, 0
- bl npc_clear_strange_bits
- ldrb r1, [r4, 0x18]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl SetEventObjectDirection
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808BD2C
- bl Bike_HandleBumpySlopeJump
- movs r0, 0
- bl Bike_UpdateBikeCounterSpeed
-_0808BD2C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808BCF4
-
- thumb_func_start GetRivalAvatarGraphicsIdByStateIdAndGender
-GetRivalAvatarGraphicsIdByStateIdAndGender: @ 808BD3C
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_084974E8
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end GetRivalAvatarGraphicsIdByStateIdAndGender
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender
-@ u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 stateId, u8 gender)
-GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 808BD54
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_084974F8
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender
-
- thumb_func_start sub_808BD6C
-sub_808BD6C: @ 808BD6C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_08497508
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_808BD6C
-
- thumb_func_start sub_808BD7C
-sub_808BD7C: @ 808BD7C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0849750A
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_808BD7C
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateId
-@ u8 GetPlayerAvatarGraphicsIdByStateId(u8 stateId)
-GetPlayerAvatarGraphicsIdByStateId: @ 808BD8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gPlayerAvatar
- ldrb r1, [r1, 0x7]
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetPlayerAvatarGraphicsIdByStateId
-
- thumb_func_start sub_808BDA8
-sub_808BDA8: @ 808BDA8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _0808BDCA
- cmp r0, 0x70
- bgt _0808BDC2
- cmp r0, 0x6D
- bgt _0808BDCE
- cmp r0, 0x69
- blt _0808BDCE
- b _0808BDCA
-_0808BDC2:
- cmp r1, 0x8A
- beq _0808BDCA
- cmp r1, 0xC0
- bne _0808BDCE
-_0808BDCA:
- movs r0, 0x1
- b _0808BDD0
-_0808BDCE:
- movs r0, 0
-_0808BDD0:
- pop {r1}
- bx r1
- thumb_func_end sub_808BDA8
-
- thumb_func_start GetPlayerAvatarGenderByGraphicsId
-@ u8 GetPlayerAvatarGenderByGraphicsId(u8 graphicsId)
-GetPlayerAvatarGenderByGraphicsId: @ 808BDD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _0808BDF6
- cmp r0, 0x70
- bgt _0808BDEE
- cmp r0, 0x5D
- bgt _0808BDFA
- cmp r0, 0x59
- blt _0808BDFA
- b _0808BDF6
-_0808BDEE:
- cmp r1, 0x8A
- beq _0808BDF6
- cmp r1, 0xC0
- bne _0808BDFA
-_0808BDF6:
- movs r0, 0x1
- b _0808BDFC
-_0808BDFA:
- movs r0, 0
-_0808BDFC:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGenderByGraphicsId
-
- thumb_func_start PartyHasMonWithSurf
-@ bool8 PartyHasMonWithSurf()
-PartyHasMonWithSurf: @ 808BE00
- push {r4,r5,lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _0808BE44
- movs r5, 0
- b _0808BE2A
-_0808BE12:
- adds r0, r4, 0
- movs r1, 0x39
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0808BE24
- movs r0, 0x1
- b _0808BE46
-_0808BE24:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0808BE2A:
- cmp r5, 0x5
- bhi _0808BE44
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _0808BE12
-_0808BE44:
- movs r0, 0
-_0808BE46:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end PartyHasMonWithSurf
-
- thumb_func_start IsPlayerSurfingNorth
-@ bool8 IsPlayerSurfingNorth()
-IsPlayerSurfingNorth: @ 808BE50
- push {lr}
- bl GetPlayerMovementDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0808BE6E
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808BE6E
- movs r0, 0x1
- b _0808BE70
-_0808BE6E:
- movs r0, 0
-_0808BE70:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerSurfingNorth
-
- thumb_func_start IsPlayerFacingSurfableFishableWater
-@ bool8 IsPlayerFacingSurfableFishableWater()
-IsPlayerFacingSurfableFishableWater: @ 808BE74
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x2
- strh r0, [r5]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- mov r1, sp
- adds r2, r5, 0
- bl MoveCoords
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- ldrb r3, [r4, 0x18]
- lsls r3, 28
- lsrs r3, 28
- adds r0, r4, 0
- bl GetCollisionAtCoords
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808BEF4
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808BEF4
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _0808BEF4
- movs r0, 0x1
- b _0808BEF6
- .pool
-_0808BEF4:
- movs r0, 0
-_0808BEF6:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingSurfableFishableWater
-
- thumb_func_start ClearPlayerAvatarInfo
-@ void ClearPlayerAvatarInfo()
-ClearPlayerAvatarInfo: @ 808BF00
- push {lr}
- ldr r0, =gPlayerAvatar
- movs r1, 0
- movs r2, 0x24
- bl memset
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearPlayerAvatarInfo
-
- thumb_func_start SetPlayerAvatarStateMask
-@ void SetPlayerAvatarStateMask(u8 stateMask)
-SetPlayerAvatarStateMask: @ 808BF14
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gPlayerAvatar
- ldrb r2, [r3]
- movs r1, 0xE0
- ands r1, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .pool
- thumb_func_end SetPlayerAvatarStateMask
-
- thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId
-@ u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender)
-GetPlayerAvatarStateTransitionByGraphicsId: @ 808BF2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- ldr r3, =gUnknown_0849750C
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_0808BF42:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r5
- bne _0808BF58
- adds r0, r1, r6
- ldrb r0, [r0]
- b _0808BF64
- .pool
-_0808BF58:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _0808BF42
- movs r0, 0x1
-_0808BF64:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId
-
- thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState
-@ u8 GetPlayerAvatarGraphicsIdByCurrentState()
-GetPlayerAvatarGraphicsIdByCurrentState: @ 808BF6C
- push {r4-r6,lr}
- ldr r0, =gPlayerAvatar
- ldrb r5, [r0]
- movs r2, 0
- ldr r3, =gUnknown_0849750C
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_0808BF80:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r6
- ldrb r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _0808BF9C
- adds r0, r1, r3
- ldrb r0, [r0]
- b _0808BFA8
- .pool
-_0808BF9C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _0808BF80
- movs r0, 0
-_0808BFA8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState
-
- thumb_func_start SetPlayerAvatarExtraStateTransition
-@ void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 state)
-SetPlayerAvatarExtraStateTransition: @ 808BFB0
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gPlayerAvatar
- ldrb r1, [r5, 0x7]
- bl GetPlayerAvatarStateTransitionByGraphicsId
- lsls r0, 24
- lsrs r0, 24
- orrs r0, r4
- ldrb r1, [r5, 0x1]
- orrs r0, r1
- strb r0, [r5, 0x1]
- bl DoPlayerAvatarTransition
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetPlayerAvatarExtraStateTransition
-
- thumb_func_start InitPlayerAvatar
-@ void InitPlayerAvatar(u16 x, u16 y, u8 direction, u8 gender)
-InitPlayerAvatar: @ 808BFE0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- mov r9, r2
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0
- mov r1, r8
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- mov r1, sp
- movs r3, 0
- strb r0, [r1, 0x1]
- mov r0, sp
- lsls r4, 16
- asrs r4, 16
- subs r4, 0x7
- movs r6, 0
- strh r4, [r0, 0x4]
- lsls r5, 16
- asrs r5, 16
- subs r5, 0x7
- strh r5, [r0, 0x6]
- strb r6, [r0, 0x8]
- movs r0, 0xB
- strb r0, [r1, 0x9]
- mov r2, sp
- ldrb r1, [r2, 0xA]
- subs r0, 0x1B
- ands r0, r1
- strb r0, [r2, 0xA]
- mov r0, sp
- strb r6, [r0, 0xA]
- strh r3, [r0, 0xC]
- strh r3, [r0, 0xE]
- str r3, [sp, 0x10]
- strh r3, [r0, 0x14]
- bl SpawnSpecialEventObject
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 3
- adds r4, r5
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrb r0, [r4, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x2]
- bl CreateWarpArrowSprite
- strb r0, [r4, 0x1B]
- adds r0, r4, 0
- mov r1, r9
- bl EventObjectTurn
- bl ClearPlayerAvatarInfo
- ldr r0, =gPlayerAvatar
- strb r6, [r0, 0x2]
- strb r6, [r0, 0x3]
- strb r5, [r0, 0x5]
- ldrb r1, [r4, 0x4]
- strb r1, [r0, 0x4]
- mov r1, r8
- strb r1, [r0, 0x7]
- movs r0, 0x21
- bl SetPlayerAvatarStateMask
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end InitPlayerAvatar
-
- thumb_func_start sub_808C0A8
-sub_808C0A8: @ 808C0A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, =gEventObjects
- ldr r5, =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- ands r4, r0
- lsls r3, r4, 5
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0808C100
- ldr r2, =gSprites
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x1A]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- lsls r3, r4, 2
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_0808C100:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C0A8
-
- thumb_func_start sub_808C114
-sub_808C114: @ 808C114
- push {r4,r5,lr}
- ldr r5, =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- movs r0, 0x5
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C114
-
- thumb_func_start sub_808C15C
-sub_808C15C: @ 808C15C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- movs r0, 0x6
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl GetFishingDirectionAnimNum
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C15C
-
- thumb_func_start sub_808C1B4
-sub_808C1B4: @ 808C1B4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- mov r8, r0
- add r4, r8
- adds r0, r5, 0
- bl GetAcroWheelieDirectionAnimNum
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl SeekSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C1B4
-
- thumb_func_start sub_808C228
-sub_808C228: @ 808C228
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- movs r0, 0x7
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl GetFaceDirectionAnimNum
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C228
-
- thumb_func_start sub_808C280
-@ void sub_808C280(struct EventObject *playerEventObj);
-sub_808C280: @ 808C280
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrb r0, [r5, 0x1E]
- mov r8, r0
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r6, 0x1
- ldr r1, =gUnknown_08497520
- mov r9, r1
- mov r4, sp
- mov r7, sp
- adds r7, 0x2
-_0808C2A2:
- movs r1, 0
- ldrsh r0, [r4, r1]
- lsls r0, 2
- add r0, r9
- ldr r1, [r0]
- mov r0, r8
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0808C2E8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- cmp r6, r0
- bne _0808C2E8
- ldrh r0, [r5, 0x10]
- strh r0, [r4]
- ldrh r0, [r5, 0x12]
- strh r0, [r7]
- adds r0, r6, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- ldrb r0, [r5, 0x1B]
- movs r1, 0
- ldrsh r2, [r4, r1]
- movs r1, 0
- ldrsh r3, [r7, r1]
- adds r1, r6, 0
- bl ShowWarpArrowSprite
- b _0808C302
- .pool
-_0808C2E8:
- ldrh r1, [r4]
- adds r1, 0x1
- strh r1, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3
- ble _0808C2A2
- ldrb r0, [r5, 0x1B]
- bl SetSpriteInvisible
-_0808C302:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808C280
-
- thumb_func_start task_add_bump_boulder
-task_add_bump_boulder: @ 808C310
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =taskFF_bump_boulder
- adds r0, r6, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- bl _call_via_r6
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_add_bump_boulder
-
- thumb_func_start taskFF_bump_boulder
-taskFF_bump_boulder: @ 808C34C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, =gUnknown_08497530
- ldr r2, =gTasks
- ldr r5, =gEventObjects
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0808C360:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _0808C360
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end taskFF_bump_boulder
-
- thumb_func_start sub_808C3A4
-sub_808C3A4: @ 808C3A4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C3A4
-
- thumb_func_start do_boulder_dust
-@ int do_boulder_dust(int a1, struct npc_state *a2, struct npc_state *a3)
-do_boulder_dust: @ 808C3C4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r5, 0
- bl EventObjectIsHeldMovementActive
- lsls r0, 24
- cmp r0, 0
- beq _0808C3DE
- adds r0, r5, 0
- bl EventObjectClearHeldMovementIfFinished
-_0808C3DE:
- adds r0, r4, 0
- bl EventObjectIsHeldMovementActive
- lsls r0, 24
- cmp r0, 0
- beq _0808C3F0
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
-_0808C3F0:
- adds r0, r5, 0
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- bne _0808C472
- adds r0, r4, 0
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- bne _0808C472
- adds r0, r5, 0
- bl EventObjectClearHeldMovementIfFinished
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- ldrb r0, [r6, 0xC]
- bl GetWalkInPlaceNormalMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl EventObjectSetHeldMovement
- ldrb r0, [r6, 0xC]
- bl GetWalkSlowMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetHeldMovement
- ldr r2, =gFieldEffectArguments
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- ldrb r0, [r4, 0xB]
- lsrs r0, 4
- str r0, [r2, 0x8]
- ldr r3, =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r2, 0xC]
- movs r0, 0xA
- bl FieldEffectStart
- movs r0, 0xD6
- bl PlaySE
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0808C472:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_boulder_dust
-
- thumb_func_start sub_808C484
-sub_808C484: @ 808C484
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r0, r4, 0
- bl EventObjectCheckHeldMovementStatus
- lsls r0, 24
- cmp r0, 0
- beq _0808C4C6
- adds r0, r5, 0
- bl EventObjectCheckHeldMovementStatus
- lsls r0, 24
- cmp r0, 0
- beq _0808C4C6
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- adds r0, r5, 0
- bl EventObjectClearHeldMovementIfFinished
- ldr r1, =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldr r0, =taskFF_bump_boulder
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808C4C6:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C484
-
- thumb_func_start sub_808C4D8
-sub_808C4D8: @ 808C4D8
- push {r4,lr}
- ldr r4, =sub_808C4F8
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C4D8
-
- thumb_func_start sub_808C4F8
-sub_808C4F8: @ 808C4F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_0849753C
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0808C50A:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _0808C50A
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C4F8
-
- thumb_func_start sub_808C544
-sub_808C544: @ 808C544
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r5, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r5, 0x6]
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808C5A0
- movs r0, 0xA
- bl PlaySE
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetJumpInPlaceMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetHeldMovement
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0808C5A0
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldr r0, =sub_808C4F8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808C5A0:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C544
-
- thumb_func_start sub_808C5B0
-sub_808C5B0: @ 808C5B0
- push {r4,lr}
- ldr r4, =sub_808C5D0
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C5B0
-
- thumb_func_start sub_808C5D0
-sub_808C5D0: @ 808C5D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_08497540
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0808C5E2:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _0808C5E2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C5D0
-
- thumb_func_start sub_808C61C
-sub_808C61C: @ 808C61C
- push {lr}
- ldrh r2, [r0, 0x8]
- adds r2, 0x1
- strh r2, [r0, 0x8]
- ldrb r1, [r1, 0x18]
- lsrs r1, 4
- strh r1, [r0, 0xA]
- ldr r1, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- bl ScriptContext2_Enable
- movs r0, 0x2D
- bl PlaySE
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C61C
-
- thumb_func_start sub_808C644
-sub_808C644: @ 808C644
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, =gUnknown_08497550
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r5, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808C6AC
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- subs r0, 0x1
- add r0, sp
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetFaceDirectionMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl EventObjectSetHeldMovement
- ldrb r0, [r4, 0xA]
- cmp r6, r0
- bne _0808C68A
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0808C68A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0808C6AC
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0808C6AC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808C6AC:
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C644
-
- thumb_func_start sub_808C6BC
-sub_808C6BC: @ 808C6BC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gUnknown_08497554
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808C6EC
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl EventObjectSetHeldMovement
- movs r0, 0x1
- strh r0, [r5, 0x8]
-_0808C6EC:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C6BC
-
- thumb_func_start sub_808C6FC
-sub_808C6FC: @ 808C6FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808C740
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetWalkSlowMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl EventObjectSetHeldMovement
- bl ScriptContext2_Disable
- ldr r1, =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r0, =sub_808C5D0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808C740:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808C6FC
-
- thumb_func_start sub_808C750
-sub_808C750: @ 808C750
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- bl Overworld_ClearSavedMusic
- bl Overworld_ChangeMusicToDefault
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0xF7
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x6]
- ldr r5, =taskFF_0805D1D4
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C750
-
- thumb_func_start taskFF_0805D1D4
-taskFF_0805D1D4: @ 808C7A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- beq _0808C7D4
- adds r0, r5, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808C7FC
-_0808C7D4:
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_81555AC
- ldr r0, =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl GetJumpSpecialMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl EventObjectSetHeldMovement
- ldr r0, =sub_808C814
- str r0, [r4]
-_0808C7FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end taskFF_0805D1D4
-
- thumb_func_start sub_808C814
-sub_808C814: @ 808C814
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808C87A
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetHeldMovement
- movs r0, 0
- strb r0, [r6, 0x6]
- bl ScriptContext2_Disable
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
-_0808C87A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808C814
-
- thumb_func_start StartFishing
-StartFishing: @ 808C88C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =Task_Fish
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end StartFishing
-
- thumb_func_start Task_Fish
-Task_Fish: @ 808C8C0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_0849755C
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0808C8D2:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0808C8D2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_Fish
-
- thumb_func_start fish0
-fish0: @ 808C8F8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish0
-
- thumb_func_start fish1
-fish1: @ 808C918
- push {r4-r6,lr}
- sub sp, 0x10
- adds r5, r0, 0
- ldr r1, =gUnknown_0849759C
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r4, sp, 0x8
- ldr r1, =gUnknown_084975A2
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r5, 0x20]
- bl Random
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- lsls r1, 1
- mov r2, sp
- adds r6, r2, r1
- lsls r0, 16
- lsrs r0, 16
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r6]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldr r3, =gEventObjects
- ldr r2, =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- strh r0, [r5, 0x24]
- ldrb r0, [r2, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r3
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfActive
- ldrb r0, [r4, 0x1]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_808C15C
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish1
-
- thumb_func_start fish2
-fish2: @ 808C9B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_808CF78
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _0808C9CC
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0808C9CC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish2
-
- thumb_func_start fish3
-fish3: @ 808C9D4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x1
- bl sub_819786C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0808CA0C
- adds r0, r1, 0x4
- strh r0, [r4, 0xE]
-_0808CA0C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- ble _0808CA18
- movs r0, 0xA
- strh r0, [r4, 0xE]
-_0808CA18:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish3
-
- thumb_func_start fish4
-fish4: @ 808CA20
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, =gUnknown_084975A8
- add r0, sp, 0xC
- movs r2, 0x2
- bl memcpy
- bl sub_808CF78
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- ldr r0, =gMain
- ldrh r0, [r0, 0x2E]
- movs r5, 0x1
- adds r2, r5, 0
- ands r2, r0
- cmp r2, 0
- beq _0808CA64
- movs r0, 0xB
- strh r0, [r4, 0x8]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0808CA58
- movs r0, 0xC
- strh r0, [r4, 0x8]
-_0808CA58:
- movs r0, 0x1
- b _0808CAB4
- .pool
-_0808CA64:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0808CAB2
- strh r2, [r4, 0xA]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _0808CA94
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- ldrh r2, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0808CA8E
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0808CA8E:
- adds r0, r2, 0x1
- strh r0, [r4, 0x20]
- b _0808CAB2
-_0808CA94:
- movs r0, 0xC
- ldrsh r3, [r4, r0]
- lsls r3, 27
- lsrs r3, 24
- str r5, [sp]
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- add r2, sp, 0xC
- bl AddTextPrinterParameterized
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0808CAB2:
- movs r0, 0
-_0808CAB4:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end fish4
-
- thumb_func_start fish5
-fish5: @ 808CABC
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_808CF78
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r6, 0
- bl DoesCurrentMapHaveFishingMons
- lsls r0, 24
- cmp r0, 0
- bne _0808CADC
- movs r0, 0xB
- strh r0, [r5, 0x8]
- b _0808CB5C
-_0808CADC:
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _0808CB14
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- beq _0808CAFC
- cmp r0, 0x3C
- bne _0808CB14
-_0808CAFC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _0808CB14
- movs r6, 0x1
-_0808CB14:
- cmp r6, 0
- bne _0808CB32
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0808CB30
- movs r0, 0xB
- strh r0, [r5, 0x8]
- b _0808CB32
- .pool
-_0808CB30:
- movs r6, 0x1
-_0808CB32:
- cmp r6, 0x1
- bne _0808CB5C
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFishingBiteDirectionAnimNum
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0808CB5C:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish5
-
- thumb_func_start fish6
-fish6: @ 808CB6C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- bl sub_808CF78
- ldr r2, =gText_OhABite
- movs r0, 0x11
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- strh r4, [r5, 0xA]
- movs r0, 0
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish6
-
- thumb_func_start fish7
-fish7: @ 808CBA4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, =gUnknown_084975AA
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- bl sub_808CF78
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- blt _0808CBDC
- movs r0, 0xC
- b _0808CBEC
- .pool
-_0808CBDC:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808CBEE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
-_0808CBEC:
- strh r0, [r4, 0x8]
-_0808CBEE:
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish7
-
- thumb_func_start fish8
-fish8: @ 808CBFC
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, =gUnknown_084975B0
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- bl sub_808CF78
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0808CC52
- cmp r1, 0x1
- bgt _0808CC56
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- movs r3, 0x20
- ldrsh r2, [r4, r3]
- lsls r2, 1
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- lsls r1, 2
- adds r2, r1
- mov r3, sp
- adds r1, r3, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- ble _0808CC56
-_0808CC52:
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_0808CC56:
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish8
-
- thumb_func_start fish9
-fish9: @ 808CC64
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- bl sub_808CF78
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_PokemonOnHook
- movs r5, 0
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0x1
- bl AddTextPrinterParameterized2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r5, [r4, 0xA]
- movs r0, 0
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fish9
-
- thumb_func_start fishA_wait_for_a_pressed
-fishA_wait_for_a_pressed: @ 808CCA8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0808CCBC
- bl sub_808CF78
-_0808CCBC:
- bl RunTextPrinters
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0808CD58
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- bne _0808CD50
- ldr r7, =gPlayerAvatar
- ldrb r0, [r7, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- mov r8, r0
- add r4, r8
- ldrh r1, [r5, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- ldrb r1, [r7]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808CD1A
- ldrb r0, [r7, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8155604
-_0808CD1A:
- ldr r2, =gSprites
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x24]
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x26]
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _0808CD80
- .pool
-_0808CD50:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0808CD80
-_0808CD58:
- ldr r1, =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl FishingWildEncounter
- movs r0, 0x1
- bl sub_80ED950
- ldr r0, =Task_Fish
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808CD80:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fishA_wait_for_a_pressed
-
- thumb_func_start fishB
-fishB: @ 808CD94
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- bl sub_808CF78
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFishingNoCatchDirectionAnimNum
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_NotEvenANibble
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0x1
- bl AddTextPrinterParameterized2
- movs r0, 0xD
- strh r0, [r5, 0x8]
- movs r0, 0x1
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fishB
-
- thumb_func_start fishC
-fishC: @ 808CE04
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r0, 0
- bl sub_808CF78
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFishingNoCatchDirectionAnimNum
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_ItGotAway
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0x1
- bl AddTextPrinterParameterized2
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fishC
-
- thumb_func_start fishD
-fishD: @ 808CE74
- push {r4,lr}
- adds r4, r0, 0
- bl sub_808CF78
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fishD
-
- thumb_func_start fishE
-fishE: @ 808CE8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_808CF78
- ldr r7, =gSprites
- ldr r5, =gPlayerAvatar
- ldrb r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3F
- ldrb r0, [r1]
- lsls r0, 27
- cmp r0, 0
- bge _0808CF12
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- mov r8, r0
- add r4, r8
- ldrh r1, [r6, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectSetGraphicsId
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl EventObjectTurn
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808CEF2
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8155604
-_0808CEF2:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r2, 0
- strh r2, [r0, 0x24]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0808CF12:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end fishE
-
- thumb_func_start fishF
-fishF: @ 808CF2C
- push {lr}
- bl RunTextPrinters
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0808CF68
- ldr r0, =gPlayerAvatar
- strb r1, [r0, 0x6]
- bl ScriptContext2_Disable
- bl UnfreezeEventObjects
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- movs r0, 0
- bl sub_80ED950
- ldr r0, =Task_Fish
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0808CF68:
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end fishF
-
- thumb_func_start sub_808CF78
-sub_808CF78: @ 808CF78
- push {r4-r7,lr}
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- adds r0, r4, 0
- bl AnimateSprite
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r5, [r0]
- movs r0, 0x2A
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r6, r5, 2
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r7, 0x1
- negs r7, r7
- cmp r0, r7
- beq _0808CFEA
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- mov r1, r12
- ldrb r0, [r1]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r7
- bne _0808CFF0
-_0808CFEA:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0808CFF0:
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrb r5, [r0]
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0808D022
- movs r0, 0x8
- strh r0, [r4, 0x24]
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0808D022
- ldr r0, =0x0000fff8
- strh r0, [r4, 0x24]
-_0808D022:
- cmp r5, 0x5
- bne _0808D02A
- ldr r0, =0x0000fff8
- strh r0, [r4, 0x26]
-_0808D02A:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0808D03A
- movs r0, 0x8
- strh r0, [r4, 0x26]
-_0808D03A:
- ldr r3, =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0808D05E
- ldr r2, =gEventObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1A]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0x1
- bl sub_8155604
-_0808D05E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808CF78
-
- thumb_func_start sub_808D074
-sub_808D074: @ 808D074
- ldr r1, =gUnknown_0203734C
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_808D074
-
- thumb_func_start sub_808D080
-sub_808D080: @ 808D080
- push {lr}
- ldr r1, =gUnknown_0203734C
- ldrb r0, [r1]
- cmp r0, 0
- bne _0808D08C
- movs r0, 0x1
-_0808D08C:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808D080
-
- thumb_func_start sub_808D094
-sub_808D094: @ 808D094
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r7, r0, r1
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r0, 0
- ldrsh r6, [r5, r0]
- cmp r6, 0x1
- beq _0808D14A
- cmp r6, 0x1
- bgt _0808D0E8
- cmp r6, 0
- beq _0808D0EE
- b _0808D18A
- .pool
-_0808D0E8:
- cmp r6, 0x2
- beq _0808D184
- b _0808D18A
-_0808D0EE:
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808D18A
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_808D074
- movs r1, 0
- mov r8, r1
- strh r6, [r5, 0x2]
- movs r0, 0x1
- strh r0, [r5, 0x4]
- ldrh r0, [r7, 0x26]
- ldrh r2, [r7, 0x22]
- adds r0, r2
- lsls r0, 4
- strh r0, [r5, 0x6]
- strh r6, [r7, 0x26]
- bl CameraObjectReset2
- ldrb r0, [r4, 0x3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r7, 0x5]
- adds r0, r7, 0
- adds r0, 0x43
- mov r1, r8
- strb r1, [r0]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0808D14A:
- adds r1, r5, 0x2
- adds r0, r4, 0
- bl sub_808D38C
- ldrh r0, [r5, 0x6]
- ldrh r1, [r5, 0x4]
- subs r0, r1
- strh r0, [r5, 0x6]
- adds r1, 0x3
- strh r1, [r5, 0x4]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r7, 0x22]
- movs r2, 0x22
- ldrsh r1, [r7, r2]
- ldr r0, =gUnknown_03005DE8
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r1, r0
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- bge _0808D18A
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _0808D18A
- .pool
-_0808D184:
- adds r0, r2, 0
- bl DestroyTask
-_0808D18A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808D094
-
- thumb_func_start sub_808D194
-sub_808D194: @ 808D194
- push {r4,lr}
- ldr r4, =sub_808D1FC
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808D194
-
- thumb_func_start sub_808D1B4
-sub_808D1B4: @ 808D1B4
- push {lr}
- ldr r0, =sub_808D1FC
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808D1B4
-
- thumb_func_start sub_808D1C8
-sub_808D1C8: @ 808D1C8
- push {r4,lr}
- ldr r4, =sub_808D094
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808D1C8
-
- thumb_func_start sub_808D1E8
-sub_808D1E8: @ 808D1E8
- push {lr}
- ldr r0, =sub_808D094
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_808D1E8
-
- thumb_func_start sub_808D1FC
-sub_808D1FC: @ 808D1FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r7, r0, r1
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r2, 0
- ldrsh r6, [r5, r2]
- cmp r6, 0x1
- beq _0808D2DE
- cmp r6, 0x1
- bgt _0808D254
- cmp r6, 0
- beq _0808D25E
- b _0808D37E
- .pool
-_0808D254:
- cmp r6, 0x2
- beq _0808D31C
- cmp r6, 0x3
- beq _0808D33A
- b _0808D37E
-_0808D25E:
- bl sub_808D080
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldr r1, =gUnknown_084975BC
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- bl GetFaceDirectionMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl EventObjectForceSetHeldMovement
- movs r0, 0
- mov r9, r0
- strh r6, [r5, 0x2]
- movs r0, 0x74
- strh r0, [r5, 0x4]
- ldrh r0, [r7, 0x22]
- strh r0, [r5, 0x8]
- ldrb r0, [r7, 0x5]
- lsls r0, 28
- lsrs r0, 30
- strh r0, [r5, 0xC]
- movs r1, 0x43
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- strh r0, [r5, 0xE]
- ldrh r0, [r7, 0x26]
- adds r0, 0x20
- negs r0, r0
- lsls r0, 4
- strh r0, [r5, 0x6]
- strh r6, [r7, 0x26]
- bl CameraObjectReset2
- ldrb r0, [r4, 0x3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r7, 0x5]
- mov r3, r9
- mov r2, r8
- strb r3, [r2]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0808D2DE:
- adds r1, r5, 0x2
- adds r0, r4, 0
- bl sub_808D38C
- ldrh r0, [r5, 0x4]
- ldrh r2, [r5, 0x6]
- adds r1, r0, r2
- strh r1, [r5, 0x6]
- subs r0, 0x3
- strh r0, [r5, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _0808D2FE
- movs r0, 0x4
- strh r0, [r5, 0x4]
-_0808D2FE:
- ldrh r0, [r5, 0x6]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r7, 0x22]
- ldrh r2, [r5, 0x8]
- movs r3, 0x8
- ldrsh r1, [r5, r3]
- cmp r0, r1
- blt _0808D37E
- strh r2, [r7, 0x22]
- movs r0, 0
- strh r0, [r5, 0x10]
- b _0808D332
- .pool
-_0808D31C:
- adds r1, r5, 0x2
- adds r0, r4, 0
- bl sub_808D38C
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0808D37E
-_0808D332:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _0808D37E
-_0808D33A:
- movs r0, 0xA
- ldrsh r6, [r5, r0]
- adds r1, r5, 0x2
- adds r0, r4, 0
- bl sub_808D38C
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0808D37E
- ldrb r1, [r4, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- ldrh r1, [r5, 0xE]
- adds r0, r7, 0
- adds r0, 0x43
- strb r1, [r0]
- bl CameraObjectReset1
- mov r0, r8
- bl DestroyTask
-_0808D37E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808D1FC
-
- thumb_func_start sub_808D38C
-sub_808D38C: @ 808D38C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrh r1, [r6]
- movs r2, 0
- ldrsh r0, [r6, r2]
- cmp r0, 0x7
- bgt _0808D3A8
- adds r0, r1, 0x1
- strh r0, [r6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0808D3E4
-_0808D3A8:
- adds r0, r5, 0
- bl EventObjectCheckHeldMovementStatus
- lsls r0, 24
- cmp r0, 0
- beq _0808D3E4
- ldr r4, =gUnknown_084975BC
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r4
- ldrb r0, [r0]
- bl GetFaceDirectionMovementAction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl EventObjectForceSetHeldMovement
- movs r0, 0
- strh r0, [r6]
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r4
- ldrb r0, [r0]
- b _0808D3EA
- .pool
-_0808D3E4:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
-_0808D3EA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808D38C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_screen.s b/asm/field_screen.s
index c11aef1b4..8a97644ac 100644
--- a/asm/field_screen.s
+++ b/asm/field_screen.s
@@ -7851,7 +7851,7 @@ palette_bg_faded_fill_black: @ 80AF020
thumb_func_start pal_fill_for_maplights
pal_fill_for_maplights: @ 80AF040
push {r4,lr}
- bl get_map_light_from_warp0
+ bl GetLastUsedWarpMapType
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
diff --git a/asm/fire.s b/asm/fire.s
new file mode 100644
index 000000000..cd0339b9b
--- /dev/null
+++ b/asm/fire.s
@@ -0,0 +1,2397 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8108EC8
+sub_8108EC8: @ 8108EC8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, =sub_80A634C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108EC8
+
+ thumb_func_start sub_8108F08
+sub_8108F08: @ 8108F08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimArgs
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_80A6864
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, =sub_80A656C
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108F08
+
+ thumb_func_start sub_8108F4C
+sub_8108F4C: @ 8108F4C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08108F88
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _08108F9E
+ .pool
+_08108F88:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_08108F9E:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, =sub_8109028
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108F4C
+
+ thumb_func_start sub_8108FBC
+sub_8108FBC: @ 8108FBC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08108FF0
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _08109008
+ .pool
+_08108FF0:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_08109008:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, =sub_8109028
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108FBC
+
+ thumb_func_start sub_8109028
+sub_8109028: @ 8109028
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _0810904E
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_0810904E:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _08109060
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_08109060:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109028
+
+ thumb_func_start sub_8109064
+sub_8109064: @ 8109064
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A6838
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109090
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _081090A2
+ .pool
+_08109090:
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_081090A2:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, =sub_81090D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109064
+
+ thumb_func_start sub_81090D8
+sub_81090D8: @ 81090D8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08109160
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, =0x00002710
+ cmp r1, r0
+ ble _081090F6
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_081090F6:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _0810914C
+ ldr r2, =0xffffff00
+ b _08109154
+ .pool
+_0810914C:
+ cmp r0, 0
+ bge _08109158
+ movs r2, 0x80
+ lsls r2, 1
+_08109154:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_08109158:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _08109166
+_08109160:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_08109166:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81090D8
+
+ thumb_func_start sub_810916C
+sub_810916C: @ 810916C
+ push {lr}
+ movs r1, 0
+ strh r1, [r0, 0x20]
+ strh r1, [r0, 0x22]
+ movs r1, 0x3C
+ strh r1, [r0, 0x2E]
+ movs r1, 0x8C
+ strh r1, [r0, 0x32]
+ movs r1, 0x50
+ strh r1, [r0, 0x36]
+ ldr r1, =StartAnimLinearTranslation
+ str r1, [r0, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810916C
+
+ thumb_func_start sub_8109198
+sub_8109198: @ 8109198
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _081091DE
+ movs r0, 0x2
+ bl GetBattlerAtPosition
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _081091D6
+ movs r0, 0x3
+ bl GetBattlerAtPosition
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _081091DE
+_081091D6:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_081091DE:
+ ldr r1, =sub_80A7938
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109198
+
+ thumb_func_start sub_8109200
+sub_8109200: @ 8109200
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, =sub_80A7938
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_8109200
+
+ thumb_func_start sub_810921C
+sub_810921C: @ 810921C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, =sub_8109244
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810921C
+
+ thumb_func_start sub_8109244
+sub_8109244: @ 8109244
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8109338
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _0810928E
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =sub_810929C
+ str r0, [r5, 0x1C]
+_0810928E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109244
+
+ thumb_func_start sub_810929C
+sub_810929C: @ 810929C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _081092E4
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, =sub_8109314
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _0810930E
+ .pool
+_081092E4:
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Sin
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Cos
+ ldrh r1, [r6, 0x26]
+ adds r0, r1
+ strh r0, [r6, 0x26]
+ ldrh r0, [r6, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3C]
+_0810930E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810929C
+
+ thumb_func_start sub_8109314
+sub_8109314: @ 8109314
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8109338
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08109330
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08109330:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109314
+
+ thumb_func_start sub_8109338
+sub_8109338: @ 8109338
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109338
+
+ thumb_func_start sub_8109364
+sub_8109364: @ 8109364
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A653C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109364
+
+ thumb_func_start sub_81093A4
+sub_81093A4: @ 81093A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r4, 0x1C]
+ ldr r1, =sub_81093E4
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81093A4
+
+ thumb_func_start sub_81093E4
+sub_81093E4: @ 81093E4
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldrh r1, [r0, 0x30]
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ ldr r1, =sub_810940C
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81093E4
+
+ thumb_func_start sub_810940C
+sub_810940C: @ 810940C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0xD0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08109458
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08109458:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810940C
+
+ thumb_func_start sub_8109460
+sub_8109460: @ 8109460
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x10]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80A7270
+ ldr r0, =sub_81094D0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109460
+
+ thumb_func_start sub_81094D0
+sub_81094D0: @ 81094D0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _081094EC
+ b _081097AA
+_081094EC:
+ lsls r0, 2
+ ldr r1, =_08109500
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08109500:
+ .4byte _0810951C
+ .4byte _08109542
+ .4byte _081095F4
+ .4byte _08109654
+ .4byte _08109672
+ .4byte _08109748
+ .4byte _0810979C
+_0810951C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_80A805C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08109542:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810958A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109578
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ b _08109588
+ .pool
+_08109578:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000fffd
+_08109588:
+ strh r1, [r0, 0x24]
+_0810958A:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081095B8
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081095B8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+_081095B8:
+ adds r0, r4, 0
+ bl sub_80A80C8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _081095C8
+ b _081097AA
+_081095C8:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7E6C
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ b _08109790
+ .pool
+_081095F4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _08109604
+ b _081097AA
+_08109604:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810962E
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xF0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_80A805C
+ b _0810964E
+_0810962E:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xC0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_80A805C
+_0810964E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08109790
+_08109654:
+ adds r0, r4, 0
+ bl sub_80A80C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109662
+ b _081097AA
+_08109662:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_81097B4
+ b _08109790
+_08109672:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081096C0
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081096AC
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ b _081096BE
+ .pool
+_081096AC:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+_081096BE:
+ strh r1, [r0, 0x26]
+_081096C0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _081097AA
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081096FC
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xF0
+ bl sub_80A805C
+ b _0810971A
+ .pool
+_081096FC:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xC0
+ bl sub_80A805C
+_0810971A:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109738
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+_08109738:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _08109790
+ .pool
+_08109748:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08109764
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_08109764:
+ adds r0, r4, 0
+ bl sub_80A80C8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _081097AA
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x22]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7344
+ strh r5, [r4, 0xC]
+_08109790:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081097AA
+ .pool
+_0810979C:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081097AA
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_081097AA:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81094D0
+
+ thumb_func_start sub_81097B4
+sub_81097B4: @ 81097B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_8109930
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810980C
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _08109816
+ .pool
+_0810980C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_08109816:
+ movs r6, 0
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x4]
+ ldr r2, =gUnknown_085955CC
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_08109834:
+ ldr r0, =gUnknown_085955B4
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x4]
+ asrs r2, r3, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _081098B6
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 2
+ adds r0, 0x40
+ adds r1, r0
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, =0xfffffc00
+ adds r0, r3, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r4, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _0810987E
+ movs r5, 0
+_0810987E:
+ lsls r2, r6, 2
+ mov r1, r9
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ ldr r3, [sp]
+ adds r1, r0, 0
+ muls r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, =gUnknown_085955CC+2
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_8109984
+ strh r7, [r4, 0x3A]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ add r0, r10
+ ldr r1, =gTasks + 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_081098B6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _08109834
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81097B4
+
+ thumb_func_start sub_81098EC
+sub_81098EC: @ 81098EC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_81099A0
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08109926
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_08109926:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81098EC
+
+ thumb_func_start sub_8109930
+sub_8109930: @ 8109930
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x26]
+ ldrh r0, [r1, 0x22]
+ adds r2, r0
+ adds r1, 0x29
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109970
+ lsls r0, r4, 16
+ movs r1, 0x94
+ lsls r1, 15
+ b _08109976
+ .pool
+_08109970:
+ lsls r0, r4, 16
+ movs r1, 0xB0
+ lsls r1, 14
+_08109976:
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8109930
+
+ thumb_func_start sub_8109984
+sub_8109984: @ 8109984
+ movs r3, 0
+ strh r3, [r0, 0x2E]
+ strh r3, [r0, 0x30]
+ ldrh r3, [r0, 0x20]
+ lsls r3, 3
+ strh r3, [r0, 0x32]
+ ldrh r3, [r0, 0x22]
+ lsls r3, 3
+ strh r3, [r0, 0x34]
+ lsls r1, 3
+ strh r1, [r0, 0x36]
+ lsls r2, 3
+ strh r2, [r0, 0x38]
+ bx lr
+ thumb_func_end sub_8109984
+
+ thumb_func_start sub_81099A0
+sub_81099A0: @ 81099A0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _081099CA
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r3, [r2, 0x34]
+ adds r0, r3
+ strh r0, [r2, 0x34]
+_081099CA:
+ ldrh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r1, 16
+ asrs r3, r1, 19
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08109A00
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _08109A00
+ cmp r1, 0x78
+ ble _08109A0C
+_08109A00:
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08109A0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81099A0
+
+ thumb_func_start sub_8109A10
+sub_8109A10: @ 8109A10
+ push {r4,r5,lr}
+ ldr r3, =gBattleAnimArgs
+ ldrh r1, [r3]
+ movs r2, 0
+ strh r1, [r0, 0x20]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0x3A]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0x3C]
+ ldrh r4, [r0, 0x4]
+ lsls r2, r4, 22
+ lsrs r2, 22
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r1, 4
+ adds r2, r1
+ ldr r3, =0x000003ff
+ adds r1, r3, 0
+ ands r2, r1
+ ldr r1, =0xfffffc00
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r1, =sub_8109A64
+ str r1, [r0, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109A10
+
+ thumb_func_start sub_8109A64
+sub_8109A64: @ 8109A64
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08109A96
+ cmp r0, 0x1
+ bgt _08109A7A
+ cmp r0, 0
+ beq _08109A80
+ b _08109AF4
+_08109A7A:
+ cmp r0, 0x2
+ beq _08109AB4
+ b _08109AF4
+_08109A80:
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08109A90
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+ b _08109AF4
+_08109A90:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_08109A96:
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x3C]
+ movs r4, 0x3C
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _08109AF4
+ strh r3, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08109AF4
+_08109AB4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08109AE0
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109ADC
+ ldr r0, =0x0000fffd
+ b _08109ADE
+ .pool
+_08109ADC:
+ movs r0, 0x3
+_08109ADE:
+ strh r0, [r2, 0x26]
+_08109AE0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _08109AF4
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_08109AF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109A64
+
+ thumb_func_start sub_8109AFC
+sub_8109AFC: @ 8109AFC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08109B70
+ cmp r0, 0x1
+ bgt _08109B12
+ cmp r0, 0
+ beq _08109B18
+ b _08109C3E
+_08109B12:
+ cmp r0, 0x2
+ beq _08109BCE
+ b _08109C3E
+_08109B18:
+ adds r0, r5, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ ldr r4, =gBattleAnimArgs
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3C]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109B48
+ movs r0, 0x4
+ b _08109B4A
+ .pool
+_08109B48:
+ ldr r0, =0x0000fffc
+_08109B4A:
+ strh r0, [r5, 0x36]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _08109BC6
+ .pool
+_08109B70:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109B94
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _08109B9A
+ .pool
+_08109B94:
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_08109B9A:
+ strh r0, [r5, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08109C3E
+ movs r0, 0
+ strh r0, [r5, 0x34]
+_08109BC6:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _08109C3E
+_08109BCE:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r2, r0, 0
+ movs r3, 0
+ strh r2, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08109C3E
+ ldrh r0, [r5, 0x20]
+ adds r1, r2, r0
+ strh r1, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r3, [r5, 0x26]
+ strh r3, [r5, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_80A6FD4
+ ldr r0, =sub_8109C4C
+ str r0, [r5, 0x1C]
+_08109C3E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109AFC
+
+ thumb_func_start sub_8109C4C
+sub_8109C4C: @ 8109C4C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109CA4
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _08109C82
+ cmp r2, 0xC4
+ ble _08109CAA
+_08109C82:
+ lsls r0, 16
+ cmp r0, 0
+ ble _08109CAA
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08109CAA
+ ldr r0, =gUnknown_02038440
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x90
+ bl PlaySE12WithPanning
+ b _08109CAA
+ .pool
+_08109CA4:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08109CAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109C4C
+
+ thumb_func_start sub_8109CB0
+sub_8109CB0: @ 8109CB0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08109CC8
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_08109CC8:
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0xA0
+ strh r0, [r4, 0x36]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x36]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109D64
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _08109D3C
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _08109D80
+ .pool
+_08109D3C:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _08109D80
+ .pool
+_08109D64:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _08109D78
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _08109D7E
+_08109D78:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_08109D7E:
+ strb r0, [r1]
+_08109D80:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08109DA8
+ 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]
+_08109DA8:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1E
+ bne _08109DB6
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08109DB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109CB0
+
+ thumb_func_start sub_8109DBC
+sub_8109DBC: @ 8109DBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _08109DE2
+ movs r1, 0x1
+_08109DE2:
+ strh r1, [r4, 0x20]
+ ldr r0, =gBattleAnimTarget
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0x3
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, =sub_8109E2C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109DBC
+
+ thumb_func_start sub_8109E2C
+sub_8109E2C: @ 8109E2C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r2, r0, r1
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ cmp r3, 0x1
+ beq _08109EF4
+ cmp r3, 0x1
+ bgt _08109E54
+ cmp r3, 0
+ beq _08109E62
+ b _0810A054
+ .pool
+_08109E54:
+ cmp r3, 0x2
+ bne _08109E5A
+ b _08109F7C
+_08109E5A:
+ cmp r3, 0x3
+ bne _08109E60
+ b _0810A010
+_08109E60:
+ b _0810A054
+_08109E62:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08109E94
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109E90
+ movs r0, 0x2
+ b _08109E92
+_08109E90:
+ ldr r0, =0x0000fffe
+_08109E92:
+ strh r0, [r2, 0x1E]
+_08109E94:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _08109ED6
+ ldr r4, =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_08109EA6:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _08109EA6
+_08109ED6:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _08109EE6
+ b _0810A054
+_08109EE6:
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _0810A000
+ .pool
+_08109EF4:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08109F1C
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ands r0, r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08109F18
+ movs r0, 0x2
+ b _08109F1A
+_08109F18:
+ ldr r0, =0x0000fffe
+_08109F1A:
+ strh r0, [r2, 0x1E]
+_08109F1C:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _08109F5E
+ ldr r4, =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_08109F2E:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _08109F2E
+_08109F5E:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x60
+ bne _0810A054
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _0810A000
+ .pool
+_08109F7C:
+ movs r7, 0x20
+ ldrsh r1, [r2, r7]
+ lsls r1, 1
+ ldrh r0, [r2, 0x1C]
+ subs r0, r1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08109FB0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109FAC
+ strh r3, [r2, 0x1E]
+ b _08109FB0
+_08109FAC:
+ ldr r0, =0x0000fffe
+ strh r0, [r2, 0x1E]
+_08109FB0:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _08109FF2
+ ldr r4, =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_08109FC2:
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _08109FC2
+_08109FF2:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _0810A054
+_0810A000:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0810A054
+ .pool
+_0810A010:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _0810A04E
+ ldr r6, =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+ movs r5, 0
+_0810A024:
+ movs r7, 0xE
+ ldrsh r0, [r2, r7]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _0810A024
+_0810A04E:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0810A054:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8109E2C
+
+ thumb_func_start AnimTask_BlendBackground
+AnimTask_BlendBackground: @ 810A060
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ ldr r1, =gBattleAnimArgs
+ ldrb r2, [r1]
+ ldrh r3, [r1, 0x2]
+ movs r1, 0x10
+ bl BlendPalette
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_BlendBackground
+
+ thumb_func_start sub_810A094
+sub_810A094: @ 810A094
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ mov r9, r1
+ ldr r4, =gBattleAnimArgs
+ mov r8, r4
+ cmp r0, 0
+ bne _0810A0CA
+ ldrh r0, [r4]
+ strh r0, [r2, 0xA]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r2, 0xE]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r2, 0x10]
+_0810A0CA:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ movs r5, 0x10
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _0810A100
+ ldr r4, =gUnknown_08595684
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ b _0810A106
+ .pool
+_0810A100:
+ ldr r4, =gUnknown_08595694
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+_0810A106:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r4
+ ldrb r5, [r0]
+ lsls r0, r7, 2
+ adds r1, r0, r7
+ lsls r1, 3
+ add r1, r9
+ movs r4, 0xE
+ ldrsh r1, [r1, r4]
+ mov r12, r0
+ cmp r1, 0x1
+ bne _0810A154
+ ldr r2, =gSprites
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ mov r10, r0
+ mov r0, r8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ lsls r0, r5, 24
+ asrs r0, 24
+ muls r0, r1
+ cmp r0, 0
+ bge _0810A144
+ negs r0, r0
+_0810A144:
+ mov r5, r10
+ strh r0, [r5, 0x26]
+ b _0810A16E
+ .pool
+_0810A154:
+ ldr r3, =gSprites
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ lsls r0, r5, 24
+ asrs r0, 24
+ mov r5, r8
+ ldrh r1, [r5, 0x2]
+ muls r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_0810A16E:
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r9
+ movs r4, 0x8
+ ldrsh r1, [r0, r4]
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _0810A194
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_0810A194:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810A094
+
+ .align 2, 0
diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s
index 3cfbe215a..a361faa32 100644
--- a/asm/fldeff_80F9BCC.s
+++ b/asm/fldeff_80F9BCC.s
@@ -2262,8 +2262,8 @@ _080FAEA2:
bx r0
thumb_func_end task50_overworld_poison_effect
- thumb_func_start overworld_poison_effect
-overworld_poison_effect: @ 80FAEA8
+ thumb_func_start FldeffPoison_Start
+FldeffPoison_Start: @ 80FAEA8
push {lr}
movs r0, 0x4F
bl PlaySE
@@ -2273,7 +2273,7 @@ overworld_poison_effect: @ 80FAEA8
pop {r0}
bx r0
.pool
- thumb_func_end overworld_poison_effect
+ thumb_func_end FldeffPoison_Start
thumb_func_start FieldPoisonEffectIsRunning
FieldPoisonEffectIsRunning: @ 80FAEC0
diff --git a/asm/flying.s b/asm/flying.s
new file mode 100644
index 000000000..b981b4306
--- /dev/null
+++ b/asm/flying.s
@@ -0,0 +1,2515 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810DE70
+sub_810DE70: @ 810DE70
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80A6980
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x14
+ strh r0, [r4, 0x22]
+ movs r0, 0xBF
+ strh r0, [r4, 0x30]
+ ldr r1, =sub_810DE98
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810DE70
+
+ thumb_func_start sub_810DE98
+sub_810DE98: @ 810DE98
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x47
+ bne _0810DED2
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810DED2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810DE98
+
+ thumb_func_start sub_810DED8
+sub_810DED8: @ 810DED8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ ldr r0, =0x00002719
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldr r0, =sub_810DF18
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810DED8
+
+ thumb_func_start sub_810DF18
+sub_810DF18: @ 810DF18
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r3, r4]
+ adds r7, r2, 0
+ cmp r0, r1
+ bne _0810DF76
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrb r0, [r3, 0xC]
+ ldr r2, =gPlttBufferFaded
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r2
+ ldrh r6, [r1]
+ movs r4, 0x7
+ mov r12, r0
+ ldr r0, =0x00000107
+ add r0, r12
+ lsls r0, 1
+ adds r3, r0, r2
+_0810DF5E:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0810DF5E
+ ldr r0, =0x00000101
+ add r0, r12
+ lsls r0, 1
+ adds r0, r2
+ strh r6, [r0]
+_0810DF76:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _0810DF90
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0810DF90:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810DF18
+
+ thumb_func_start sub_810DFA8
+sub_810DFA8: @ 810DFA8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810DFC8
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_0810DFC8:
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =sub_80A67BC
+ str r0, [r6, 0x1C]
+ ldr r1, =sub_810E028
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810DFA8
+
+ thumb_func_start sub_810E028
+sub_810E028: @ 810E028
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810E03C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810E03C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E028
+
+ thumb_func_start sub_810E044
+sub_810E044: @ 810E044
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810E070
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_0810E070:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810E088
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_0810E088:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ ldrh r3, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x20]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0810E0EC
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _0810E0FE
+ .pool
+_0810E0EC:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl SetAverageBattlerPositions
+_0810E0FE:
+ ldr r4, =gBattleAnimArgs
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ ldrh r3, [r5, 0x36]
+ adds r0, r3
+ strh r0, [r5, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r5, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E044
+
+ thumb_func_start sub_810E13C
+sub_810E13C: @ 810E13C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, =sub_810E184
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E13C
+
+ thumb_func_start sub_810E184
+sub_810E184: @ 810E184
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _0810E198
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _0810E1AA
+_0810E198:
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+_0810E1AA:
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _0810E1C2
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_0810E1C2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E184
+
+ thumb_func_start sub_810E1C8
+sub_810E1C8: @ 810E1C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810E1F8
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldr r0, =0x0000ffe0
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _0810E1FE
+ .pool
+_0810E1F8:
+ ldr r0, =0x0000ffe0
+ strh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+_0810E1FE:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =sub_810E24C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E1C8
+
+ thumb_func_start sub_810E24C
+sub_810E24C: @ 810E24C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ ldrh r1, [r4, 0x34]
+ lsrs r0, r1, 8
+ cmp r0, 0xC8
+ bls _0810E274
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+_0810E274:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bhi _0810E296
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ ble _0810E2BC
+_0810E296:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810E2BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E24C
+
+ thumb_func_start sub_810E2C8
+sub_810E2C8: @ 810E2C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0810E308
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E2FA
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_0810E2FA:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0810E308:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E2C8
+
+ thumb_func_start sub_810E314
+sub_810E314: @ 810E314
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r7, 0
+ adds r5, 0x2E
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E33C
+ ldr r0, =gBattleAnimAttacker
+ b _0810E33E
+ .pool
+_0810E33C:
+ ldr r0, =gBattleAnimTarget
+_0810E33E:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810E354
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_0810E354:
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldrh r1, [r4, 0x2]
+ lsrs r0, 24
+ adds r1, r0, r1
+ strh r1, [r7, 0x22]
+ lsls r1, 8
+ strh r1, [r5, 0x8]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 1
+ ldrh r2, [r5, 0xE]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5]
+ movs r2, 0x4
+ mov r8, r2
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4, 0x4]
+ ldrb r1, [r4, 0x4]
+ strh r1, [r5, 0x2]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x6]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0xC]
+ subs r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x7F
+ bhi _0810E44A
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810E3F0
+ adds r0, r6, 0
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r7, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ b _0810E408
+ .pool
+_0810E3F0:
+ adds r0, r6, 0
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+_0810E408:
+ ldrb r1, [r5, 0xE]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r5, 0xE]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E4AA
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ b _0810E4A2
+_0810E44A:
+ adds r0, r6, 0
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ ldrb r0, [r5, 0xE]
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r5, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E4AA
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ mov r2, r8
+ orrs r0, r2
+_0810E4A2:
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+_0810E4AA:
+ ldrh r1, [r5, 0x2]
+ lsrs r1, 6
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r3, =gSineTable
+ ldrh r0, [r5, 0x2]
+ lsls r0, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldrb r0, [r5, 0xC]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ ldrb r2, [r7, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r7, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r5, [r5, 0xA]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ ldr r1, =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r4, [r2, 0x2]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldr r0, =sub_810E520
+ str r0, [r7, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E314
+
+ thumb_func_start sub_810E520
+sub_810E520: @ 810E520
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r6, 0
+ adds r4, r5, 0
+ adds r4, 0x2E
+ ldrb r2, [r4]
+ movs r7, 0x1
+ movs r0, 0x1
+ mov r9, r0
+ ands r0, r2
+ cmp r0, 0
+ beq _0810E55A
+ ldrb r0, [r4, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r4, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810E54E
+ b _0810EA36
+_0810E54E:
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _0810EA36
+_0810E55A:
+ ldrh r0, [r4, 0x2]
+ lsrs r1, r0, 6
+ mov r12, r0
+ cmp r1, 0x1
+ bne _0810E566
+ b _0810E68A
+_0810E566:
+ cmp r1, 0x1
+ bgt _0810E570
+ cmp r1, 0
+ beq _0810E57E
+ b _0810E97C
+_0810E570:
+ cmp r1, 0x2
+ bne _0810E576
+ b _0810E77E
+_0810E576:
+ cmp r1, 0x3
+ bne _0810E57C
+ b _0810E872
+_0810E57C:
+ b _0810E97C
+_0810E57E:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _0810E592
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _0810E680
+_0810E592:
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _0810E5B4
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ strb r1, [r4]
+ strb r6, [r4, 0x1]
+ b _0810E680
+_0810E5B4:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0810E680
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E672
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810E642
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E628
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E660
+_0810E628:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E660
+_0810E642:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E656
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _0810E65E
+_0810E656:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_0810E65E:
+ strb r0, [r1]
+_0810E660:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_0810E672:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_0810E680:
+ ldrb r1, [r4]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r4]
+ b _0810E97C
+_0810E68A:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _0810E698
+ movs r0, 0x8
+ orrs r0, r2
+ b _0810E6A0
+_0810E698:
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _0810E6A8
+ adds r0, r2, 0
+_0810E6A0:
+ orrs r0, r7
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _0810E774
+_0810E6A8:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0810E774
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E766
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810E736
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E71C
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E754
+_0810E71C:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E754
+_0810E736:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E74A
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _0810E752
+_0810E74A:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_0810E752:
+ strb r0, [r1]
+_0810E754:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_0810E766:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_0810E774:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _0810E978
+_0810E77E:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _0810E78C
+ movs r0, 0x8
+ orrs r0, r2
+ b _0810E794
+_0810E78C:
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _0810E79C
+ adds r0, r2, 0
+_0810E794:
+ orrs r0, r7
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _0810E868
+_0810E79C:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0810E868
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E85A
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810E82A
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E810
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E848
+_0810E810:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E848
+_0810E82A:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E83E
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _0810E846
+_0810E83E:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_0810E846:
+ strb r0, [r1]
+_0810E848:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_0810E85A:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_0810E868:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+ b _0810E978
+_0810E872:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _0810E882
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r4]
+ b _0810E970
+_0810E882:
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _0810E8A4
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ strb r1, [r4]
+ strb r6, [r4, 0x1]
+ b _0810E970
+_0810E8A4:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0810E970
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810E962
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810E932
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E918
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E950
+_0810E918:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _0810E950
+_0810E932:
+ ldrb r1, [r4, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0810E946
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ b _0810E94E
+_0810E946:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+_0810E94E:
+ strb r0, [r1]
+_0810E950:
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_0810E962:
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r1, [r4, 0x2]
+ mov r12, r1
+_0810E970:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x30
+_0810E978:
+ orrs r1, r0
+ strb r1, [r4]
+_0810E97C:
+ ldrb r1, [r4]
+ lsls r1, 30
+ lsrs r1, 31
+ adds r0, r4, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r3, =gSineTable
+ mov r2, r12
+ lsls r0, r2, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r1, [r4, 0xA]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldr r1, =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r6, [r2, 0x2]
+ lsls r0, r6, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r4, 0x6]
+ ldrh r2, [r4, 0x8]
+ adds r0, r2
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0810EA0C
+ ldrh r0, [r4, 0x4]
+ subs r1, 0x1
+ ands r1, r0
+ ldrh r0, [r4, 0x2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2]
+ b _0810EA1C
+ .pool
+_0810EA0C:
+ ldrh r0, [r4, 0x4]
+ ldr r1, =0x00007fff
+ ands r1, r0
+ ldrh r2, [r4, 0x2]
+ adds r1, r2
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x2]
+_0810EA1C:
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ ldrh r0, [r4, 0xE]
+ lsrs r0, 1
+ cmp r1, r0
+ blt _0810EA36
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, =sub_810E2C8
+ str r0, [r5, 0x1C]
+_0810EA36:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810E520
+
+ thumb_func_start sub_810EA4C
+sub_810EA4C: @ 810EA4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, =TranslateAnimSpriteToTargetMonLocation
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810EA4C
+
+ thumb_func_start sub_810EAA0
+sub_810EAA0: @ 810EAA0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810EABC
+ adds r0, r5, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ b _0810EAC4
+ .pool
+_0810EABC:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A6980
+_0810EAC4:
+ ldr r4, =gBattleAnimArgs
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0810EADC
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810EAF2
+_0810EADC:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _0810EAF8
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810EAF8
+_0810EAF2:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+_0810EAF8:
+ ldr r4, =gBattleAnimArgs
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+ strh r0, [r5, 0x20]
+ ldr r0, =0x00000ccc
+ strh r0, [r5, 0x30]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x24]
+ adds r0, r2
+ strh r0, [r5, 0x24]
+ strh r1, [r5, 0x2E]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, =sub_810EB40
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810EAA0
+
+ thumb_func_start sub_810EB40
+sub_810EB40: @ 810EB40
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0810EB6A
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_0810EB6A:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0810EB82
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810EB82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EB40
+
+ thumb_func_start sub_810EB88
+sub_810EB88: @ 810EB88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x8]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _0810EC02
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r5, 0xD
+ negs r5, r5
+ adds r1, r5, 0
+ bl Sin
+ ldr r4, =gBattleAnimArgs
+ strh r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ adds r1, r5, 0
+ bl Cos
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ ldr r0, =gUnknown_085973E8
+ mov r8, r0
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl CreateSpriteAndAnimate
+_0810EC02:
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x8
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _0810EC16
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_0810EC16:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810EB88
+
+ thumb_func_start sub_810EC34
+sub_810EC34: @ 810EC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810EC46
+ cmp r0, 0x1
+ beq _0810EC78
+ b _0810EC8C
+_0810EC46:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810EC8C
+ .pool
+_0810EC78:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0810EC8C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810EC8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EC34
+
+ thumb_func_start sub_810EC94
+sub_810EC94: @ 810EC94
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0810ECCC
+ cmp r0, 0x1
+ bgt _0810ECAA
+ cmp r0, 0
+ beq _0810ECB0
+ b _0810ED1E
+_0810ECAA:
+ cmp r0, 0x2
+ beq _0810ECE0
+ b _0810ED1E
+_0810ECB0:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r4, 0x26]
+ b _0810ECD8
+ .pool
+_0810ECCC:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _0810ED1E
+_0810ECD8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810ED1E
+_0810ECE0:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0xA
+ strh r0, [r4, 0x26]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _0810ED1E
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810ED1E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810EC94
+
+ thumb_func_start sub_810ED28
+sub_810ED28: @ 810ED28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, =sub_810ED70
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810ED28
+
+ thumb_func_start sub_810ED70
+sub_810ED70: @ 810ED70
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _0810ED84
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _0810EDC8
+_0810ED84:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _0810EDAA
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+ b _0810EDC8
+_0810EDAA:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0810EDC8
+ ldr r0, =sub_810EDD0
+ str r0, [r2, 0x1C]
+_0810EDC8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810ED70
+
+ thumb_func_start sub_810EDD0
+sub_810EDD0: @ 810EDD0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _0810EE00
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_0810EE00:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _0810EE0E
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_0810EE0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EDD0
+
+ thumb_func_start sub_810EE14
+sub_810EE14: @ 810EE14
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810EE28
+ cmp r0, 0x1
+ beq _0810EE80
+ b _0810EEEC
+_0810EE28:
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _0810EE40
+ ldr r4, =gBattleAnimAttacker
+ b _0810EE42
+ .pool
+_0810EE40:
+ ldr r4, =gBattleAnimTarget
+_0810EE42:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ movs r3, 0x80
+ lsls r3, 2
+ strh r3, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A73E0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0810EEEC
+ .pool
+_0810EE80:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xB
+ bgt _0810EE8E
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x28
+ b _0810EE92
+_0810EE8E:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x28
+_0810EE92:
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x30
+ ldrsh r3, [r5, r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ bl sub_80A73E0
+ ldrb r1, [r5, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ movs r0, 0xF4
+ lsls r0, 6
+ ldr r2, =gOamMatrices
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ adds r1, r0, 0x1
+ cmp r1, 0x80
+ ble _0810EECC
+ movs r1, 0x80
+_0810EECC:
+ movs r0, 0x40
+ subs r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ strh r1, [r5, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x18
+ bne _0810EEEC
+ adds r0, r5, 0
+ bl sub_80A749C
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+_0810EEEC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810EE14
+
+ thumb_func_start sub_810EEF8
+sub_810EEF8: @ 810EEF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random2
+ ldr r4, =0x000001ff
+ ands r4, r0
+ bl Random2
+ movs r1, 0x7F
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0810EF20
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r4, r2
+ b _0810EF28
+ .pool
+_0810EF20:
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r4
+_0810EF28:
+ strh r0, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810EF3C
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ adds r0, r1, r0
+ b _0810EF44
+_0810EF3C:
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r1
+_0810EF44:
+ strh r0, [r5, 0x30]
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0810EF60
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+_0810EF60:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0810EF74
+ ldr r4, =gBattleAnimAttacker
+ b _0810EF76
+ .pool
+_0810EF74:
+ ldr r4, =gBattleAnimTarget
+_0810EF76:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x22]
+ ldr r0, =sub_810EFA8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810EEF8
+
+ thumb_func_start sub_810EFA8
+sub_810EFA8: @ 810EFA8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810EFC0
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _0810EFCA
+_0810EFC0:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_0810EFCA:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ strh r3, [r4, 0x2E]
+ adds r0, r2, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x30]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _0810EFEA
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0810EFEA:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0810EFFE
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810EFFE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EFA8
+
+ thumb_func_start sub_810F004
+sub_810F004: @ 810F004
+ movs r1, 0
+ strh r1, [r0, 0x3A]
+ movs r1, 0x40
+ strh r1, [r0, 0x3C]
+ ldr r1, =sub_810F018
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_810F004
+
+ thumb_func_start sub_810F018
+sub_810F018: @ 810F018
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _0810F02A
+ cmp r1, 0x1
+ beq _0810F078
+ b _0810F07E
+_0810F02A:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0810F07E
+ strh r1, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0810F07E
+ ldrb r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F07E
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _0810F07E
+_0810F078:
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+_0810F07E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F018
+
+ thumb_func_start sub_810F084
+sub_810F084: @ 810F084
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ ldrh r4, [r0, 0x20]
+ ldrh r5, [r0, 0x22]
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r2, r8
+ strh r6, [r2, 0x22]
+ ldrh r0, [r2, 0x20]
+ mov r9, r0
+ mov r1, r9
+ lsls r0, r1, 4
+ strh r0, [r2, 0x36]
+ lsls r0, r6, 4
+ strh r0, [r2, 0x38]
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ subs r0, r4, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3A]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ subs r0, r5, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ subs r5, r6
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl ArcTan2Neg
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_80A73E0
+ ldr r0, =sub_810F140
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F084
+
+ thumb_func_start sub_810F140
+sub_810F140: @ 810F140
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x3C]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x2D
+ lsls r0, 16
+ movs r1, 0xA5
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0810F17A
+ adds r1, r3, 0
+ cmp r1, 0x9D
+ bgt _0810F17A
+ movs r0, 0x2D
+ negs r0, r0
+ cmp r1, r0
+ bge _0810F180
+_0810F17A:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_0810F180:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F140
+
+ thumb_func_start sub_810F184
+sub_810F184: @ 810F184
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810F1BC
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ b _0810F1DA
+ .pool
+_0810F1BC:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_0810F1DA:
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F184
+
+ .align 2, 0
diff --git a/asm/fossil_specials.s b/asm/fossil_specials.s
deleted file mode 100644
index eb7cb8ada..000000000
--- a/asm/fossil_specials.s
+++ /dev/null
@@ -1,111 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81BF2B8
-sub_81BF2B8: @ 81BF2B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r0, [sp]
- mov r10, r1
- adds r6, r2, 0
- mov r8, r3
- ldr r0, [sp, 0x28]
- mov r9, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- mov r8, r0
- lsrs r7, r0, 24
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- mov r0, r10
- adds r1, r7, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 24
- lsrs r4, r5, 24
- ldr r3, =gUnknown_030012A8
- strh r4, [r3]
- mov r0, r10
- adds r1, r7, 0
- str r3, [sp, 0x4]
- bl __modsi3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, [sp, 0x4]
- strh r2, [r3, 0x2]
- movs r1, 0x7
- ands r4, r1
- ands r2, r1
- strh r4, [r3, 0x4]
- strh r2, [r3, 0x6]
- lsrs r0, 27
- lsrs r5, 27
- strh r0, [r3, 0x8]
- strh r5, [r3, 0xA]
- mov r1, r8
- lsrs r1, 27
- lsls r1, 6
- mov r8, r1
- mov r1, r8
- muls r1, r5
- lsls r0, 6
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- strh r1, [r3, 0xC]
- lsls r4, 3
- adds r4, r2
- adds r1, r4
- lsls r4, r1, 16
- lsrs r4, 17
- strh r1, [r3, 0xE]
- movs r1, 0x1
- mov r0, r10
- ands r1, r0
- movs r2, 0x1
- eors r1, r2
- lsls r0, r1, 2
- lsls r6, r0
- eors r1, r2
- lsls r1, 2
- movs r0, 0xF
- lsls r0, r1
- orrs r6, r0
- lsls r6, 24
- lsrs r6, 24
- mov r1, r9
- lsls r1, 5
- mov r9, r1
- add r9, r4
- ldr r1, [sp]
- add r1, r9
- ldrb r0, [r1]
- ands r6, r0
- strb r6, [r1]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BF2B8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/ghost.s b/asm/ghost.s
new file mode 100644
index 000000000..5a0991468
--- /dev/null
+++ b/asm/ghost.s
@@ -0,0 +1,3251 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_811160C
+sub_811160C: @ 811160C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80A6FD4
+ ldr r0, =sub_8111674
+ str r0, [r4, 0x1C]
+ movs r0, 0x10
+ strh r0, [r4, 0x3A]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r4, 0x3A]
+ movs r0, 0x52
+ bl SetGpuReg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811160C
+
+ thumb_func_start sub_8111674
+sub_8111674: @ 8111674
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8111764
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _08111694
+ ldr r0, =sub_81116E8
+ str r0, [r4, 0x1C]
+ b _081116DE
+ .pool
+_08111694:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _081116CC
+ cmp r2, 0xC4
+ ble _081116DE
+_081116CC:
+ lsls r0, 16
+ cmp r0, 0
+ ble _081116DE
+ ldr r0, =gUnknown_02038440
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xC4
+ bl PlaySE12WithPanning
+_081116DE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8111674
+
+ thumb_func_start sub_81116E8
+sub_81116E8: @ 81116E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _0811172E
+ cmp r2, 0xC4
+ ble _0811173A
+_0811172E:
+ lsls r0, 16
+ cmp r0, 0
+ ble _0811173A
+ movs r0, 0xC4
+ bl PlaySE
+_0811173A:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08111758
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_80A67F4
+ str r0, [r4, 0x1C]
+ b _0811175E
+ .pool
+_08111758:
+ adds r0, r4, 0
+ bl sub_8111764
+_0811175E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81116E8
+
+ thumb_func_start sub_8111764
+sub_8111764: @ 8111764
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xFF
+ ble _08111788
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ ldr r1, =0x010d0000
+ cmp r0, r1
+ bne _081117EE
+ movs r0, 0
+ b _081117EC
+ .pool
+_08111788:
+ ldrh r1, [r4, 0x3C]
+ adds r3, r1, 0x1
+ strh r3, [r4, 0x3C]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ bne _081117EE
+ ldr r1, =0xffffff00
+ ands r1, r3
+ strh r1, [r4, 0x3C]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _081117B0
+ adds r0, r2, 0x1
+ b _081117B2
+ .pool
+_081117B0:
+ subs r0, r2, 0x1
+_081117B2:
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3A]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081117D4
+ cmp r0, 0x10
+ bne _081117E0
+_081117D4:
+ ldrh r0, [r4, 0x3C]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x3C]
+_081117E0:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081117EE
+ movs r0, 0x80
+ lsls r0, 1
+_081117EC:
+ strh r0, [r4, 0x3A]
+_081117EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111764
+
+ thumb_func_start sub_81117F4
+sub_81117F4: @ 81117F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ ldr r1, =sub_8111814
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81117F4
+
+ thumb_func_start sub_8111814
+sub_8111814: @ 8111814
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x82
+ bhi _08111848
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ b _08111852
+_08111848:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+_08111852:
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x13
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x50
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3D
+ bne _08111884
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08111884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111814
+
+ thumb_func_start sub_811188C
+sub_811188C: @ 811188C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A7270
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x80
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ strh r1, [r0, 0x8]
+ ldr r1, =gBattleAnimArgs
+ ldrh r1, [r1]
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x10
+ strh r1, [r0, 0xE]
+ ldr r1, =sub_8111914
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811188C
+
+ thumb_func_start sub_8111914
+sub_8111914: @ 8111914
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0811195C
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0xC]
+ adds r1, 0x1
+ strh r1, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bne _0811195C
+ ldr r0, =sub_811196C
+ str r0, [r4]
+_0811195C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8111914
+
+ thumb_func_start sub_811196C
+sub_811196C: @ 811196C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08111994
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _081119D8
+ .pool
+_08111994:
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x8
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bgt _081119BC
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ b _081119D8
+_081119BC:
+ adds r0, r1, 0
+ bl sub_80A7344
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+_081119D8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811196C
+
+ thumb_func_start sub_81119E0
+sub_81119E0: @ 81119E0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x20]
+ ldrh r6, [r4, 0x22]
+ ldr r0, =gBattleAnimAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ strh r0, [r4, 0x20]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ mov r1, r9
+ strh r1, [r4, 0x2E]
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r4, 0x32]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x36]
+ lsls r0, 4
+ strh r0, [r4, 0x38]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ subs r5, r0
+ lsls r5, 4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r5, 0
+ str r2, [sp]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ lsls r6, 16
+ asrs r6, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ subs r6, r0
+ lsls r6, 4
+ ldr r2, [sp]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r6, 0
+ bl __divsi3
+ strh r0, [r4, 0x3C]
+ ldr r0, =sub_8111A88
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81119E0
+
+ thumb_func_start sub_8111A88
+sub_8111A88: @ 8111A88
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08111AD2
+ cmp r0, 0x1
+ bgt _08111A9E
+ cmp r0, 0
+ beq _08111AA8
+ b _08111B96
+_08111A9E:
+ cmp r0, 0x2
+ beq _08111B3C
+ cmp r0, 0x3
+ beq _08111B90
+ b _08111B96
+_08111AA8:
+ ldrh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x36]
+ adds r0, r2
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08111B96
+ b _08111B82
+_08111AD2:
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08111B96
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r5, 0x38]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3A]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3C]
+ b _08111B82
+ .pool
+_08111B3C:
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08111B96
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_08111B82:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _08111B96
+ .pool
+_08111B90:
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_08111B96:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111A88
+
+ thumb_func_start sub_8111B9C
+sub_8111B9C: @ 8111B9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ ldr r0, =sub_8111BB4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8111B9C
+
+ thumb_func_start sub_8111BB4
+sub_8111BB4: @ 8111BB4
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ movs r6, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08111C4A
+ adds r1, r3, 0
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x4
+ ands r0, r2
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _08111BDE
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r4]
+_08111BDE:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08111BEE
+ cmp r0, 0x1
+ beq _08111BF8
+ movs r6, 0x1
+ b _08111C02
+_08111BEE:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _08111C02
+ b _08111C06
+_08111BF8:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bne _08111C02
+ movs r5, 0x1
+_08111C02:
+ cmp r5, 0
+ beq _08111C38
+_08111C06:
+ ldrb r2, [r4]
+ 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, [r4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08111C4A
+ strh r1, [r3, 0x32]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _08111C4A
+_08111C38:
+ cmp r6, 0
+ beq _08111C44
+ adds r0, r3, 0
+ bl DestroyAnimSprite
+ b _08111C4A
+_08111C44:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_08111C4A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111BB4
+
+ thumb_func_start sub_8111C50
+sub_8111C50: @ 8111C50
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ movs r6, 0
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08111C80
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _08111D5C
+ .pool
+_08111C80:
+ strh r1, [r5, 0xA]
+ movs r0, 0xF
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r5, 0xE]
+ lsls r1, 8
+ ldrh r0, [r5, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r4, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x50
+ strh r1, [r0, 0x2E]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08111CF4
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000ff70
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x70
+ b _08111D12
+ .pool
+_08111CF4:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x90
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =0x0000ff90
+_08111D12:
+ strh r1, [r0, 0x32]
+ ldr r4, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x34]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x36]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =SpriteCallbackDummy
+ bl StoreSpriteCallbackInData6
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, =sub_80A656C
+ str r1, [r0]
+ ldr r0, =sub_8111D78
+ str r0, [r5]
+_08111D5C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8111C50
+
+ thumb_func_start sub_8111D78
+sub_8111D78: @ 8111D78
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08111E1C
+ cmp r0, 0x1
+ bgt _08111DA0
+ cmp r0, 0
+ beq _08111DA6
+ b _08111E48
+ .pool
+_08111DA0:
+ cmp r0, 0x2
+ beq _08111E42
+ b _08111E48
+_08111DA6:
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0x1
+ bne _08111DC4
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08111DC4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_08111DC4:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _08111DDA
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _08111DDA
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+_08111DDA:
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, [r4, 0xC]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _08111E48
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _08111E48
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ b _08111E48
+ .pool
+_08111E1C:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08111E48
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _08111E48
+_08111E42:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08111E48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111D78
+
+ thumb_func_start sub_8111E50
+sub_8111E50: @ 8111E50
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, =gTasks
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, =sub_8111E78
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8111E50
+
+ thumb_func_start sub_8111E78
+sub_8111E78: @ 8111E78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _08111EA4
+ b _081120C6
+_08111EA4:
+ lsls r0, 2
+ ldr r1, =_08111EBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08111EBC:
+ .4byte _08111ED0
+ .4byte _08111FD0
+ .4byte _08112014
+ .4byte _0811207C
+ .4byte _081120A8
+_08111ED0:
+ ldr r7, =0x00002771
+ adds r0, r7, 0
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r5, 0x24]
+ cmp r0, 0xFF
+ beq _08111EFE
+ cmp r0, 0xF
+ beq _08111EFE
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08111F0C
+ adds r0, r7, 0
+ bl FreeSpritePaletteByTag
+_08111EFE:
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _081120CC
+ .pool
+_08111F0C:
+ ldr r4, =gSprites
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r2, [r5, 0x24]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, =gBattleSpritesDataPtr
+ ldr r1, [r0]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 31
+ adds r2, 0x3E
+ lsrs r1, 31
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ mov r2, r8
+ strh r2, [r5, 0xA]
+ strh r2, [r5, 0xC]
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x10]
+ cmp r6, 0x1
+ bne _08111FC4
+ movs r1, 0x80
+ lsls r1, 2
+ b _08111FC8
+ .pool
+_08111FC4:
+ movs r1, 0x80
+ lsls r1, 3
+_08111FC8:
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _081120C6
+_08111FD0:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x24]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, =gPlttBufferUnfaded
+ adds r0, r1
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ ldr r2, =gPlttBufferFaded
+ adds r1, r2
+ ldr r2, =0x04000008
+ bl CpuSet
+ ldrh r0, [r5, 0x10]
+ ldr r3, =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0xA
+ bl BlendPalette
+ b _081120C6
+ .pool
+_08112014:
+ ldr r2, =gSprites
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _08112034
+ movs r2, 0
+_08112034:
+ cmp r6, 0x1
+ bne _08112054
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ b _0811206C
+ .pool
+_08112054:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+_0811206C:
+ movs r2, 0x2
+ movs r3, 0x6
+ bl ScanlineEffect_InitWave
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ b _081120C6
+_0811207C:
+ cmp r6, 0x1
+ bne _08112090
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ b _08112098
+ .pool
+_08112090:
+ ldr r1, =0x00003f44
+ movs r0, 0x50
+ bl SetGpuReg
+_08112098:
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ b _081120C6
+ .pool
+_081120A8:
+ cmp r6, 0x1
+ bne _081120B8
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _081120C2
+_081120B8:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_081120C2:
+ ldr r0, =sub_81120DC
+ str r0, [r5]
+_081120C6:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+_081120CC:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8111E78
+
+ thumb_func_start sub_81120DC
+sub_81120DC: @ 81120DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0
+ bne _08112114
+ ldr r1, =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_08112114:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _08112136
+ ldr r1, =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_08112136:
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0xC]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _0811215E
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, =sub_8112170
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_0811215E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81120DC
+
+ thumb_func_start sub_8112170
+sub_8112170: @ 8112170
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _081121DC
+ cmp r0, 0x1
+ bgt _081121A8
+ cmp r0, 0
+ beq _081121AE
+ b _08112258
+ .pool
+_081121A8:
+ cmp r0, 0x2
+ beq _081121F0
+ b _08112258
+_081121AE:
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ cmp r6, 0x1
+ bne _081121D0
+ movs r1, 0x80
+ lsls r1, 2
+ b _081121D4
+ .pool
+_081121D0:
+ movs r1, 0x80
+ lsls r1, 3
+_081121D4:
+ movs r0, 0
+ bl ClearGpuRegBits
+ b _08112258
+_081121DC:
+ ldrh r0, [r4, 0x10]
+ ldr r3, =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ b _08112258
+ .pool
+_081121F0:
+ ldr r3, =gSprites
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl obj_delete_but_dont_free_vram
+ ldr r0, =0x00002771
+ bl FreeSpritePaletteByTag
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ cmp r6, 0x1
+ bne _08112248
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ bl SetGpuRegBits
+ b _08112252
+ .pool
+_08112248:
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0
+ bl SetGpuRegBits
+_08112252:
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08112258:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8112170
+
+ thumb_func_start sub_8112264
+sub_8112264: @ 8112264
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _081122AC
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, =gBattleAnimTarget
+ b _081122D0
+ .pool
+_081122AC:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, =gBattleAnimAttacker
+_081122D0:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xE0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ mov r8, r5
+ mov r2, r9
+ subs r4, r2, r5
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r6, 4
+ strh r0, [r7, 0x2E]
+ lsls r0, r5, 4
+ strh r0, [r7, 0x30]
+ mov r1, r10
+ subs r0, r1, r6
+ lsls r0, 4
+ ldr r5, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r7, 0x32]
+ lsls r4, 16
+ asrs r4, 12
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r7, 0x34]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0x36]
+ mov r1, r10
+ strh r1, [r7, 0x38]
+ mov r2, r9
+ strh r2, [r7, 0x3A]
+ movs r1, 0x36
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r7, 0x3C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ strh r6, [r7, 0x20]
+ mov r2, r8
+ strh r2, [r7, 0x22]
+ ldr r0, =sub_8112384
+ str r0, [r7, 0x1C]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112264
+
+ thumb_func_start sub_8112384
+sub_8112384: @ 8112384
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _081123BC
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r1, r4
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _081123BC
+ strh r0, [r2, 0x2E]
+_081123BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8112384
+
+ thumb_func_start sub_81123C4
+sub_81123C4: @ 81123C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r1, r0
+ str r1, [sp]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0
+ ldr r1, [sp]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ movs r0, 0x10
+ strh r0, [r1, 0x1A]
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A861C
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112434
+ b _08112530
+_08112434:
+ movs r4, 0
+_08112436:
+ lsls r1, r4, 16
+ asrs r3, r1, 16
+ ldr r0, =gBattleAnimAttacker
+ ldrb r2, [r0]
+ str r1, [sp, 0x10]
+ cmp r3, r2
+ beq _08112502
+ movs r0, 0x2
+ eors r2, r0
+ cmp r3, r2
+ beq _08112502
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112502
+ ldr r6, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ ldr r0, =gUnknown_08596DB8
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _08112502
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_80A861C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r1, =gSprites
+ adds r4, r5, r1
+ lsls r0, r6, 4
+ strh r0, [r4, 0x2E]
+ lsls r0, r7, 4
+ strh r0, [r4, 0x30]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 4
+ ldr r3, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ lsls r0, r3, 16
+ asrs r0, 16
+ subs r0, r7
+ lsls r0, 4
+ ldr r2, =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ ldr r0, =gSprites + 0x1C
+ adds r5, r0
+ ldr r0, =sub_8112384
+ str r0, [r5]
+ ldr r2, [sp]
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+_08112502:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08112436
+ b _081125B4
+ .pool
+_08112530:
+ ldr r0, =gUnknown_08596DB8
+ ldr r7, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 16
+ asrs r1, 16
+ str r1, [sp, 0xC]
+ adds r1, r7, 0
+ ldr r2, [sp, 0xC]
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _081125B4
+ movs r3, 0x30
+ mov r10, r3
+ movs r0, 0x28
+ mov r9, r0
+ ldr r6, =gSprites
+ mov r1, r8
+ lsls r5, r1, 4
+ add r5, r8
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, r7, 4
+ strh r0, [r4, 0x2E]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 4
+ strh r0, [r4, 0x30]
+ subs r0, r3, r7
+ lsls r0, 4
+ ldr r3, =gBattleAnimArgs
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ ldr r1, [sp, 0xC]
+ subs r0, r3, r1
+ lsls r0, 4
+ ldr r2, =gBattleAnimArgs
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, =sub_8112384
+ str r0, [r5]
+ mov r1, r8
+ ldr r0, [sp]
+ strh r1, [r0, 0x22]
+ movs r0, 0x1
+ ldr r2, [sp]
+ strh r0, [r2, 0x20]
+_081125B4:
+ ldr r0, =sub_81125E0
+ ldr r3, [sp]
+ str r0, [r3]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81123C4
+
+ thumb_func_start sub_81125E0
+sub_81125E0: @ 81125E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _08112696
+ cmp r1, 0x1
+ bgt _08112608
+ cmp r1, 0
+ beq _08112616
+ b _08112752
+ .pool
+_08112608:
+ cmp r1, 0x2
+ bne _0811260E
+ b _08112728
+_0811260E:
+ cmp r1, 0x3
+ bne _08112614
+ b _0811273C
+_08112614:
+ b _08112752
+_08112616:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811267C
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0811267C
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811264C
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _0811265A
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _0811265A
+_0811264C:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811265A
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_0811265A:
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ ble _0811267C
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_0811267C:
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811268C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _08112752
+_0811268C:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08112752
+ b _08112734
+_08112696:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08112752
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _081126C6
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081126D4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _081126D4
+_081126C6:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _081126D4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_081126D4:
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, [r4, 0x18]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _08112752
+ movs r5, 0
+ b _08112718
+_081126F4:
+ adds r1, r5, 0
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08112718:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _081126F4
+ b _08112734
+ .pool
+_08112728:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08112752
+_08112734:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08112752
+_0811273C:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08112752:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81125E0
+
+ thumb_func_start sub_8112758
+sub_8112758: @ 8112758
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f1f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0xC8
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _081127A0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _081127B8
+_081127A0:
+ movs r6, 0x28
+ b _081127BA
+ .pool
+_081127B8:
+ movs r6, 0xC8
+_081127BA:
+ ldr r1, =gBattle_WIN0H
+ lsls r3, r6, 16
+ asrs r2, r3, 16
+ lsls r0, r2, 8
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r1, =gBattle_WIN0V
+ movs r5, 0x28
+ ldr r0, =0x00002828
+ strh r0, [r1]
+ lsrs r3, 16
+ movs r1, 0xF0
+ subs r1, r2
+ movs r4, 0x48
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ strh r3, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ strh r4, [r0, 0x10]
+ strh r6, [r0, 0x12]
+ strh r5, [r0, 0x14]
+ ldr r1, =sub_811280C
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112758
+
+ thumb_func_start sub_811280C
+sub_811280C: @ 811280C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811292C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r5, [r4, 0xA]
+ ldrh r7, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ mov r10, r0
+ ldrh r2, [r4, 0x10]
+ str r2, [sp, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r2, [r4, 0x14]
+ mov r8, r2
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r6, 0xF
+ ble _08112848
+ b _08112938
+_08112848:
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsidf
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _08112930 @ =0x3FB00000
+ ldr r3, _08112934 @ =0x00000000
+ bl __muldf3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl __floatsidf
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _08112930 @ =0x3FB00000
+ ldr r3, _08112934 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ adds r5, r1, 0
+ adds r4, r0, 0
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _08112930 @ =0x3FB00000
+ ldr r3, _08112934 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _08112930 @ =0x3FB00000
+ ldr r3, _08112934 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08112966
+ .align 2, 0
+_0811292C:
+ .4byte gTasks
+_08112930:
+ .4byte 0x3FB00000
+_08112934:
+ .4byte 0x00000000
+_08112938:
+ movs r2, 0
+ mov r9, r2
+ movs r7, 0xF0
+ movs r6, 0
+ movs r5, 0x70
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80A75AC
+ lsls r0, 16
+ lsrs r0, 16
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08112988 @=sub_8112994
+ str r0, [r4]
+_08112966:
+ ldr r1, _0811298C @=gBattle_WIN0H
+ mov r2, r9
+ lsls r0, r2, 8
+ orrs r7, r0
+ strh r7, [r1]
+ ldr r1, _08112990 @=gBattle_WIN0V
+ lsls r0, r6, 8
+ orrs r5, r0
+ strh r5, [r1]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08112988:
+ .4byte sub_8112994
+_0811298C:
+ .4byte gBattle_WIN0H
+_08112990:
+ .4byte gBattle_WIN0V
+ thumb_func_end sub_811280C
+
+ thumb_func_start sub_8112994
+sub_8112994: @ 8112994
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081129DA
+ ldr r0, =gBattle_WIN0H
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ ldr r4, =0x00003f3f
+ movs r0, 0x48
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_081129DA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112994
+
+ thumb_func_start sub_81129F0
+sub_81129F0: @ 81129F0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112A24
+ movs r2, 0x18
+ ldr r3, =0x0000fffe
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ b _08112A28
+ .pool
+_08112A24:
+ ldr r2, =0x0000ffe8
+ movs r3, 0x2
+_08112A28:
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r3, [r4, 0x30]
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, =sub_8112A4C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81129F0
+
+ thumb_func_start sub_8112A4C
+sub_8112A4C: @ 8112A4C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _08112A5E
+ subs r0, r1, 0x1
+ b _08112AC2
+_08112A5E:
+ ldrh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x24]
+ adds r1, r0, r4
+ strh r1, [r3, 0x24]
+ adds r0, r1, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _08112AC4
+ ldrh r0, [r3, 0x20]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r4, =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _08112AC0
+ movs r0, 0x1E
+ strh r0, [r3, 0x2E]
+ ldr r0, =WaitAnimForDuration
+ str r0, [r3, 0x1C]
+ ldr r1, =sub_8112ACC
+ adds r0, r3, 0
+ bl StoreSpriteCallbackInData6
+ b _08112AC4
+ .pool
+_08112AC0:
+ movs r0, 0x28
+_08112AC2:
+ strh r0, [r3, 0x2E]
+_08112AC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8112A4C
+
+ thumb_func_start sub_8112ACC
+sub_8112ACC: @ 8112ACC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _08112AF6
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ b _08112B3A
+_08112AF6:
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bgt _08112B06
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _08112B3A
+_08112B06:
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _08112B3A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_8112B44
+ str r0, [r4, 0x1C]
+_08112B3A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112ACC
+
+ thumb_func_start sub_8112B44
+sub_8112B44: @ 8112B44
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, =gBattle_WIN0H
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_WIN0V
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112B44
+
+ thumb_func_start sub_8112B78
+sub_8112B78: @ 8112B78
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112B9C
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_08112B9C:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08112BE8
+ ldr r0, =0x0000050b
+ strh r0, [r5, 0x3A]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r1, [r5, 0x3A]
+ movs r0, 0x52
+ bl SetGpuReg
+ b _08112C40
+ .pool
+_08112BE8:
+ cmp r0, 0x1E
+ ble _08112C40
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x3A]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ movs r6, 0xFF
+ ands r6, r1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r7, r0, 16
+ cmp r7, 0x10
+ bls _08112C0C
+ movs r7, 0x10
+_08112C0C:
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r0, 0
+ bge _08112C18
+ movs r6, 0
+_08112C18:
+ lsls r4, r7, 8
+ orrs r4, r6
+ lsls r1, r4, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r4, [r5, 0x3A]
+ cmp r7, 0x10
+ bne _08112C40
+ cmp r6, 0
+ bne _08112C40
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_8112C4C
+ str r0, [r5, 0x1C]
+_08112C40:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112B78
+
+ thumb_func_start sub_8112C4C
+sub_8112C4C: @ 8112C4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8112C4C
+
+ thumb_func_start sub_8112C6C
+sub_8112C6C: @ 8112C6C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ movs r0, 0x10
+ mov r8, r0
+ mov r0, r8
+ strh r0, [r4, 0xA]
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r5]
+ bl GetBattlerYCoordWithElevation
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ adds r1, 0x8
+ strh r1, [r4, 0x1E]
+ strh r6, [r4, 0x16]
+ ldrb r0, [r5]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0xE]
+ mov r0, r8
+ strh r0, [r4, 0x10]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ strh r6, [r4, 0x18]
+ ldr r0, =sub_8112D10
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112C6C
+
+ thumb_func_start sub_8112D10
+sub_8112D10: @ 8112D10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _08112D2A
+ b _08112E96
+_08112D2A:
+ lsls r0, 2
+ ldr r1, =_08112D3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08112D3C:
+ .4byte _08112D54
+ .4byte _08112DC4
+ .4byte _08112E06
+ .4byte _08112E1A
+ .4byte _08112E70
+ .4byte _08112E80
+_08112D54:
+ movs r6, 0
+_08112D56:
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ ldrb r3, [r4, 0x14]
+ ldr r0, =gUnknown_08596E30
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08112DAA
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ strh r7, [r5, 0x2E]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112D8C
+ movs r1, 0x1
+_08112D8C:
+ strh r1, [r5, 0x30]
+ movs r0, 0x2A
+ muls r0, r6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r5, 0x34]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_08112DAA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _08112D56
+ b _08112E78
+ .pool
+_08112DC4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08112DE2
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bgt _08112DF0
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _08112DF0
+_08112DE2:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ ble _08112DF0
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_08112DF0:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r2, [r4, 0xE]
+ ldrh r1, [r4, 0x10]
+ cmp r0, 0xE
+ bne _08112E60
+ cmp r1, 0x4
+ bne _08112E60
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08112E5A
+_08112E06:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _08112E96
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08112E78
+_08112E1A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08112E38
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08112E46
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _08112E46
+_08112E38:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _08112E46
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_08112E46:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r2, [r4, 0xE]
+ ldrh r1, [r4, 0x10]
+ cmp r0, 0
+ bne _08112E60
+ cmp r1, 0x10
+ bne _08112E60
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+_08112E5A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08112E60:
+ lsls r1, 8
+ orrs r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ b _08112E96
+_08112E70:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08112E96
+_08112E78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08112E96
+_08112E80:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r7, 0
+ bl DestroyAnimVisualTask
+_08112E96:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8112D10
+
+ thumb_func_start sub_8112E9C
+sub_8112E9C: @ 8112E9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08112EAE
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x2
+ b _08112EB2
+_08112EAE:
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x2
+_08112EB2:
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _08112EF4
+ ldr r2, =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ b _08112F08
+ .pool
+_08112EF4:
+ ldr r2, =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x3
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+_08112F08:
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r1, 0x7
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r2, =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x18
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08112F56
+ ldrh r0, [r1, 0x16]
+ subs r0, 0x1
+ strh r0, [r1, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_08112F56:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112E9C
+
+ thumb_func_start sub_8112F60
+sub_8112F60: @ 8112F60
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r2, =gBattlerSpriteIds
+ ldr r1, =gBattleAnimAttacker
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0xA
+ strh r1, [r0, 0x30]
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x34]
+ ldr r1, =sub_8112FB8
+ str r1, [r0, 0x1C]
+ ldr r2, =gSprites
+ movs r3, 0x38
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ bx lr
+ .pool
+ thumb_func_end sub_8112F60
+
+ thumb_func_start sub_8112FB8
+sub_8112FB8: @ 8112FB8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x34
+ ldrsh r3, [r5, r1]
+ cmp r3, 0
+ beq _08113020
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r4, =gSprites
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Cos
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x32]
+ ldrh r2, [r5, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r5, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08113054
+ ldr r2, =0xffffff00
+ adds r0, r1, r2
+ strh r0, [r5, 0x2E]
+ b _08113054
+ .pool
+_08113020:
+ ldr r2, =gSprites
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r0, =move_anim_8074EE0
+ str r0, [r5, 0x1C]
+_08113054:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8112FB8
+
+ .align 2, 0
diff --git a/asm/ice.s b/asm/ice.s
new file mode 100644
index 000000000..37142e535
--- /dev/null
+++ b/asm/ice.s
@@ -0,0 +1,2944 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810B614
+sub_810B614: @ 810B614
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, =gUnknown_085956C0
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0810B658
+ ldr r3, =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, =sub_810B684
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x3A]
+ movs r1, 0xA
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+_0810B658:
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _0810B67C
+ adds r0, r2, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _0810B67E
+ .pool
+_0810B67C:
+ movs r0, 0x1
+_0810B67E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B614
+
+ thumb_func_start sub_810B684
+sub_810B684: @ 810B684
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0810B6B8
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0810B6B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B684
+
+ thumb_func_start sub_810B6C4
+sub_810B6C4: @ 810B6C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x7
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ str r3, [sp]
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1]
+ ldr r3, [sp]
+ adds r0, r3
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x4]
+ mov r4, r9
+ adds r0, r4, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x6]
+ mov r7, r8
+ adds r0, r7, r0
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_80A64EC
+ adds r4, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ mov r12, r0
+ ldr r3, [sp]
+ cmp r4, r12
+ bhi _0810B79E
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrh r1, [r5, 0x30]
+ ldrh r2, [r5, 0x32]
+ cmp r0, 0xE0
+ bhi _0810B79E
+ adds r4, r1, 0
+ mov r10, r12
+_0810B76A:
+ mov r7, r9
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r4
+ lsls r1, 16
+ mov r7, r8
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r0, r1, 16
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 14
+ adds r1, r7
+ lsrs r1, 16
+ cmp r1, r10
+ bhi _0810B79E
+ mov r1, r8
+ lsls r0, r1, 16
+ adds r0, r7
+ lsrs r0, 16
+ cmp r0, 0xE0
+ bls _0810B76A
+_0810B79E:
+ ldrh r0, [r5, 0x30]
+ negs r7, r0
+ strh r7, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ negs r4, r0
+ strh r4, [r5, 0x32]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r0, 16
+ movs r2, 0x98
+ lsls r2, 1
+ mov r12, r2
+ ldr r1, =gBattleAnimArgs
+ mov r10, r1
+ cmp r0, r12
+ bhi _0810B80A
+ lsls r1, r6, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r1, r2
+ b _0810B802
+ .pool
+_0810B7E0:
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r1, r7
+ lsls r1, 16
+ asrs r0, r2, 16
+ adds r0, r4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r3, r1, 16
+ movs r0, 0x80
+ lsls r0, 14
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, r12
+ bhi _0810B80A
+ lsls r1, r6, 16
+ adds r0, r1, r0
+_0810B802:
+ lsrs r0, 16
+ adds r2, r1, 0
+ cmp r0, 0xE0
+ bls _0810B7E0
+_0810B80A:
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x22]
+ mov r1, r10
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r3, [r5, 0x30]
+ mov r2, r9
+ strh r2, [r5, 0x32]
+ strh r6, [r5, 0x34]
+ mov r3, r8
+ strh r3, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_80A64EC
+ mov r7, r10
+ ldrh r0, [r7, 0xA]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r7, 0xC]
+ strh r0, [r5, 0x36]
+ ldr r0, =sub_810B848
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B6C4
+
+ thumb_func_start sub_810B848
+sub_810B848: @ 810B848
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810B8A0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ strh r1, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810B8A6
+_0810B8A0:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810B8A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B848
+
+ thumb_func_start sub_810B8AC
+sub_810B8AC: @ 810B8AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r1, =sub_80A634C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B8AC
+
+ thumb_func_start sub_810B8EC
+sub_810B8EC: @ 810B8EC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B92C
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r4, 0x32]
+ b _0810B936
+ .pool
+_0810B92C:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+_0810B936:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r1, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r2, [r1, 0x6]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B8EC
+
+ thumb_func_start sub_810B974
+sub_810B974: @ 810B974
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810B990
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ b _0810B9C6
+ .pool
+_0810B990:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl SetAverageBattlerPositions
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B9B6
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_0810B9B6:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_0810B9C6:
+ ldr r1, =sub_810B9E8
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67BC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810B974
+
+ thumb_func_start sub_810B9E8
+sub_810B9E8: @ 810B9E8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ 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
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _0810BA1E
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_0810BA1E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B9E8
+
+ thumb_func_start sub_810BA24
+sub_810BA24: @ 810BA24
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0810BA74
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ b _0810BA86
+ .pool
+_0810BA74:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl SetAverageBattlerPositions
+_0810BA86:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810BAAC
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r5, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r5, 0x32]
+ b _0810BAB6
+ .pool
+_0810BAAC:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_0810BAB6:
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_0810BAC0:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0810BAC0
+ adds r0, r5, 0
+ bl sub_80A7160
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_0810BAE2:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_80A70E8
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0810BB16
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _0810BB16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0810BAE2
+_0810BB16:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r6, =sub_80A718C
+ ldr r1, =sub_810BB60
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_0810BB36:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0810BB36
+ str r6, [r5, 0x1C]
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810BA24
+
+ thumb_func_start sub_810BB60
+sub_810BB60: @ 810BB60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ ldr r1, =0x0000ffec
+ cmp r0, 0
+ beq _0810BB90
+ movs r1, 0x14
+_0810BB90:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x34]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldr r1, =sub_810BBC8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810BB60
+
+ thumb_func_start sub_810BBC8
+sub_810BBC8: @ 810BBC8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ ldr r1, =0x0000ffec
+ cmp r0, 0
+ beq _0810BBDE
+ movs r1, 0x14
+_0810BBDE:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bgt _0810BC24
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x36]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0810BC42
+ .pool
+_0810BC24:
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ ldr r0, =sub_810BC4C
+ str r0, [r4, 0x1C]
+_0810BC42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810BBC8
+
+ thumb_func_start sub_810BC4C
+sub_810BC4C: @ 810BC4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_80A70E8
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _0810BC88
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r1, r0, r1
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bgt _0810BC88
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0810BC8E
+_0810BC88:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810BC8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BC4C
+
+ thumb_func_start sub_810BC94
+sub_810BC94: @ 810BC94
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810BCE0
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _0810BCF2
+ .pool
+_0810BCE0:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl SetAverageBattlerPositions
+_0810BCF2:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810BD1C
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r5, 0x32]
+ ldrh r2, [r0, 0x4]
+ subs r1, r2
+ strh r1, [r5, 0x32]
+ adds r1, r0, 0
+ b _0810BD26
+ .pool
+_0810BD1C:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_0810BD26:
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_80A7160
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_0810BD3E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0810BD3E
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_0810BD5A:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_80A70E8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0810BD8E
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _0810BD8E
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0810BD5A
+_0810BD8E:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r1, =gBattleAnimArgs
+ ldr r6, =sub_810BDD8
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_0810BDAE:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0810BDAE
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x3A]
+ str r6, [r5, 0x1C]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810BC94
+
+ thumb_func_start sub_810BDD8
+sub_810BDD8: @ 810BDD8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80A70E8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810BDEC
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_0810BDEC:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _0810BE42
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _0810BE3C
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _0810BE3C
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0810BE42
+_0810BE3C:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810BE42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BDD8
+
+ thumb_func_start sub_810BE48
+sub_810BE48: @ 810BE48
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810BEB4
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810BE6C
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80A6980
+ b _0810BEA2
+ .pool
+_0810BE6C:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl SetAverageBattlerPositions
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810BE92
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_0810BE92:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_0810BEA2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810BEC8
+ .pool
+_0810BEB4:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BEC8
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810BEC8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BE48
+
+ thumb_func_start sub_810BED0
+sub_810BED0: @ 810BED0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0810BF40
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0810BEF4
+ adds r0, r5, 0
+ movs r1, 0
+ bl InitAnimSpritePos
+ b _0810BF32
+ .pool
+_0810BEF4:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl SetAverageBattlerPositions
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810BF20
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _0810BF26
+ .pool
+_0810BF20:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_0810BF26:
+ strh r0, [r5, 0x20]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_0810BF32:
+ ldr r0, =gBattleAnimAttacker
+ b _0810BF90
+ .pool
+_0810BF40:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0810BF52
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A6980
+ b _0810BF8E
+_0810BF52:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl SetAverageBattlerPositions
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810BF7C
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _0810BF82
+ .pool
+_0810BF7C:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_0810BF82:
+ strh r0, [r5, 0x20]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_0810BF8E:
+ ldr r0, =gBattleAnimTarget
+_0810BF90:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0810BFA8
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810BFB4
+_0810BFA8:
+ movs r0, 0x20
+ b _0810BFB6
+ .pool
+_0810BFB4:
+ movs r0, 0x40
+_0810BFB6:
+ strh r0, [r5, 0x3A]
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810BFCC
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_0810BFCC:
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ movs r0, 0x40
+ strh r0, [r5, 0x38]
+ ldr r1, =sub_810C008
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810BED0
+
+ thumb_func_start sub_810C008
+sub_810C008: @ 810C008
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C092
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _0810C064
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A8328
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _0810C086
+_0810C064:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0810C086:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _0810C098
+_0810C092:
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810C098:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C008
+
+ thumb_func_start sub_810C0A0
+sub_810C0A0: @ 810C0A0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C0E2
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_0810C0E2:
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gWeatherFog1Tiles
+ movs r2, 0x80
+ lsls r2, 4
+ mov r3, sp
+ ldrh r3, [r3, 0xA]
+ bl LoadBgTiles
+ ldr r1, =gBattleAnimFogTilemap
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ ldr r0, =gUnknown_0854C270
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_810C164
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C0A0
+
+ thumb_func_start sub_810C164
+sub_810C164: @ 810C164
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gBattle_BG1_X
+ ldr r2, =0x0000ffff
+ adds r0, r2, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0810C18E
+ b _0810C2DA
+_0810C18E:
+ lsls r0, 2
+ ldr r1, =_0810C1A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0810C1A8:
+ .4byte _0810C1BC
+ .4byte _0810C214
+ .4byte _0810C236
+ .4byte _0810C27A
+ .4byte _0810C29C
+_0810C1BC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _0810C1D6
+ b _0810C2DA
+_0810C1D6:
+ strh r5, [r4, 0x1C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, =gUnknown_08595C5C
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bne _0810C2DA
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x1E]
+ b _0810C2DA
+ .pool
+_0810C214:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _0810C2DA
+ movs r0, 0x9
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _0810C2DA
+_0810C236:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0810C2DA
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _0810C2DA
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _0810C2DA
+_0810C27A:
+ mov r0, sp
+ bl sub_80A6B30
+ movs r0, 0x1
+ bl sub_80A6C68
+ movs r0, 0x2
+ bl sub_80A6C68
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_0810C29C:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C2B0
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_0810C2B0:
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_BG1_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0810C2DA:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C164
+
+ thumb_func_start sub_810C2F0
+sub_810C2F0: @ 810C2F0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, =TranslateAnimSpriteToTargetMonLocation
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C2F0
+
+ thumb_func_start sub_810C324
+sub_810C324: @ 810C324
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl SetAnimBgAttribute
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C366
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+_0810C366:
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, =gBattle_BG1_Y
+ strh r1, [r4]
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ ldrh r1, [r4]
+ movs r0, 0x16
+ bl SetGpuReg
+ mov r0, sp
+ bl sub_80A6B30
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gWeatherFog1Tiles
+ movs r2, 0x80
+ lsls r2, 4
+ mov r3, sp
+ ldrh r3, [r3, 0xA]
+ bl LoadBgTiles
+ ldr r1, =gBattleAnimFogTilemap
+ mov r0, sp
+ movs r2, 0
+ bl sub_80A6D60
+ ldr r0, =gUnknown_0854C270
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x26]
+ ldr r1, =sub_810C3F0
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C324
+
+ thumb_func_start sub_810C3F0
+sub_810C3F0: @ 810C3F0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, =gBattle_BG1_X
+ ldr r3, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0x26]
+ ldrh r5, [r2]
+ adds r0, r5
+ strh r0, [r2]
+ movs r2, 0x20
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ bls _0810C416
+ b _0810C54A
+_0810C416:
+ lsls r0, 2
+ ldr r1, =_0810C42C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0810C42C:
+ .4byte _0810C440
+ .4byte _0810C484
+ .4byte _0810C4A6
+ .4byte _0810C4EA
+ .4byte _0810C50C
+_0810C440:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, =gUnknown_08595C88
+ movs r5, 0x1A
+ ldrsh r0, [r4, r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x11
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bne _0810C54A
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _0810C54A
+ .pool
+_0810C484:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _0810C54A
+ movs r0, 0x5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _0810C54A
+_0810C4A6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0810C54A
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _0810C54A
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _0810C54A
+_0810C4EA:
+ mov r0, sp
+ bl sub_80A6B30
+ movs r0, 0x1
+ bl sub_80A6C68
+ movs r0, 0x2
+ bl sub_80A6C68
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_0810C50C:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C520
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_0810C520:
+ ldr r0, =gBattle_BG1_X
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattle_BG1_Y
+ strh r1, [r0]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0810C54A:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C3F0
+
+ thumb_func_start sub_810C560
+sub_810C560: @ 810C560
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6]
+ strh r0, [r5, 0x2E]
+ ldr r0, =gBattleAnimAttacker
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ adds r4, r0, 0
+ ldr r7, =gBattleAnimTarget
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _0810C594
+ movs r0, 0x80
+ lsls r0, 8
+ strh r0, [r5, 0x3C]
+_0810C594:
+ ldr r3, =gBattlerPositions
+ ldrb r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C5F4
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ ldrh r0, [r6, 0x6]
+ negs r0, r0
+ strh r0, [r6, 0x6]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C5F0
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C5F0
+ movs r0, 0x1
+ bl GetAnimBattlerSpriteId
+ ldr r2, =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_0810C5F0:
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+_0810C5F4:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0810C65C
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ b _0810C684
+ .pool
+_0810C65C:
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x1
+_0810C684:
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x8]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldrb r0, [r4]
+ bl sub_80A8328
+ lsls r0, 24
+ lsrs r0, 16
+ ldrh r1, [r5, 0x3C]
+ orrs r0, r1
+ strh r0, [r5, 0x3C]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810C6B8
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ strb r0, [r1]
+_0810C6B8:
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =sub_810C6D4
+ str r0, [r5, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C560
+
+ thumb_func_start sub_810C6D4
+sub_810C6D4: @ 810C6D4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ movs r5, 0xFF
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x1
+ beq _0810C7BC
+ cmp r1, 0x1
+ bgt _0810C6EE
+ cmp r1, 0
+ beq _0810C6F6
+ b _0810C90C
+_0810C6EE:
+ cmp r1, 0x2
+ bne _0810C6F4
+ b _0810C8D0
+_0810C6F4:
+ b _0810C90C
+_0810C6F6:
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ ldr r1, =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 4
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810C724
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x8
+ b _0810C728
+ .pool
+_0810C724:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+_0810C728:
+ ands r0, r5
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0810C736
+ b _0810C90C
+_0810C736:
+ movs r5, 0x50
+ strh r5, [r4, 0x2E]
+ ldr r6, =gBattleAnimTarget
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x1D
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C78C
+ ldr r1, =gBattlerPositions
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C78C
+ movs r0, 0xCC
+ strh r0, [r4, 0x38]
+ b _0810C78E
+ .pool
+_0810C78C:
+ strh r5, [r4, 0x38]
+_0810C78E:
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 3
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl InitAnimLinearTranslation
+ b _0810C90C
+ .pool
+_0810C7BC:
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ ldr r1, =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r0, 3
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 8
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C83A
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r1, 0
+ cmp r0, 0x7F
+ bhi _0810C81C
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ b _0810C824
+ .pool
+_0810C81C:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ adds r1, 0x1
+_0810C824:
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r3, 0x4
+ b _0810C85A
+_0810C83A:
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _0810C84E
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ b _0810C854
+_0810C84E:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x8C
+_0810C854:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x4
+_0810C85A:
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bgt _0810C90C
+ movs r5, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x4
+ strh r0, [r4, 0x36]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810C8B4
+ ldr r1, =gBattlerPositions
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C8B4
+ movs r0, 0x80
+ lsls r0, 1
+ b _0810C8B6
+ .pool
+_0810C8B4:
+ ldr r0, =0x0000fff0
+_0810C8B6:
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl sub_80A6FD4
+ b _0810C90C
+ .pool
+_0810C8D0:
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810C90C
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C8FE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_0810C8FE:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0810C90C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810C6D4
+
+ thumb_func_start sub_810C918
+sub_810C918: @ 810C918
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r1, r0
+ ldr r0, =sub_810C934
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_810C918
+
+ thumb_func_start sub_810C934
+sub_810C934: @ 810C934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _0810C978
+ cmp r5, 0x1
+ bgt _0810C95C
+ cmp r5, 0
+ beq _0810C962
+ b _0810C9DC
+ .pool
+_0810C95C:
+ cmp r5, 0x2
+ beq _0810C9CE
+ b _0810C9DC
+_0810C962:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0810C9DC
+ strh r5, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0xC]
+ b _0810C9B4
+_0810C978:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0810C9C8
+ ldrb r0, [r4, 0xE]
+ ldrb r1, [r4, 0xC]
+ movs r3, 0x1
+ bl sub_810C9E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810C998
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_0810C998:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0810C9C4
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0810C9BC
+_0810C9B4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0810C9DC
+_0810C9BC:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0810C9DC
+_0810C9C4:
+ strh r5, [r4, 0x12]
+ b _0810C9DC
+_0810C9C8:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ b _0810C9DC
+_0810C9CE:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810C9DC
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0810C9DC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C934
+
+ thumb_func_start sub_810C9E4
+sub_810C9E4: @ 810C9E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, =gUnknown_08595CB4
+ lsrs r0, 22
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ asrs r0, 28
+ mov r8, r0
+ cmp r0, 0x2
+ beq _0810CAD0
+ ldrh r0, [r4, 0x2]
+ lsls r0, 20
+ lsrs r0, 24
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810CAD0
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ beq _0810CA60
+ cmp r1, 0x1
+ beq _0810CA96
+ b _0810CAE2
+ .pool
+_0810CA60:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r0
+ b _0810CACA
+_0810CA96:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+_0810CACA:
+ lsls r1, 16
+ lsrs r6, r1, 16
+ b _0810CAE2
+_0810CAD0:
+ ldrh r0, [r4]
+ lsls r0, 22
+ asrs r0, 6
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ lsls r0, 12
+ asrs r0, 22
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0810CAE2:
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, 0x8
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ ldr r0, =gUnknown_08595D2C
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ negs r2, r2
+ movs r3, 0x12
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _0810CB44
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ strh r7, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ mov r1, r9
+ strh r1, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ mov r1, r10
+ strh r1, [r4, 0x3C]
+ movs r0, 0x1
+ b _0810CB46
+ .pool
+_0810CB44:
+ movs r0, 0
+_0810CB46:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9E4
+
+ thumb_func_start sub_810CB58
+sub_810CB58: @ 810CB58
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r2, r1, 0
+ adds r2, 0x8
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0810CB82
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0810CC32
+_0810CB82:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _0810CC04
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810CC04
+ ldr r0, =gUnknown_08595B68
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ movs r3, 0x36
+ ldrsh r2, [r4, r3]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ cmp r0, 0x40
+ beq _0810CBE6
+ ldr r2, =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_810CC3C
+ str r1, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0, 0x3C]
+_0810CBE6:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0810CC32
+ .pool
+_0810CC04:
+ ldr r3, =gTasks
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_0810CC32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810CB58
+
+ thumb_func_start sub_810CC3C
+sub_810CC3C: @ 810CC3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _0810CC7C
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_0810CC7C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810CC3C
+
+ thumb_func_start unc_080B06FC
+unc_080B06FC: @ 810CC88
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, =gAnimDisableStructPtr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _0810CCA6
+ movs r1, 0x4
+_0810CCA6:
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r6, =gBattleAnimArgs
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810CCCE
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_0810CCCE:
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl InitAnimArcTranslation
+ ldr r0, =sub_810CD1C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unc_080B06FC
+
+ thumb_func_start sub_810CD1C
+sub_810CD1C: @ 810CD1C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810CD3E
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, =sub_80A67D8
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+_0810CD3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810CD1C
+
+ thumb_func_start sub_810CD4C
+sub_810CD4C: @ 810CD4C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ bl Random2
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random2
+ ldr r1, =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _0810CD92
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_0810CD92:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, =sub_810CDB0
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810CD4C
+
+ thumb_func_start sub_810CDB0
+sub_810CDB0: @ 810CDB0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0810CDD4
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _0810CDD8
+_0810CDD4:
+ lsls r0, r3, 16
+ asrs r0, 24
+_0810CDD8:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0810CDF6
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_0810CDF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CDB0
+
+ thumb_func_start AnimTask_GetRolloutCounter
+AnimTask_GetRolloutCounter: @ 810CDFC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gBattleAnimArgs
+ ldrb r3, [r1]
+ lsls r3, 1
+ adds r3, r1
+ ldr r1, =gAnimDisableStructPtr
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x11]
+ lsrs r2, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r2, r1
+ subs r2, 0x1
+ strh r2, [r3]
+ bl DestroyAnimVisualTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_GetRolloutCounter
+
+ .align 2, 0
diff --git a/asm/international_string_util.s b/asm/international_string_util.s
deleted file mode 100644
index 469d88787..000000000
--- a/asm/international_string_util.s
+++ /dev/null
@@ -1,355 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
- thumb_func_start sub_81DB41C
-sub_81DB41C: @ 81DB41C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, [r4]
- movs r7, 0
- movs r6, 0
- ldrh r0, [r4, 0xC]
- cmp r7, r0
- bge _081DB44C
- adds r5, r1, 0
-_081DB42E:
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- ldr r1, [r5]
- movs r2, 0
- bl GetStringWidth
- cmp r0, r7
- ble _081DB442
- adds r7, r0, 0
-_081DB442:
- adds r5, 0x8
- adds r6, 0x1
- ldrh r0, [r4, 0xC]
- cmp r6, r0
- blt _081DB42E
-_081DB44C:
- ldrb r0, [r4, 0x12]
- adds r1, r7, r0
- adds r0, r1, 0
- adds r0, 0x9
- cmp r0, 0
- bge _081DB45A
- adds r0, 0x7
-_081DB45A:
- asrs r0, 3
- cmp r0, 0x1C
- ble _081DB462
- movs r0, 0x1C
-_081DB462:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81DB41C
-
- thumb_func_start CopyMonCategoryText
-CopyMonCategoryText: @ 81DB468
- push {lr}
- adds r2, r0, 0
- adds r0, r1, 0
- lsls r2, 5
- ldr r1, =gPokedexEntries
- adds r2, r1
- adds r1, r2, 0
- bl StringCopy
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- ldr r1, =gText_Pokemon
- bl StringCopy
- pop {r0}
- bx r0
- .pool
- thumb_func_end CopyMonCategoryText
-
- thumb_func_start sub_81DB494
-sub_81DB494: @ 81DB494
- push {r4-r7,lr}
- adds r6, r1, 0
- adds r5, r2, 0
- adds r7, r3, 0
- cmp r5, 0
- beq _081DB4B6
- adds r1, r5, 0
- bl StringCopy
- adds r4, r0, 0
- lsls r0, r6, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- b _081DB4BA
-_081DB4B6:
- adds r4, r0, 0
- movs r0, 0
-_081DB4BA:
- subs r3, r7, r0
- cmp r3, 0
- ble _081DB4D4
- movs r0, 0xFC
- strb r0, [r4]
- adds r4, 0x1
- movs r0, 0x11
- strb r0, [r4]
- adds r4, 0x1
- strb r3, [r4]
- adds r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
-_081DB4D4:
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81DB494
-
- thumb_func_start PadNameString
-PadNameString: @ 81DB4DC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl StripExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _081DB51A
- cmp r1, 0x5
- bhi _081DB51E
- movs r3, 0xFC
- movs r2, 0x7
-_081DB4FE:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _081DB4FE
- b _081DB51E
-_081DB510:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_081DB51A:
- cmp r1, 0x5
- bls _081DB510
-_081DB51E:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end PadNameString
-
- thumb_func_start sub_81DB52C
-sub_81DB52C: @ 81DB52C
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _081DB546
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _081DB54C
-_081DB546:
- adds r0, r4, 0
- bl StripExtCtrlCodes
-_081DB54C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81DB52C
-
- thumb_func_start sub_81DB554
-sub_81DB554: @ 81DB554
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _081DB572
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _081DB5A4
-_081DB572:
- cmp r5, 0xFC
- bne _081DB57E
- adds r0, r4, 0
- bl StripExtCtrlCodes
- b _081DB5A4
-_081DB57E:
- adds r1, r4, 0
- b _081DB584
-_081DB582:
- adds r1, 0x1
-_081DB584:
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- bne _081DB582
- cmp r1, r4
- bcc _081DB5A4
- ldrb r0, [r1]
- cmp r0, r5
- bne _081DB5A4
- movs r2, 0xFF
-_081DB596:
- strb r2, [r1]
- subs r1, 0x1
- cmp r1, r4
- bcc _081DB5A4
- ldrb r0, [r1]
- cmp r0, r5
- beq _081DB596
-_081DB5A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81DB554
-
- thumb_func_start sub_81DB5AC
-sub_81DB5AC: @ 81DB5AC
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2]
- adds r2, 0x1
- cmp r0, 0xFC
- bne _081DB5E4
- ldrb r0, [r2]
- adds r2, 0x1
- cmp r0, 0x15
- bne _081DB5E4
- b _081DB5CE
-_081DB5C2:
- cmp r1, 0xFC
- bne _081DB5CC
- ldrb r0, [r2, 0x1]
- cmp r0, 0x16
- beq _081DB5E4
-_081DB5CC:
- adds r2, 0x1
-_081DB5CE:
- ldrb r1, [r2]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081DB5C2
- movs r0, 0xFC
- strb r0, [r2]
- adds r2, 0x1
- movs r0, 0x16
- strb r0, [r2]
- movs r0, 0xFF
- strb r0, [r2, 0x1]
-_081DB5E4:
- pop {r0}
- bx r0
- thumb_func_end sub_81DB5AC
-
- thumb_func_start TVShowConvertInternationalString
-TVShowConvertInternationalString: @ 81DB5E8
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r2, 0
- bl StringCopy
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl ConvertInternationalString
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end TVShowConvertInternationalString
-
- thumb_func_start sub_81DB604
-sub_81DB604: @ 81DB604
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _081DB618
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _081DB618
- movs r0, 0x1
- b _081DB61A
-_081DB618:
- movs r0, 0x2
-_081DB61A:
- pop {r1}
- bx r1
- thumb_func_end sub_81DB604
-
- thumb_func_start sub_81DB620
-sub_81DB620: @ 81DB620
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 2
- ldr r0, =gWindows
- adds r4, r0
- lsls r7, r3, 5
- ldrb r0, [r4, 0x3]
- lsls r6, r0, 5
- muls r2, r6
- ldr r0, [r4, 0x8]
- adds r0, r2
- lsls r1, 5
- adds r5, r0, r1
- ldr r0, [sp, 0x18]
- cmp r0, 0
- ble _081DB66C
- adds r4, r0, 0
-_081DB646:
- ldr r0, =0x11111111
- str r0, [sp]
- adds r2, r7, 0
- cmp r2, 0
- bge _081DB652
- adds r2, 0x3
-_081DB652:
- lsls r2, 9
- lsrs r2, 11
- movs r0, 0x80
- lsls r0, 17
- orrs r2, r0
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- adds r5, r6
- subs r4, 0x1
- cmp r4, 0
- bne _081DB646
-_081DB66C:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81DB620
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
deleted file mode 100644
index 1179b9866..000000000
--- a/asm/link_rfu.s
+++ /dev/null
@@ -1,2021 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8011404
-sub_8011404: @ 8011404
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x31
- bne _08011410
- b _08011570
-_08011410:
- cmp r4, 0x31
- bgt _0801143E
- cmp r4, 0x22
- beq _08011494
- cmp r4, 0x22
- bgt _0801142C
- cmp r4, 0x20
- beq _0801147C
- cmp r4, 0x20
- ble _08011426
- b _080115DE
-_08011426:
- cmp r4, 0
- beq _0801146E
- b _080115DE
-_0801142C:
- cmp r4, 0x24
- beq _080114BA
- cmp r4, 0x24
- blt _080114B0
- cmp r4, 0x25
- beq _08011504
- cmp r4, 0x30
- beq _0801150E
- b _080115DE
-_0801143E:
- cmp r4, 0x44
- bgt _08011454
- cmp r4, 0x42
- blt _08011448
- b _080115DE
-_08011448:
- cmp r4, 0x33
- beq _08011522
- cmp r4, 0x33
- bge _08011452
- b _0801158C
-_08011452:
- b _080115DE
-_08011454:
- cmp r4, 0xF3
- bne _0801145A
- b _080115AC
-_0801145A:
- cmp r4, 0xF3
- bgt _08011466
- cmp r4, 0xF0
- bge _08011464
- b _080115DE
-_08011464:
- b _080115C4
-_08011466:
- cmp r4, 0xFF
- bne _0801146C
- b _080115C4
-_0801146C:
- b _080115DE
-_0801146E:
- ldr r1, =gUnknown_03005000
- movs r0, 0x6
- strh r0, [r1, 0x4]
- b _080115DE
- .pool
-_0801147C:
- ldr r0, =gUnknown_03005000
- ldr r1, =gUnknown_03004140
- ldrh r1, [r1, 0x14]
- ldr r2, =0x00000ccd
- adds r0, r2
- b _080115DC
- .pool
-_08011494:
- ldr r0, =gUnknown_03005000
- ldr r1, =gUnknown_03004140
- ldrh r1, [r1, 0x14]
- ldr r2, =0x00000c3e
- adds r0, r2
- ldrb r2, [r0]
- b _080115DC
- .pool
-_080114B0:
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8011A64
- b _080115DE
-_080114BA:
- ldr r4, =gUnknown_03005000
- movs r1, 0
- movs r0, 0xB
- strh r0, [r4, 0x4]
- ldr r2, =0x00000c85
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, =0x00000c86
- adds r2, r4, r0
- strb r1, [r2]
- ldr r1, =0x00000c3e
- adds r5, r4, r1
- ldrb r1, [r5]
- movs r0, 0x20
- movs r3, 0x1
- bl rfu_setRecvBuffer
- ldrb r1, [r5]
- ldr r2, =0x00000c3f
- adds r4, r2
- movs r0, 0x10
- adds r2, r4, 0
- movs r3, 0x46
- bl rfu_setRecvBuffer
- b _080115DE
- .pool
-_08011504:
- movs r0, 0x2
- movs r1, 0x25
- bl sub_8011A64
- b _080115DE
-_0801150E:
- ldr r0, =gUnknown_03005000
- adds r2, r0, 0
- adds r2, 0xF0
- movs r1, 0x2
- strb r1, [r2]
- ldr r1, =0x00000c86
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080115DE
-_08011522:
- ldr r2, =gUnknown_03005000
- adds r1, r2, 0
- adds r1, 0xF0
- ldrb r0, [r1]
- cmp r0, 0x2
- beq _08011532
- movs r0, 0x4
- strb r0, [r1]
-_08011532:
- ldr r1, =0x00000c86
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- beq _08011544
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8011A64
-_08011544:
- ldr r0, =gUnknown_082ED7FC
- movs r1, 0x5
- movs r2, 0x5
- bl nullsub_5
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080115DE
- adds r0, r4, 0
- bl sub_8011170
- b _080115DE
- .pool
-_08011570:
- ldr r0, =gUnknown_03005000
- adds r0, 0xF0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, =gUnknown_082ED814
- movs r1, 0x5
- movs r2, 0x5
- bl nullsub_5
- b _080115DE
- .pool
-_0801158C:
- ldr r1, =gUnknown_03005000
- adds r2, r1, 0
- adds r2, 0xF0
- movs r0, 0x3
- strb r0, [r2]
- ldr r2, =0x00000c3c
- adds r1, r2
- ldrb r0, [r1]
- movs r0, 0x1
- strb r0, [r1]
- b _080115DE
- .pool
-_080115AC:
- movs r0, 0x1
- movs r1, 0xF3
- bl sub_8011A64
- movs r0, 0xF3
- bl sub_8011170
- ldr r0, =gUnknown_03005000
- adds r0, 0xEF
- b _080115DA
- .pool
-_080115C4:
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8011A64
- adds r0, r4, 0
- bl sub_8011170
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000cdb
- adds r0, r1
- ldrb r1, [r0]
-_080115DA:
- movs r1, 0x1
-_080115DC:
- strb r1, [r0]
-_080115DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011404
-
- thumb_func_start sub_80115EC
-sub_80115EC: @ 80115EC
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r2, 0
- movs r6, 0x1
- ldr r0, =gUnknown_03005000
- ldr r4, =0x00000cea
- adds r1, r0, r4
- movs r5, 0
- movs r4, 0xFF
-_080115FE:
- adds r0, r3, 0
- asrs r0, r2
- ands r0, r6
- cmp r0, 0
- beq _08011610
- strb r5, [r1]
- ldrb r0, [r1, 0x4]
- orrs r0, r4
- strb r0, [r1, 0x4]
-_08011610:
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, 0x3
- ble _080115FE
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80115EC
-
- thumb_func_start sub_8011628
-sub_8011628: @ 8011628
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r3, 0
- movs r2, 0
- movs r4, 0x1
- ldr r6, =gUnknown_03007890
- movs r7, 0x7F
-_08011636:
- adds r0, r5, 0
- asrs r0, r2
- ands r0, r4
- cmp r0, 0
- beq _0801165C
- lsls r1, r2, 5
- adds r1, 0x14
- ldr r0, [r6]
- adds r0, r1
- ldrb r1, [r0, 0x10]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x45
- bne _0801165C
- adds r0, r4, 0
- lsls r0, r2
- orrs r3, r0
- lsls r0, r3, 24
- lsrs r3, r0, 24
-_0801165C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _08011636
- adds r0, r3, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8011628
-
- thumb_func_start sub_8011674
-sub_8011674: @ 8011674
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x25
- bne _08011680
- b _080118EC
-_08011680:
- cmp r4, 0x25
- bgt _080116C2
- cmp r4, 0x14
- bne _0801168A
- b _08011804
-_0801168A:
- cmp r4, 0x14
- bgt _080116A2
- cmp r4, 0x11
- beq _08011722
- cmp r4, 0x11
- ble _08011698
- b _08011A42
-_08011698:
- cmp r4, 0
- beq _0801170C
- cmp r4, 0x10
- beq _08011718
- b _08011A42
-_080116A2:
- cmp r4, 0x22
- bne _080116A8
- b _08011868
-_080116A8:
- cmp r4, 0x22
- bgt _080116B4
- cmp r4, 0x20
- bne _080116B2
- b _08011850
-_080116B2:
- b _08011A42
-_080116B4:
- cmp r4, 0x23
- bne _080116BA
- b _08011884
-_080116BA:
- cmp r4, 0x24
- bne _080116C0
- b _080118BA
-_080116C0:
- b _08011A42
-_080116C2:
- cmp r4, 0x44
- bgt _080116F2
- cmp r4, 0x42
- blt _080116CC
- b _08011A42
-_080116CC:
- cmp r4, 0x32
- bne _080116D2
- b _08011914
-_080116D2:
- cmp r4, 0x32
- bgt _080116E4
- cmp r4, 0x30
- bne _080116DC
- b _08011940
-_080116DC:
- cmp r4, 0x31
- bne _080116E2
- b _080118F6
-_080116E2:
- b _08011A42
-_080116E4:
- cmp r4, 0x33
- bne _080116EA
- b _08011948
-_080116EA:
- cmp r4, 0x40
- bne _080116F0
- b _080119FC
-_080116F0:
- b _08011A42
-_080116F2:
- cmp r4, 0xF3
- bne _080116F8
- b _08011A0C
-_080116F8:
- cmp r4, 0xF3
- bgt _08011704
- cmp r4, 0xF0
- bge _08011702
- b _08011A42
-_08011702:
- b _08011A28
-_08011704:
- cmp r4, 0xFF
- bne _0801170A
- b _08011A28
-_0801170A:
- b _08011A42
-_0801170C:
- ldr r1, =gUnknown_03005000
- movs r0, 0x11
- strh r0, [r1, 0x4]
- b _08011A42
- .pool
-_08011718:
- movs r0, 0x4
- movs r1, 0
- bl sub_8011A64
- b _08011A42
-_08011722:
- bl sub_800F7DC
- ldrb r1, [r0, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x45
- bne _080117DC
- ldr r5, =gUnknown_03005000
- ldr r1, =0x00000cd9
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080117DC
- ldr r0, =gUnknown_03004140
- ldrh r0, [r0, 0x14]
- bl sub_8011628
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080117A6
- adds r0, r4, 0
- bl sub_800E87C
- movs r2, 0x1
- mov r12, r2
- mov r1, r12
- lsls r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r7, =0x00000ce6
- adds r6, r5, r7
- ldrb r2, [r6]
- cmp r2, 0
- bne _08011798
- ldr r0, =0x00000ce8
- adds r3, r5, r0
- ldrb r0, [r3]
- cmp r0, 0
- bne _08011798
- subs r7, 0x1
- adds r0, r5, r7
- strb r1, [r0]
- eors r1, r4
- orrs r1, r2
- strb r1, [r6]
- mov r0, r12
- strb r0, [r3]
- b _080117A6
- .pool
-_08011798:
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000ce6
- adds r0, r1
- ldrb r2, [r0]
- adds r1, r4, 0
- orrs r1, r2
- strb r1, [r0]
-_080117A6:
- ldr r0, =gUnknown_03004140
- ldrh r1, [r0, 0x14]
- cmp r4, r1
- beq _080117F6
- ldr r2, =gUnknown_03005000
- ldr r7, =0x00000ce3
- adds r3, r2, r7
- adds r0, r4, 0
- eors r0, r1
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r0, =0x00000ce4
- adds r2, r0
- movs r0, 0x2
- strb r0, [r2]
- b _080117F6
- .pool
-_080117DC:
- bl sub_800F7DC
- ldrb r1, [r0, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x54
- bne _080117F6
- ldr r0, =gUnknown_03004140
- ldrb r0, [r0]
- bl rfu_REQ_disconnect
- bl rfu_waitREQComplete
-_080117F6:
- ldr r0, =gUnknown_03004140
- ldrh r0, [r0, 0x14]
- bl sub_80115EC
- b _08011A42
- .pool
-_08011804:
- bl sub_800F7DC
- ldrb r1, [r0, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x45
- beq _08011836
- ldr r4, =gUnknown_03004140
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- bls _08011836
- ldrb r0, [r4, 0x14]
- bl sub_800E87C
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r0
- lsrs r1, 24
- ldrb r0, [r4]
- eors r1, r0
- adds r0, r1, 0
- bl rfu_REQ_disconnect
- bl rfu_waitREQComplete
-_08011836:
- ldr r1, =gUnknown_03005000
- ldrh r0, [r1, 0x4]
- cmp r0, 0xF
- beq _08011840
- b _08011A42
-_08011840:
- movs r0, 0x10
- strh r0, [r1, 0x4]
- b _08011A42
- .pool
-_08011850:
- ldr r0, =gUnknown_03005000
- ldr r1, =gUnknown_03004140
- ldrh r1, [r1, 0x14]
- ldr r2, =0x00000ccd
- adds r0, r2
- b _08011A40
- .pool
-_08011868:
- ldr r0, =gUnknown_03005000
- ldr r1, =gUnknown_03004140
- ldrh r1, [r1, 0x14]
- ldr r7, =0x00000c3e
- adds r0, r7
- ldrb r2, [r0]
- b _08011A40
- .pool
-_08011884:
- ldr r1, =gUnknown_03005000
- movs r0, 0x12
- strh r0, [r1, 0x4]
- ldr r0, =0x00000ccf
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _080118B0
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, =sub_801209C
- movs r1, 0x2
- bl CreateTask
- b _08011A42
- .pool
-_080118B0:
- movs r0, 0x2
- movs r1, 0x23
- bl sub_8011A64
- b _08011A42
-_080118BA:
- ldr r4, =gUnknown_03005000
- movs r0, 0xD
- strh r0, [r4, 0x4]
- movs r0, 0x3
- movs r1, 0
- bl sub_8011A64
- ldr r1, =0x00000c3e
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, =0x00000c3f
- adds r4, r2
- movs r0, 0x10
- adds r2, r4, 0
- movs r3, 0x46
- bl rfu_setRecvBuffer
- b _08011A42
- .pool
-_080118EC:
- movs r0, 0x2
- movs r1, 0x25
- bl sub_8011A64
- b _08011A42
-_080118F6:
- ldr r0, =gUnknown_03004140
- ldrb r1, [r0]
- ldrh r0, [r0, 0x14]
- ands r1, r0
- cmp r1, 0
- bne _08011904
- b _08011A42
-_08011904:
- ldr r0, =gUnknown_03005000
- adds r0, 0xF0
- movs r1, 0x1
- b _08011A40
- .pool
-_08011914:
- ldr r2, =gUnknown_03005000
- adds r1, r2, 0
- adds r1, 0xF0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, =gUnknown_03007890
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801192A
- b _08011A42
-_0801192A:
- ldr r7, =0x00000c3c
- adds r0, r2, r7
- ldrb r1, [r0]
- movs r1, 0x1
- b _08011A40
- .pool
-_08011940:
- ldr r0, =gUnknown_03005000
- adds r0, 0xF0
- movs r1, 0x2
- strb r1, [r0]
-_08011948:
- ldr r2, =gUnknown_03005000
- adds r1, r2, 0
- adds r1, 0xF0
- ldrb r0, [r1]
- cmp r0, 0x2
- beq _08011958
- movs r0, 0x4
- strb r0, [r1]
-_08011958:
- ldrb r0, [r2, 0xC]
- cmp r0, 0x1
- bne _08011996
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080119B4
- ldr r0, =0x00000ce2
- adds r2, r0
- ldr r0, =gUnknown_03004140
- ldrb r1, [r0, 0x14]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- cmp r0, 0
- bne _08011990
- adds r0, r4, 0
- bl sub_8011170
- b _080119B4
- .pool
-_08011990:
- bl sub_80111FC
- b _080119B4
-_08011996:
- ldr r1, =0x00000ce4
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080119B4
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080119B4
- adds r0, r4, 0
- bl sub_8011170
- movs r0, 0
- bl sub_800C27C
-_080119B4:
- ldr r0, =gUnknown_03007890
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080119DA
- ldr r0, =gUnknown_03004140
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _080119DA
- ldr r0, =sub_800EB44
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080119DA
- ldr r1, =gUnknown_03005000
- movs r0, 0x11
- strh r0, [r1, 0x4]
-_080119DA:
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8011A64
- b _08011A42
- .pool
-_080119FC:
- ldr r0, =gUnknown_03005000
- ldr r2, =0x00000ce3
- adds r0, r2
- b _08011A3E
- .pool
-_08011A0C:
- movs r0, 0x1
- movs r1, 0xF3
- bl sub_8011A64
- movs r0, 0xF3
- bl sub_8011170
- ldr r0, =gUnknown_03005000
- adds r0, 0xEF
- movs r1, 0x1
- b _08011A40
- .pool
-_08011A28:
- adds r0, r4, 0
- bl sub_8011170
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8011A64
- ldr r0, =gUnknown_03005000
- ldr r7, =0x00000cdb
- adds r0, r7
- ldrb r1, [r0]
-_08011A3E:
- movs r1, 0
-_08011A40:
- strb r1, [r0]
-_08011A42:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011674
-
- thumb_func_start sub_8011A50
-sub_8011A50: @ 8011A50
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000ce4
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_8011A50
-
- thumb_func_start sub_8011A64
-sub_8011A64: @ 8011A64
- ldr r2, =gUnknown_03005000
- adds r3, r2, 0
- adds r3, 0xF1
- strb r0, [r3]
- strh r1, [r2, 0xA]
- bx lr
- .pool
- thumb_func_end sub_8011A64
-
- thumb_func_start sub_8011A74
-sub_8011A74: @ 8011A74
- ldr r0, =gUnknown_03005000
- adds r0, 0xF1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8011A74
-
- thumb_func_start sub_8011A80
-sub_8011A80: @ 8011A80
- push {lr}
- bl sub_8011A74
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x1
- bls _08011A94
- movs r0, 0
- b _08011A96
-_08011A94:
- movs r0, 0x1
-_08011A96:
- pop {r1}
- bx r1
- thumb_func_end sub_8011A80
-
- thumb_func_start sub_8011A9C
-sub_8011A9C: @ 8011A9C
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000ce8
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_8011A9C
-
- thumb_func_start Rfu_IsMaster
-Rfu_IsMaster: @ 8011AB0
- ldr r0, =gUnknown_03005000
- ldrb r0, [r0, 0xC]
- bx lr
- .pool
- thumb_func_end Rfu_IsMaster
-
- thumb_func_start RfuVSync
-RfuVSync: @ 8011ABC
- push {lr}
- bl rfu_syncVBlank_
- pop {r0}
- bx r0
- thumb_func_end RfuVSync
-
- thumb_func_start sub_8011AC8
-sub_8011AC8: @ 8011AC8
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, =gRecvCmds
- ldr r2, =0x05000014
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011AC8
-
- thumb_func_start sub_8011AE8
-sub_8011AE8: @ 8011AE8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8011AE8
-
- thumb_func_start sub_8011AFC
-sub_8011AFC: @ 8011AFC
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- bl ResetPaletteFade
- ldr r0, =sub_8011AE8
- bl SetVBlankCallback
- bl IsWirelessAdapterConnected
- lsls r0, 24
- cmp r0, 0
- beq _08011B70
- ldr r1, =gLinkType
- ldr r2, =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_800B488
- bl OpenLink
- ldr r0, =gMain
- ldrh r0, [r0, 0x24]
- bl SeedRng
- movs r4, 0
-_08011B38:
- bl Random
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- adds r1, 0xA
- adds r1, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08011B38
- movs r1, 0xAA
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl sub_8011BA4
- ldr r0, =sub_8011BF8
- bl SetMainCallback2
-_08011B70:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011AFC
-
- thumb_func_start sub_8011B90
-sub_8011B90: @ 8011B90
- push {lr}
- ldr r0, =sub_800EB44
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8011B90
-
- thumb_func_start sub_8011BA4
-sub_8011BA4: @ 8011BA4
- push {r4,lr}
- ldr r4, =nullsub_89
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08011BC2
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- ldr r1, =gUnknown_03005000
- adds r1, 0x66
- strb r0, [r1]
-_08011BC2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011BA4
-
- thumb_func_start sub_8011BD0
-sub_8011BD0: @ 8011BD0
- push {lr}
- ldr r0, =nullsub_89
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011BEA
- ldr r0, =gUnknown_03005000
- adds r0, 0x66
- ldrb r0, [r0]
- bl DestroyTask
-_08011BEA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011BD0
-
- thumb_func_start sub_8011BF8
-sub_8011BF8: @ 8011BF8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8011BF8
-
- thumb_func_start sub_8011C10
-sub_8011C10: @ 8011C10
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r1, =gUnknown_03005000
- movs r0, 0x1
- strb r0, [r1, 0xC]
- bl sub_8010F48
- ldr r0, =sub_801120C
- movs r1, 0
- bl sub_800BF4C
- ldr r2, =gUnknown_02022B2C
- adds r1, r2, 0
- ldr r0, =gUnknown_082ED608
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldr r0, =gUnknown_082ED620
- subs r4, 0x1
- adds r4, r0
- ldrb r0, [r4]
- strh r0, [r2, 0x2]
- bl sub_800EE78
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011C10
-
- thumb_func_start sub_8011C5C
-sub_8011C5C: @ 8011C5C
- push {lr}
- ldr r1, =gUnknown_03005000
- movs r0, 0
- strb r0, [r1, 0xC]
- bl sub_8010F48
- ldr r0, =sub_8011404
- ldr r1, =sub_800ED34
- bl sub_800BF4C
- bl sub_800EF00
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011C5C
-
- thumb_func_start sub_8011C84
-sub_8011C84: @ 8011C84
- push {r4-r7,lr}
- ldr r4, =gUnknown_03005000
- movs r5, 0
- movs r0, 0x2
- strb r0, [r4, 0xC]
- bl sub_8010F48
- ldr r0, =sub_8011674
- movs r1, 0
- bl sub_800BF4C
- ldr r2, =gUnknown_02022B2C
- adds r1, r2, 0
- ldr r0, =gUnknown_082ED608
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- strb r5, [r2, 0x11]
- movs r0, 0x96
- lsls r0, 2
- strh r0, [r2, 0x12]
- ldr r0, =sub_800EB44
- movs r1, 0x1
- bl CreateTask
- adds r4, 0x67
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011C84
-
- thumb_func_start sub_8011CD8
-sub_8011CD8: @ 8011CD8
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- ldrb r0, [r0]
- orrs r0, r1
- bx lr
- thumb_func_end sub_8011CD8
-
- thumb_func_start sub_8011CE4
-sub_8011CE4: @ 8011CE4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- movs r0, 0xFF
- mov r9, r0
- movs r7, 0
- ldr r1, =gUnknown_03007890
- mov r8, r1
-_08011D02:
- lsls r4, r7, 5
- adds r5, r4, 0
- adds r5, 0x14
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5
- adds r0, 0x8
- bl sub_8011CD8
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4
- ldrh r0, [r0, 0x18]
- bl sub_8010454
- cmp r0, 0
- beq _08011D4C
- mov r0, r8
- ldr r1, [r0]
- adds r1, r5
- adds r1, 0x15
- ldr r0, [sp]
- bl StringCompare
- cmp r0, 0
- bne _08011D4C
- cmp r10, r6
- bne _08011D4C
- mov r9, r7
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0, 0x16]
- cmp r0, 0xFF
- bne _08011D56
-_08011D4C:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _08011D02
-_08011D56:
- mov r0, r9
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8011CE4
-
- thumb_func_start sub_8011D6C
-sub_8011D6C: @ 8011D6C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r0, r6, 24
- lsrs r0, 24
- bl rfu_REQ_disconnect
- bl rfu_waitREQComplete
- ldr r4, =gUnknown_03005000
- ldr r0, =0x00000ce2
- adds r5, r4, r0
- ldrb r0, [r5]
- bics r0, r6
- strb r0, [r5]
- ldr r1, =0x00000cda
- adds r6, r4, r1
- ldrb r1, [r6]
- movs r0, 0x1
- bl rfu_clearSlot
- ldrb r0, [r5]
- ldr r1, =0x00000c87
- adds r4, r1
- adds r1, r4, 0
- movs r2, 0x46
- bl rfu_UNI_setSendData
- ldrb r0, [r5]
- bl sub_800E87C
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011D6C
-
- thumb_func_start sub_8011DC0
-sub_8011DC0: @ 8011DC0
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_8011CE4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _08011DDA
- movs r0, 0x1
- lsls r0, r1
- bl sub_8011D6C
-_08011DDA:
- pop {r0}
- bx r0
- thumb_func_end sub_8011DC0
-
- thumb_func_start sub_8011DE0
-sub_8011DE0: @ 8011DE0
- push {r4-r6,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08011E20
- movs r3, 0
- movs r2, 0
- ldr r5, =gUnknown_03005000+0xCDE
- adds r6, r5, 0x4
-_08011DF0:
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, r4
- bne _08011E0E
- ldrb r0, [r6]
- asrs r0, r2
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08011E0E
- adds r0, r1, 0
- lsls r0, r2
- orrs r3, r0
- lsls r0, r3, 24
- lsrs r3, r0, 24
-_08011E0E:
- adds r2, 0x1
- cmp r2, 0x3
- ble _08011DF0
- cmp r3, 0
- beq _08011E20
- adds r0, r3, 0
- movs r1, 0x2
- bl sub_8011E94
-_08011E20:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011DE0
-
- thumb_func_start sub_8011E2C
-sub_8011E2C: @ 8011E2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, =gSendCmd
- ldrh r0, [r6]
- cmp r0, 0
- bne _08011E7A
- ldr r5, =gUnknown_03005000
- ldr r1, =0x00000ce8
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011E7A
- movs r0, 0xED
- lsls r0, 8
- bl sub_800FD14
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2]
- ldrh r1, [r0, 0xA]
- strh r1, [r6, 0x4]
- ldr r1, =gUnknown_082ED695
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r0, r1
- ldrb r1, [r5, 0xD]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r5, 0xD]
- ldrb r0, [r5, 0xD]
- strh r0, [r6, 0x6]
- adds r0, r4, 0
- bl DestroyTask
-_08011E7A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011E2C
-
- thumb_func_start sub_8011E94
-sub_8011E94: @ 8011E94
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r5, =sub_8011E2C
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _08011ECC
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- b _08011EDC
- .pool
-_08011ECC:
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- orrs r4, r0
- strh r4, [r1, 0x8]
-_08011EDC:
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011E94
-
- thumb_func_start sub_8011EF4
-sub_8011EF4: @ 8011EF4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_800EE94
- lsls r0, 24
- cmp r0, 0
- beq _08011FA4
- adds r0, r4, 0
- adds r0, 0x10
- bl sub_8011CD8
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8011CE4
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _08011F8C
- ldr r0, =gUnknown_03007890
- ldr r0, [r0]
- lsls r1, r2, 5
- adds r0, r1
- ldrb r0, [r0, 0x16]
- cmp r0, 0xFF
- beq _08011F5C
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000c3d
- adds r0, r1
- strb r2, [r0]
- bl sub_800EEBC
- cmp r0, 0
- beq _08011FAA
- b _08011F84
- .pool
-_08011F5C:
- bl sub_800F7DC
- ldrb r1, [r0, 0xA]
- movs r5, 0x7F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x15
- beq _08011FA4
- bl sub_800F7DC
- ldrb r1, [r0, 0xA]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x16
- beq _08011FA4
- movs r1, 0xE0
- lsls r1, 7
- movs r0, 0x2
- bl sub_8011A64
-_08011F84:
- adds r0, r6, 0
- bl DestroyTask
- b _08011FAA
-_08011F8C:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000c3d
- adds r0, r1
- strb r2, [r0]
- b _08011FAA
- .pool
-_08011FA4:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
-_08011FAA:
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF0
- ble _08011FC2
- movs r1, 0xE0
- lsls r1, 7
- movs r0, 0x2
- bl sub_8011A64
- adds r0, r6, 0
- bl DestroyTask
-_08011FC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8011EF4
-
- thumb_func_start sub_8011FC8
-sub_8011FC8: @ 8011FC8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- ldr r0, =gUnknown_03005000
- adds r0, 0xF1
- movs r1, 0
- strb r1, [r0]
- ldr r0, =sub_8011EF4
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl StringCopy
- strh r5, [r4, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8011FC8
-
- thumb_func_start sub_801200C
-sub_801200C: @ 801200C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- bl sub_800F7DC
- ldrb r1, [r0, 0xA]
- movs r2, 0x7F
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x45
- bne _08012032
- ldrb r1, [r4, 0xA]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x45
- beq _08012092
-_0801202E:
- movs r0, 0x1
- b _08012094
-_08012032:
- ldrb r1, [r4, 0xA]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x40
- bne _0801202E
- cmp r5, 0x44
- bne _08012092
- ldr r5, =gUnknown_03005000+0x10A
- ldrh r0, [r5, 0x8]
- ldr r3, =0x000003ff
- adds r2, r3, 0
- ands r2, r0
- movs r0, 0xCE
- lsls r0, 1
- cmp r2, r0
- bne _08012068
- ldrh r1, [r4, 0x8]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, r2
- beq _08012092
- b _0801202E
- .pool
-_08012068:
- ldrh r1, [r4, 0x8]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, r2
- bne _0801202E
- ldrb r2, [r4, 0xB]
- movs r0, 0xFE
- ldrb r3, [r5, 0xB]
- adds r1, r0, 0
- ands r1, r2
- ands r0, r3
- cmp r1, r0
- bne _0801202E
- ldrb r2, [r4, 0x9]
- movs r0, 0xFC
- ldrb r3, [r5, 0x9]
- adds r1, r0, 0
- ands r1, r2
- ands r0, r3
- cmp r1, r0
- bne _0801202E
-_08012092:
- movs r0, 0
-_08012094:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_801200C
-
- thumb_func_start sub_801209C
-sub_801209C: @ 801209C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r5
- ldr r6, =gUnknown_03005000
- adds r0, r6, 0
- adds r0, 0xF1
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080120BA
- adds r0, r5, 0
- bl DestroyTask
-_080120BA:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- movs r1, 0x96
- lsls r1, 17
- cmp r0, r1
- ble _080120E4
- movs r1, 0xE0
- lsls r1, 7
- movs r0, 0x2
- bl sub_8011A64
- adds r0, r5, 0
- bl DestroyTask
-_080120E4:
- ldr r1, =0x00000ccd
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801217C
- ldr r0, =gUnknown_03004140
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0801217C
- movs r2, 0x86
- lsls r2, 1
- adds r0, r6, r2
- bl sub_8011CD8
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, =0x00000119
- adds r0, r6, r2
- bl sub_8011CE4
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _0801217C
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- ldr r7, =gUnknown_03007890
- lsls r4, r2, 5
- adds r2, r4, 0
- adds r2, 0x14
- ldr r1, [r7]
- adds r1, r2
- adds r1, 0x6
- bl sub_801200C
- cmp r0, 0
- bne _0801216C
- ldr r0, [r7]
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0xFF
- beq _0801217C
- ldrh r0, [r1, 0x14]
- movs r1, 0x5A
- bl sub_800C12C
- lsls r0, 24
- cmp r0, 0
- bne _0801217C
- movs r0, 0xA
- strh r0, [r6, 0x4]
- adds r0, r5, 0
- bl DestroyTask
- b _0801217C
- .pool
-_0801216C:
- movs r1, 0xE0
- lsls r1, 7
- movs r0, 0x2
- bl sub_8011A64
- mov r0, r8
- bl DestroyTask
-_0801217C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801209C
-
- thumb_func_start sub_8012188
-sub_8012188: @ 8012188
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 24
- lsrs r4, 24
- ldr r6, =gUnknown_03005000
- ldr r1, =0x00000ccf
- adds r0, r6, r1
- movs r7, 0
- strb r7, [r0]
- adds r0, r6, 0
- adds r0, 0xF1
- strb r7, [r0]
- ldr r1, =0x00000119
- adds r0, r6, r1
- adds r1, r3, 0
- bl StringCopy
- movs r1, 0x85
- lsls r1, 1
- adds r0, r6, r1
- adds r1, r5, 0
- movs r2, 0xD
- bl memcpy
- bl sub_800D658
- ldr r0, =sub_801209C
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- strh r4, [r1, 0xA]
- ldr r0, =sub_800EB44
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- cmp r4, 0x45
- bne _08012210
- cmp r1, 0xFF
- beq _0801221E
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x1
- strh r1, [r0, 0x16]
- b _0801221E
- .pool
-_08012210:
- cmp r2, 0xFF
- beq _0801221E
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- strh r7, [r0, 0x16]
-_0801221E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8012188
-
- thumb_func_start sub_8012224
-sub_8012224: @ 8012224
- push {lr}
- ldr r0, =gUnknown_03005000
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08012238
- movs r0, 0
- b _0801223A
- .pool
-_08012238:
- movs r0, 0x1
-_0801223A:
- pop {r1}
- bx r1
- thumb_func_end sub_8012224
-
- thumb_func_start sub_8012240
-sub_8012240: @ 8012240
- push {r4,lr}
- movs r1, 0
- ldr r0, =gUnknown_03004140
- ldrb r2, [r0]
- ldr r4, =gUnknown_03005000+0xCD1
- movs r3, 0x1
-_0801224C:
- adds r0, r2, 0
- asrs r0, r1
- ands r0, r3
- cmp r0, 0
- beq _0801226C
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801226C
- movs r0, 0
- b _08012274
- .pool
-_0801226C:
- adds r1, 0x1
- cmp r1, 0x3
- ble _0801224C
- movs r0, 0x1
-_08012274:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8012240
-
- thumb_func_start sub_801227C
-sub_801227C: @ 801227C
- push {r4,lr}
- movs r4, 0
-_08012280:
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r0, =gUnknown_082ED82C
- movs r1, 0
- bl nullsub_5
- adds r4, 0x1
- cmp r4, 0x13
- ble _08012280
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801227C
-
- thumb_func_start sub_801229C
-sub_801229C: @ 801229C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1C
- movs r2, 0x13
- movs r3, 0x2
- bl nullsub_13
- ldr r4, =gUnknown_03007890
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- movs r1, 0x14
- movs r2, 0x1
- movs r3, 0x1
- bl nullsub_13
- ldr r0, [r4]
- ldrb r0, [r0, 0x3]
- movs r1, 0x17
- movs r2, 0x1
- movs r3, 0x1
- bl nullsub_13
- ldr r0, =gUnknown_03005000
- ldrb r0, [r0, 0xC]
- cmp r0, 0x1
- bne _08012378
- movs r6, 0
- adds r7, r4, 0
- movs r5, 0x14
-_080122E0:
- ldr r2, [r7]
- ldrb r0, [r2, 0x7]
- asrs r0, r6
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801231E
- lsls r0, r6, 5
- adds r0, r2, r0
- ldrh r0, [r0, 0x18]
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r2, r4, 0
- movs r3, 0x4
- bl nullsub_13
- ldr r0, [r7]
- adds r0, r5
- adds r0, 0x6
- movs r1, 0x6
- adds r2, r4, 0
- bl nullsub_5
- ldr r0, [r7]
- adds r0, r5
- adds r0, 0x15
- movs r1, 0x16
- adds r2, r4, 0
- bl nullsub_5
-_0801231E:
- adds r5, 0x20
- adds r6, 0x1
- cmp r6, 0x3
- ble _080122E0
- movs r6, 0
- ldr r0, =gUnknown_03005000
- mov r8, r0
-_0801232C:
- movs r5, 0
- adds r7, r6, 0x1
- lsls r0, r6, 3
- adds r2, r6, 0
- adds r2, 0xB
- subs r0, r6
- lsls r0, 1
- mov r1, r8
- adds r1, 0x14
- adds r4, r0, r1
- lsls r6, r2, 24
-_08012342:
- ldrb r0, [r4]
- lsls r1, r5, 25
- lsrs r1, 24
- lsrs r2, r6, 24
- movs r3, 0x2
- bl nullsub_13
- adds r4, 0x1
- adds r5, 0x1
- cmp r5, 0xD
- ble _08012342
- adds r6, r7, 0
- cmp r6, 0x3
- ble _0801232C
- ldr r0, =gUnknown_082ED868
- movs r1, 0x1
- movs r2, 0xF
- bl nullsub_5
- b _080124AA
- .pool
-_08012378:
- ldr r1, [r4]
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08012414
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- beq _08012414
- movs r6, 0
- movs r5, 0xC0
- lsls r5, 18
-_0801238C:
- lsrs r4, r5, 24
- movs r0, 0
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x4
- bl nullsub_13
- ldr r0, =gUnknown_082ED84B
- movs r1, 0x6
- adds r2, r4, 0
- bl nullsub_5
- ldr r0, =gUnknown_082ED85B
- movs r1, 0x16
- adds r2, r4, 0
- bl nullsub_5
- movs r1, 0x80
- lsls r1, 17
- adds r5, r1
- adds r6, 0x1
- cmp r6, 0x3
- ble _0801238C
- ldr r5, =gUnknown_03007890
- ldr r1, [r5]
- ldr r4, =gUnknown_03005000
- ldr r0, =0x00000c3e
- adds r4, r0
- ldrb r0, [r4]
- lsls r0, 5
- adds r1, r0
- ldrh r0, [r1, 0x18]
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x4
- bl nullsub_13
- ldrb r1, [r4]
- lsls r1, 5
- adds r1, 0x14
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x6
- movs r1, 0x6
- movs r2, 0x3
- bl nullsub_5
- ldrb r1, [r4]
- lsls r1, 5
- adds r1, 0x14
- ldr r0, [r5]
- adds r0, r1
- adds r0, 0x15
- movs r1, 0x16
- movs r2, 0x3
- bl nullsub_5
- b _080124AA
- .pool
-_08012414:
- movs r6, 0
- ldr r1, =gUnknown_03007890
- ldr r0, [r1]
- ldrb r0, [r0, 0x8]
- cmp r6, r0
- bge _08012470
- adds r7, r1, 0
- movs r1, 0x14
- mov r8, r1
-_08012426:
- ldr r0, [r7]
- lsls r5, r6, 5
- adds r1, r0, r5
- ldrb r0, [r1, 0x16]
- cmp r0, 0xFF
- beq _08012462
- ldrh r0, [r1, 0x18]
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x4
- bl nullsub_13
- ldr r0, [r7]
- adds r0, r5
- ldrh r0, [r0, 0x14]
- movs r1, 0x6
- adds r2, r4, 0
- movs r3, 0x4
- bl nullsub_13
- ldr r0, [r7]
- add r0, r8
- adds r0, 0x15
- movs r1, 0x16
- adds r2, r4, 0
- bl nullsub_5
-_08012462:
- movs r0, 0x20
- add r8, r0
- adds r6, 0x1
- ldr r0, [r7]
- ldrb r0, [r0, 0x8]
- cmp r6, r0
- blt _08012426
-_08012470:
- cmp r6, 0x3
- bgt _080124AA
- lsls r0, r6, 24
- movs r1, 0xC0
- lsls r1, 18
- adds r5, r0, r1
-_0801247C:
- lsrs r4, r5, 24
- movs r0, 0
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x4
- bl nullsub_13
- ldr r0, =gUnknown_082ED84B
- movs r1, 0x6
- adds r2, r4, 0
- bl nullsub_5
- ldr r0, =gUnknown_082ED85B
- movs r1, 0x16
- adds r2, r4, 0
- bl nullsub_5
- movs r0, 0x80
- lsls r0, 17
- adds r5, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0801247C
-_080124AA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801229C
-
- thumb_func_start sub_80124C0
-sub_80124C0: @ 80124C0
- ldr r0, =gUnknown_03005000
- ldr r1, =0x00000c1a
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80124C0
-
- thumb_func_start sub_80124D4
-sub_80124D4: @ 80124D4
- ldr r0, =gUnknown_03005000
- ldr r1, =0x000009e6
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_80124D4
-
- .align 2, 0 @ don't pad with nop
diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc
index 28f60be46..4c7646d6f 100644
--- a/asm/macros/battle_ai_script.inc
+++ b/asm/macros/battle_ai_script.inc
@@ -1,206 +1,206 @@
- .macro if_random_less_than param0, param1
+ .macro if_random_less_than param0:req, param1:req
.byte 0x0
.byte \param0
.4byte \param1
.endm
- .macro if_random_greater_than param0, param1
+ .macro if_random_greater_than param0:req, param1:req
.byte 0x1
.byte \param0
.4byte \param1
.endm
- .macro if_random_equal param0, param1
+ .macro if_random_equal param0:req, param1:req
.byte 0x2
.byte \param0
.4byte \param1
.endm
- .macro if_random_not_equal param0, param1
+ .macro if_random_not_equal param0:req, param1:req
.byte 0x3
.byte \param0
.4byte \param1
.endm
- .macro score param0
+ .macro score param0:req
.byte 0x4
.byte \param0
.endm
- .macro if_hp_less_than battler, param1, param2
+ .macro if_hp_less_than battler:req, param1:req, param2:req
.byte 0x5
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_hp_more_than battler, param1, param2
+ .macro if_hp_more_than battler:req, param1:req, param2:req
.byte 0x6
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_hp_equal battler, param1, param2
+ .macro if_hp_equal battler:req, param1:req, param2:req
.byte 0x7
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_hp_not_equal battler, param1, param2
+ .macro if_hp_not_equal battler:req, param1:req, param2:req
.byte 0x8
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_status battler, status1, param2
+ .macro if_status battler:req, status1:req, param2:req
.byte 0x9
.byte \battler
.4byte \status1
.4byte \param2
.endm
- .macro if_not_status battler, status1, param2
+ .macro if_not_status battler:req, status1:req, param2:req
.byte 0xa
.byte \battler
.4byte \status1
.4byte \param2
.endm
- .macro if_status2 battler, status2, param2
+ .macro if_status2 battler:req, status2:req, param2:req
.byte 0xb
.byte \battler
.4byte \status2
.4byte \param2
.endm
- .macro if_not_status2 battler, status2, param2
+ .macro if_not_status2 battler:req, status2:req, param2:req
.byte 0xc
.byte \battler
.4byte \status2
.4byte \param2
.endm
- .macro if_status3 battler, status3, param2
+ .macro if_status3 battler:req, status3:req, param2:req
.byte 0xd
.byte \battler
.4byte \status3
.4byte \param2
.endm
- .macro if_not_status3 battler, status3, param2
+ .macro if_not_status3 battler:req, status3:req, param2:req
.byte 0xe
.byte \battler
.4byte \status3
.4byte \param2
.endm
- .macro if_side_affecting battler, sidestatus, param2
+ .macro if_side_affecting battler:req, sidestatus:req, param2:req
.byte 0xf
.byte \battler
.4byte \sidestatus
.4byte \param2
.endm
- .macro if_not_side_affecting battler, sidestatus, param2
+ .macro if_not_side_affecting battler:req, sidestatus:req, param2:req
.byte 0x10
.byte \battler
.4byte \sidestatus
.4byte \param2
.endm
- .macro if_less_than param0, param1
+ .macro if_less_than param0:req, param1:req
.byte 0x11
.byte \param0
.4byte \param1
.endm
- .macro if_more_than param0, param1
+ .macro if_more_than param0:req, param1:req
.byte 0x12
.byte \param0
.4byte \param1
.endm
- .macro if_equal param0, param1
+ .macro if_equal param0:req, param1:req
.byte 0x13
.byte \param0
.4byte \param1
.endm
- .macro if_not_equal param0, param1
+ .macro if_not_equal param0:req, param1:req
.byte 0x14
.byte \param0
.4byte \param1
.endm
- .macro if_less_than_ptr param0, param1
+ .macro if_less_than_ptr param0:req, param1:req
.byte 0x15
.4byte \param0
.4byte \param1
.endm
- .macro if_more_than_ptr param0, param1
+ .macro if_more_than_ptr param0:req, param1:req
.byte 0x16
.4byte \param0
.4byte \param1
.endm
- .macro if_equal_ptr param0, param1
+ .macro if_equal_ptr param0:req, param1:req
.byte 0x17
.4byte \param0
.4byte \param1
.endm
- .macro if_not_equal_ptr param0, param1
+ .macro if_not_equal_ptr param0:req, param1:req
.byte 0x18
.4byte \param0
.4byte \param1
.endm
- .macro if_move param0, param1
+ .macro if_move param0:req, param1:req
.byte 0x19
.2byte \param0
.4byte \param1
.endm
- .macro if_not_move param0, param1
+ .macro if_not_move param0:req, param1:req
.byte 0x1a
.2byte \param0
.4byte \param1
.endm
- .macro if_in_bytes param0, param1
+ .macro if_in_bytes param0:req, param1:req
.byte 0x1b
.4byte \param0
.4byte \param1
.endm
- .macro if_not_in_bytes param0, param1
+ .macro if_not_in_bytes param0:req, param1:req
.byte 0x1c
.4byte \param0
.4byte \param1
.endm
- .macro if_in_hwords param0, param1
+ .macro if_in_hwords param0:req, param1:req
.byte 0x1d
.4byte \param0
.4byte \param1
.endm
- .macro if_not_in_hwords param0, param1
+ .macro if_not_in_hwords param0:req, param1:req
.byte 0x1e
.4byte \param0
.4byte \param1
.endm
- .macro if_user_has_attacking_move param0
+ .macro if_user_has_attacking_move param0:req
.byte 0x1f
.4byte \param0
.endm
- .macro if_user_has_no_attacking_moves param0
+ .macro if_user_has_no_attacking_moves param0:req
.byte 0x20
.4byte \param0
.endm
@@ -209,7 +209,7 @@
.byte 0x21
.endm
- .macro get_type param0
+ .macro get_type param0:req
.byte 0x22
.byte \param0
.endm
@@ -222,30 +222,30 @@
.byte 0x24
.endm
- .macro get_last_used_bank_move battler
+ .macro get_last_used_bank_move battler:req
.byte 0x25
.byte \battler
.endm
- .macro if_equal_ param0, param1
+ .macro if_equal_ param0:req, param1:req
.byte 0x26
.byte \param0
.4byte \param1
.endm
- .macro if_not_equal_ param0, param1
+ .macro if_not_equal_ param0:req, param1:req
.byte 0x27
.byte \param0
.4byte \param1
.endm
- .macro if_user_goes param0, param1
+ .macro if_user_goes param0:req, param1:req
.byte 0x28
.byte \param0
.4byte \param1
.endm
- .macro if_user_doesnt_go param0, param1
+ .macro if_user_doesnt_go param0:req, param1:req
.byte 0x29
.byte \param0
.4byte \param1
@@ -259,7 +259,7 @@
.byte 0x2b
.endm
- .macro count_usable_party_mons battler
+ .macro count_usable_party_mons battler:req
.byte 0x2c
.byte \battler
.endm
@@ -272,7 +272,7 @@
.byte 0x2e
.endm
- .macro get_ability battler
+ .macro get_ability battler:req
.byte 0x2f
.byte \battler
.endm
@@ -281,7 +281,7 @@
.byte 0x30
.endm
- .macro if_type_effectiveness param0, param1
+ .macro if_type_effectiveness param0:req, param1:req
.byte 0x31
.byte \param0
.4byte \param1
@@ -295,14 +295,14 @@
.byte 0x33
.endm
- .macro if_status_in_party battler, status1, param2
+ .macro if_status_in_party battler:req, status1:req, param2:req
.byte 0x34
.byte \battler
.4byte \status1
.4byte \param2
.endm
- .macro if_status_not_in_party battler, status1, param2
+ .macro if_status_not_in_party battler:req, status1:req, param2:req
.byte 0x35
.byte \battler
.4byte \status1
@@ -313,19 +313,19 @@
.byte 0x36
.endm
- .macro if_effect param0, param1
+ .macro if_effect param0:req, param1:req
.byte 0x37
.byte \param0
.4byte \param1
.endm
- .macro if_not_effect param0, param1
+ .macro if_not_effect param0:req, param1:req
.byte 0x38
.byte \param0
.4byte \param1
.endm
- .macro if_stat_level_less_than battler, stat, param2, param3
+ .macro if_stat_level_less_than battler:req, stat:req, param2:req, param3:req
.byte 0x39
.byte \battler
.byte \stat
@@ -333,7 +333,7 @@
.4byte \param3
.endm
- .macro if_stat_level_more_than battler, stat, param2, param3
+ .macro if_stat_level_more_than battler:req, stat:req, param2:req, param3:req
.byte 0x3a
.byte \battler
.byte \stat
@@ -341,7 +341,7 @@
.4byte \param3
.endm
- .macro if_stat_level_equal battler, stat, param2, param3
+ .macro if_stat_level_equal battler:req, stat:req, param2:req, param3:req
.byte 0x3b
.byte \battler
.byte \stat
@@ -349,7 +349,7 @@
.4byte \param3
.endm
- .macro if_stat_level_not_equal battler, stat, param2, param3
+ .macro if_stat_level_not_equal battler:req, stat:req, param2:req, param3:req
.byte 0x3c
.byte \battler
.byte \stat
@@ -357,52 +357,52 @@
.4byte \param3
.endm
- .macro if_can_faint param0
+ .macro if_can_faint param0:req
.byte 0x3d
.4byte \param0
.endm
- .macro if_cant_faint param0
+ .macro if_cant_faint param0:req
.byte 0x3e
.4byte \param0
.endm
- .macro if_has_move battler, param1, param2
+ .macro if_has_move battler:req, param1:req, param2:req
.byte 0x3f
.byte \battler
.2byte \param1
.4byte \param2
.endm
- .macro if_doesnt_have_move battler, param1, param2
+ .macro if_doesnt_have_move battler:req, param1:req, param2:req
.byte 0x40
.byte \battler
.2byte \param1
.4byte \param2
.endm
- .macro if_has_move_with_effect battler, param1, param2
+ .macro if_has_move_with_effect battler:req, param1:req, param2:req
.byte 0x41
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_doesnt_have_move_with_effect battler, param1, param2
+ .macro if_doesnt_have_move_with_effect battler:req, param1:req, param2:req
.byte 0x42
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_any_move_disabled_or_encored battler, param1, param2
+ .macro if_any_move_disabled_or_encored battler:req, param1:req, param2:req
.byte 0x43
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro if_curr_move_disabled_or_encored param0, param1
+ .macro if_curr_move_disabled_or_encored param0:req, param1:req
.byte 0x44
.byte \param0
.4byte \param1
@@ -412,7 +412,7 @@
.byte 0x45
.endm
- .macro if_random_safari_flee param0
+ .macro if_random_safari_flee param0:req
.byte 0x46
.4byte \param0
.endm
@@ -421,22 +421,22 @@
.byte 0x47
.endm
- .macro get_hold_effect battler
+ .macro get_hold_effect battler:req
.byte 0x48
.byte \battler
.endm
- .macro get_gender battler
+ .macro get_gender battler:req
.byte 0x49
.byte \battler
.endm
- .macro is_first_turn_for battler
+ .macro is_first_turn_for battler:req
.byte 0x4a
.byte \battler
.endm
- .macro get_stockpile_count battler
+ .macro get_stockpile_count battler:req
.byte 0x4b
.byte \battler
.endm
@@ -445,7 +445,7 @@
.byte 0x4c
.endm
- .macro get_used_held_item battler
+ .macro get_used_held_item battler:req
.byte 0x4d
.byte \battler
.endm
@@ -462,7 +462,7 @@
.byte 0x50
.endm
- .macro get_protect_count battler
+ .macro get_protect_count battler:req
.byte 0x51
.byte \battler
.endm
@@ -491,12 +491,12 @@
.byte 0x57
.endm
- .macro call param0
+ .macro call param0:req
.byte 0x58
.4byte \param0
.endm
- .macro goto param0
+ .macro goto param0:req
.byte 0x59
.4byte \param0
.endm
@@ -505,46 +505,46 @@
.byte 0x5a
.endm
- .macro if_level_cond param0, param1
+ .macro if_level_cond param0:req, param1:req
.byte 0x5b
.byte \param0
.4byte \param1
.endm
- .macro if_target_taunted param0
+ .macro if_target_taunted param0:req
.byte 0x5c
.4byte \param0
.endm
- .macro if_target_not_taunted param0
+ .macro if_target_not_taunted param0:req
.byte 0x5d
.4byte \param0
.endm
- .macro if_target_is_ally param0
+ .macro if_target_is_ally param0:req
.byte 0x5e
.4byte \param0
.endm
- .macro is_of_type battler, type
+ .macro is_of_type battler:req, type:req
.byte 0x5f
.byte \battler
.byte \type
.endm
- .macro check_ability battler, ability
+ .macro check_ability battler:req, ability:req
.byte 0x60
.byte \battler
.byte \ability
.endm
- .macro if_flash_fired battler, param1
+ .macro if_flash_fired battler:req, param1:req
.byte 0x61
.byte \battler
.4byte \param1
.endm
- .macro if_holds_item battler, param1, param2
+ .macro if_holds_item battler:req, param1:req, param2:req
.byte 0x62
.byte \battler
.2byte \param1
@@ -572,48 +572,48 @@
get_type AI_TYPE2_TARGET
.endm
- .macro if_ability battler, ability, ptr
+ .macro if_ability battler:req, ability:req, ptr:req
check_ability \battler, \ability
if_equal 1, \ptr
.endm
- .macro if_no_ability battler, ability, ptr
+ .macro if_no_ability battler:req, ability:req, ptr:req
check_ability \battler, \ability
if_equal 0, \ptr
.endm
- .macro if_type battler, type, ptr
+ .macro if_type battler:req, type:req, ptr:req
is_of_type \battler, \type
if_equal 1, \ptr
.endm
- .macro if_no_type battler, type, ptr
+ .macro if_no_type battler:req, type:req, ptr:req
is_of_type \battler, \type
if_equal 0, \ptr
.endm
- .macro if_target_faster ptr
+ .macro if_target_faster ptr:req
if_user_goes 1, \ptr
.endm
- .macro if_user_faster ptr
+ .macro if_user_faster ptr:req
if_user_goes 0, \ptr
.endm
- .macro if_double_battle ptr
+ .macro if_double_battle ptr:req
is_double_battle
if_equal 1, \ptr
.endm
- .macro if_not_double_battle ptr
+ .macro if_not_double_battle ptr:req
is_double_battle
if_equal 0, \ptr
.endm
- .macro if_any_move_disabled battler, ptr
+ .macro if_any_move_disabled battler:req, ptr:req
if_any_move_disabled_or_encored \battler, 0, \ptr
.endm
- .macro if_any_move_encored battler, ptr
+ .macro if_any_move_encored battler:req, ptr:req
if_any_move_disabled_or_encored \battler, 1, \ptr
.endm
diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc
index 1d5b01de7..6ccd8d505 100644
--- a/asm/macros/battle_anim_script.inc
+++ b/asm/macros/battle_anim_script.inc
@@ -1,26 +1,30 @@
@ commands
- .macro loadspritegfx param0
+ .macro loadspritegfx tag:req
.byte 0x0
- .2byte \param0
+ .2byte \tag
.endm
- .macro unloadspritegfx param0
+ .macro unloadspritegfx tag:req
.byte 0x1
- .2byte \param0
+ .2byte \tag
.endm
- .macro createsprite template, priority, argv:vararg
+.macro createsprite template:req, anim_battler:req, subpriority_offset:req, argv:vararg
.byte 0x02
.4byte \template
- .byte \priority
+ .if \anim_battler == ANIM_TARGET
+ .byte 0x80 | (\subpriority_offset & 0x7F)
+ .else
+ .byte (\subpriority_offset & 0x7F)
+ .endif
.byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2
.Lsprite_\@_1:
.2byte \argv
.Lsprite_\@_2:
.endm
- .macro createvisualtask addr, priority, argv:vararg
+ .macro createvisualtask addr:req, priority:req, argv:vararg
.byte 0x03
.4byte \addr
.byte \priority
@@ -30,7 +34,7 @@
.Lcreatetask_\@_2:
.endm
- .macro delay param0
+ .macro delay param0:req
.byte 0x4
.byte \param0
.endm
@@ -51,22 +55,22 @@
.byte 0x8
.endm
- .macro playse param0
+ .macro playse se:req
.byte 0x9
- .2byte \param0
+ .2byte \se
.endm
- .macro monbg battler
+ .macro monbg battler:req
.byte 0xa
.byte \battler
.endm
- .macro clearmonbg battler
+ .macro clearmonbg battler:req
.byte 0xb
.byte \battler
.endm
- .macro setalpha eva, evb
+ .macro setalpha eva:req, evb:req
.byte 0x0C
.2byte ((\evb) << 8) | (\eva)
.endm
@@ -75,7 +79,7 @@
.byte 0xd
.endm
- .macro call param0
+ .macro call param0:req
.byte 0xe
.4byte \param0
.endm
@@ -84,32 +88,32 @@
.byte 0xf
.endm
- .macro setarg param0, param1
+ .macro setarg param0:req, param1:req
.byte 0x10
.byte \param0
.2byte \param1
.endm
- .macro choosetwoturnanim param0, param1
+ .macro choosetwoturnanim param0:req, param1:req
.byte 0x11
.4byte \param0
.4byte \param1
.endm
- .macro jumpifmoveturn param0, param1
+ .macro jumpifmoveturn param0:req, ptr:req
.byte 0x12
.byte \param0
- .4byte \param1
+ .4byte \ptr
.endm
- .macro goto param0
+ .macro goto ptr:req
.byte 0x13
- .4byte \param0
+ .4byte \ptr
.endm
- .macro fadetobg param0
+ .macro fadetobg bg:req
.byte 0x14
- .byte \param0
+ .byte \bg
.endm
.macro restorebg
@@ -124,52 +128,52 @@
.byte 0x17
.endm
- .macro changebg param0
+ .macro changebg bg:req
.byte 0x18
- .byte \param0
+ .byte \bg
.endm
- .macro playsewithpan param0, param1
+ .macro playsewithpan se:req, pan:req
.byte 0x19
- .2byte \param0
- .byte \param1
+ .2byte \se
+ .byte \pan
.endm
- .macro setpan param0
+ .macro setpan pan:req
.byte 0x1a
- .byte \param0
+ .byte \pan
.endm
- .macro panse_1B param0, param1, param2, param3, param4
+ .macro panse_1B se:req, param1:req, param2:req, param3:req, param4
.byte 0x1b
- .2byte \param0
+ .2byte \se
.byte \param1
.byte \param2
.byte \param3
.byte \param4
.endm
- .macro loopsewithpan param0, param1, param2, param3
+ .macro loopsewithpan se:req, param1:req, param2:req, param3:req
.byte 0x1c
- .2byte \param0
+ .2byte \se
.byte \param1
.byte \param2
.byte \param3
.endm
- .macro waitplaysewithpan param0, param1, param2
+ .macro waitplaysewithpan se:req, param1:req, param2:req
.byte 0x1d
- .2byte \param0
+ .2byte \se
.byte \param1
.byte \param2
.endm
- .macro setbldcnt param0
+ .macro setbldcnt param0:req
.byte 0x1e
.2byte \param0
.endm
- .macro createsoundtask addr, argv:vararg
+ .macro createsoundtask addr:req, argv:vararg
.byte 0x1F
.4byte \addr
.byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
@@ -182,54 +186,54 @@
.byte 0x20
.endm
- .macro jumpargeq param0, param1, param2
+ .macro jumpargeq param0:req, param1:req, ptr:req
.byte 0x21
.byte \param0
.2byte \param1
- .4byte \param2
+ .4byte \ptr
.endm
- .macro monbg_22 battler
+ .macro monbg_22 battler:req
.byte 0x22
.byte \battler
.endm
- .macro clearmonbg_23 battler
+ .macro clearmonbg_23 battler:req
.byte 0x23
.byte \battler
.endm
- .macro jumpifcontest param0
+ .macro jumpifcontest ptr:req
.byte 0x24
- .4byte \param0
+ .4byte \ptr
.endm
- .macro fadetobgfromset param0, param1, param2
+ .macro fadetobgfromset param0:req, param1:req, param2:req
.byte 0x25
.byte \param0
.byte \param1
.byte \param2
.endm
- .macro panse_26 param0, param1, param2, param3, param4
+ .macro panse_26 se:req, param1:req, param2:req, param3:req, param4
.byte 0x26
- .2byte \param0
+ .2byte \se
.byte \param1
.byte \param2
.byte \param3
.byte \param4
.endm
- .macro panse_27 param0, param1, param2, param3, param4
+ .macro panse_27 se:req, param1:req, param2:req, param3:req, param4
.byte 0x27
- .2byte \param0
+ .2byte \se
.byte \param1
.byte \param2
.byte \param3
.byte \param4
.endm
- .macro monbgprio_28 battler
+ .macro monbgprio_28 battler:req
.byte 0x28
.byte \battler
.endm
@@ -238,27 +242,27 @@
.byte 0x29
.endm
- .macro monbgprio_2A battler
+ .macro monbgprio_2A battler:req
.byte 0x2a
.byte \battler
.endm
- .macro invisible battler
+ .macro invisible battler:req
.byte 0x2b
.byte \battler
.endm
- .macro visible battler
+ .macro visible battler:req
.byte 0x2c
.byte \battler
.endm
- .macro doublebattle_2D battler
+ .macro doublebattle_2D battler:req
.byte 0x2d
.byte \battler
.endm
- .macro doublebattle_2E battler
+ .macro doublebattle_2E battler:req
.byte 0x2e
.byte \battler
.endm
@@ -268,14 +272,14 @@
.endm
@ useful macros
- .macro jumpreteq value, ptr
+ .macro jumpreteq value:req, ptr:req
jumpargeq ARG_RET_ID, \value, \ptr
.endm
- .macro jumprettrue ptr
+ .macro jumprettrue ptr:req
jumpreteq TRUE, \ptr
.endm
- .macro jumpretfalse ptr
+ .macro jumpretfalse ptr:req
jumpreteq FALSE, \ptr
.endm
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc
index 927a0edd1..6b0e285b6 100644
--- a/asm/macros/battle_script.inc
+++ b/asm/macros/battle_script.inc
@@ -3,7 +3,7 @@
.byte 0x0
.endm
- .macro accuracycheck param0, param1
+ .macro accuracycheck param0:req, param1:req
.byte 0x1
.4byte \param0
.2byte \param1
@@ -45,12 +45,12 @@
.byte 0xa
.endm
- .macro healthbarupdate battler
+ .macro healthbarupdate battler:req
.byte 0xb
.byte \battler
.endm
- .macro datahpupdate battler
+ .macro datahpupdate battler:req
.byte 0xc
.byte \battler
.endm
@@ -67,29 +67,29 @@
.byte 0xf
.endm
- .macro printstring param0
+ .macro printstring id:req
.byte 0x10
- .2byte \param0
+ .2byte \id
.endm
- .macro printselectionstring param0
+ .macro printselectionstring id:req
.byte 0x11
- .2byte \param0
+ .2byte \id
.endm
- .macro waitmessage param0
+ .macro waitmessage param0:req
.byte 0x12
.2byte \param0
.endm
- .macro printfromtable param0
+ .macro printfromtable ptr:req
.byte 0x13
- .4byte \param0
+ .4byte \ptr
.endm
- .macro printselectionstringfromtable param0
+ .macro printselectionstringfromtable ptr:req
.byte 0x14
- .4byte \param0
+ .4byte \ptr
.endm
.macro seteffectwithchance
@@ -104,110 +104,110 @@
.byte 0x17
.endm
- .macro clearstatusfromeffect battler
+ .macro clearstatusfromeffect battler:req
.byte 0x18
.byte \battler
.endm
- .macro tryfaintmon battler, param1, param2
+ .macro tryfaintmon battler:req, param1:req, ptr:req
.byte 0x19
.byte \battler
.byte \param1
- .4byte \param2
+ .4byte \ptr
.endm
- .macro dofaintanimation battler
+ .macro dofaintanimation battler:req
.byte 0x1a
.byte \battler
.endm
- .macro cleareffectsonfaint battler
+ .macro cleareffectsonfaint battler:req
.byte 0x1b
.byte \battler
.endm
- .macro jumpifstatus battler, status1, param2
+ .macro jumpifstatus battler:req, status1:req, ptr:req
.byte 0x1c
.byte \battler
.4byte \status1
- .4byte \param2
+ .4byte \ptr
.endm
- .macro jumpifstatus2 battler, status2, param2
+ .macro jumpifstatus2 battler:req, status2:req, ptr:req
.byte 0x1d
.byte \battler
.4byte \status2
- .4byte \param2
+ .4byte \ptr
.endm
- .macro jumpifability param0, ability, param2
+ .macro jumpifability param0:req, ability:req, ptr:req
.byte 0x1e
.byte \param0
.byte \ability
- .4byte \param2
+ .4byte \ptr
.endm
- .macro jumpifsideaffecting battler, sidestatus, param2
+ .macro jumpifsideaffecting battler:req, sidestatus:req, ptr:req
.byte 0x1f
.byte \battler
.2byte \sidestatus
- .4byte \param2
+ .4byte \ptr
.endm
- .macro jumpifstat battler, ifflag, stat, param3, param4
+ .macro jumpifstat battler:req, ifflag:req, stat:req, value:req, ptr
.byte 0x20
.byte \battler
.byte \ifflag
.byte \stat
- .byte \param3
- .4byte \param4
+ .byte \value
+ .4byte \ptr
.endm
- .macro jumpifstatus3condition battler, status3, param2, param3
+ .macro jumpifstatus3condition battler:req, status3:req, param2:req, ptr:req
.byte 0x21
.byte \battler
.4byte \status3
.byte \param2
- .4byte \param3
+ .4byte \ptr
.endm
- .macro jumpiftype battler, type, param2
+ .macro jumpiftype battler:req, type:req, ptr:req
.byte 0x22
.byte \battler
.byte \type
- .4byte \param2
+ .4byte \ptr
.endm
- .macro getexp battler
+ .macro getexp battler:req
.byte 0x23
.byte \battler
.endm
- .macro atk24 param0
+ .macro atk24 ptr:req
.byte 0x24
- .4byte \param0
+ .4byte \ptr
.endm
.macro movevaluescleanup
.byte 0x25
.endm
- .macro setmultihit param0
+ .macro setmultihit value:req
.byte 0x26
- .byte \param0
+ .byte \value
.endm
- .macro decrementmultihit param0
+ .macro decrementmultihit value:req
.byte 0x27
- .4byte \param0
+ .4byte \value
.endm
- .macro goto param0
+ .macro goto ptr:req
.byte 0x28
- .4byte \param0
+ .4byte \ptr
.endm
- .macro jumpifbyte ifflag, param1, param2, param3
+ .macro jumpifbyte ifflag:req, param1:req, param2:req, param3:req
.byte 0x29
.byte \ifflag
.4byte \param1
@@ -215,7 +215,7 @@
.4byte \param3
.endm
- .macro jumpifhalfword ifflag, param1, param2, param3
+ .macro jumpifhalfword ifflag:req, param1:req, param2:req, param3:req
.byte 0x2a
.byte \ifflag
.4byte \param1
@@ -223,7 +223,7 @@
.4byte \param3
.endm
- .macro jumpifword ifflag, param1, param2, param3
+ .macro jumpifword ifflag:req, param1:req, param2:req, param3:req
.byte 0x2b
.byte \ifflag
.4byte \param1
@@ -231,7 +231,7 @@
.4byte \param3
.endm
- .macro jumpifarrayequal param0, param1, param2, param3
+ .macro jumpifarrayequal param0:req, param1:req, param2:req, param3:req
.byte 0x2c
.4byte \param0
.4byte \param1
@@ -239,7 +239,7 @@
.4byte \param3
.endm
- .macro jumpifarraynotequal param0, param1, param2, param3
+ .macro jumpifarraynotequal param0:req, param1:req, param2:req, param3:req
.byte 0x2d
.4byte \param0
.4byte \param1
@@ -247,32 +247,32 @@
.4byte \param3
.endm
- .macro setbyte param0, param1
+ .macro setbyte ptr:req, param1:req
.byte 0x2e
- .4byte \param0
+ .4byte \ptr
.byte \param1
.endm
- .macro addbyte param0, param1
+ .macro addbyte ptr:req, param1:req
.byte 0x2f
- .4byte \param0
+ .4byte \ptr
.byte \param1
.endm
- .macro subbyte param0, param1
+ .macro subbyte ptr:req, param1:req
.byte 0x30
- .4byte \param0
+ .4byte \ptr
.byte \param1
.endm
- .macro copyarray param0, param1, param2
+ .macro copyarray param0:req, param1:req, param2:req
.byte 0x31
.4byte \param0
.4byte \param1
.byte \param2
.endm
- .macro copyarraywithindex param0, param1, param2, param3
+ .macro copyarraywithindex param0:req, param1:req, param2:req, param3:req
.byte 0x32
.4byte \param0
.4byte \param1
@@ -280,43 +280,43 @@
.byte \param3
.endm
- .macro orbyte param0, param1
+ .macro orbyte ptr:req, param1:req
.byte 0x33
- .4byte \param0
+ .4byte \ptr
.byte \param1
.endm
- .macro orhalfword param0, param1
+ .macro orhalfword ptr:req, param1:req
.byte 0x34
- .4byte \param0
+ .4byte \ptr
.2byte \param1
.endm
- .macro orword param0, param1
+ .macro orword ptr:req, param1:req
.byte 0x35
- .4byte \param0
+ .4byte \ptr
.4byte \param1
.endm
- .macro bicbyte param0, param1
+ .macro bicbyte ptr:req, param1:req
.byte 0x36
- .4byte \param0
+ .4byte \ptr
.byte \param1
.endm
- .macro bichalfword param0, param1
+ .macro bichalfword ptr:req, param1:req
.byte 0x37
- .4byte \param0
+ .4byte \ptr
.2byte \param1
.endm
- .macro bicword param0, param1
+ .macro bicword ptr:req, param1:req
.byte 0x38
- .4byte \param0
+ .4byte \ptr
.4byte \param1
.endm
- .macro pause param0
+ .macro pause param0:req
.byte 0x39
.2byte \param0
.endm
@@ -325,7 +325,7 @@
.byte 0x3a
.endm
- .macro healthbar_update battler
+ .macro healthbar_update battler:req
.byte 0x3b
.byte \battler
.endm
@@ -346,41 +346,41 @@
.byte 0x3f
.endm
- .macro jumpifaffectedbyprotect param0
+ .macro jumpifaffectedbyprotect ptr:req
.byte 0x40
- .4byte \param0
+ .4byte \ptr
.endm
- .macro call param0
+ .macro call ptr:req
.byte 0x41
- .4byte \param0
+ .4byte \ptr
.endm
- .macro jumpiftype2 battler, type, param2
+ .macro jumpiftype2 battler:req, type:req, ptr:req
.byte 0x42
.byte \battler
.byte \type
- .4byte \param2
+ .4byte \ptr
.endm
- .macro jumpifabilitypresent ability, param1
+ .macro jumpifabilitypresent ability:req, ptr:req
.byte 0x43
.byte \ability
- .4byte \param1
+ .4byte \ptr
.endm
.macro endselectionscript
.byte 0x44
.endm
- .macro playanimation battler, param1, param2
+ .macro playanimation battler:req, param1:req, param2:req
.byte 0x45
.byte \battler
.byte \param1
.4byte \param2
.endm
- .macro playanimation2 battler, param1, param2
+ .macro playanimation2 battler:req, param1:req, param2:req
.byte 0x46
.byte \battler
.4byte \param1
@@ -391,14 +391,14 @@
.byte 0x47
.endm
- .macro playstatchangeanimation battler, param1, param2
+ .macro playstatchangeanimation battler:req, param1:req, param2:req
.byte 0x48
.byte \battler
.byte \param1
.byte \param2
.endm
- .macro moveend param0, param1
+ .macro moveend param0:req, param1:req
.byte 0x49
.byte \param0
.byte \param1
@@ -412,61 +412,61 @@
.byte 0x4b
.endm
- .macro getswitchedmondata battler
+ .macro getswitchedmondata battler:req
.byte 0x4c
.byte \battler
.endm
- .macro switchindataupdate battler
+ .macro switchindataupdate battler:req
.byte 0x4d
.byte \battler
.endm
- .macro switchinanim battler, dontclearsubstitutebit
+ .macro switchinanim battler:req, dontclearsubstitutebit:req
.byte 0x4e
.byte \battler
.byte \dontclearsubstitutebit
.endm
- .macro jumpifcantswitch battler, param1
+ .macro jumpifcantswitch battler:req, ptr:req
.byte 0x4f
.byte \battler
- .4byte \param1
+ .4byte \ptr
.endm
- .macro openpartyscreen param0, param1
+ .macro openpartyscreen param0:req, param1:req
.byte 0x50
.byte \param0
.4byte \param1
.endm
- .macro switchhandleorder battler, param1
+ .macro switchhandleorder battler:req, param1:req
.byte 0x51
.byte \battler
.byte \param1
.endm
- .macro switchineffects battler
+ .macro switchineffects battler:req
.byte 0x52
.byte \battler
.endm
- .macro trainerslidein battler
+ .macro trainerslidein battler:req
.byte 0x53
.byte \battler
.endm
- .macro playse param0
+ .macro playse param0:req
.byte 0x54
.2byte \param0
.endm
- .macro fanfare param0
+ .macro fanfare param0:req
.byte 0x55
.2byte \param0
.endm
- .macro playfaintcry battler
+ .macro playfaintcry battler:req
.byte 0x56
.byte \battler
.endm
@@ -475,29 +475,29 @@
.byte 0x57
.endm
- .macro returntoball battler
+ .macro returntoball battler:req
.byte 0x58
.byte \battler
.endm
- .macro handlelearnnewmove param0, param1, param2
+ .macro handlelearnnewmove param0:req, param1:req, param2:req
.byte 0x59
.4byte \param0
.4byte \param1
.byte \param2
.endm
- .macro yesnoboxlearnmove param0
+ .macro yesnoboxlearnmove param0:req
.byte 0x5a
.4byte \param0
.endm
- .macro yesnoboxstoplearningmove param0
+ .macro yesnoboxstoplearningmove param0:req
.byte 0x5b
.4byte \param0
.endm
- .macro hitanimation battler
+ .macro hitanimation battler:req
.byte 0x5c
.byte \battler
.endm
@@ -506,7 +506,7 @@
.byte 0x5d
.endm
- .macro atk5E battler
+ .macro atk5E battler:req
.byte 0x5e
.byte \battler
.endm
@@ -515,38 +515,38 @@
.byte 0x5f
.endm
- .macro incrementgamestat param0
+ .macro incrementgamestat param0:req
.byte 0x60
.byte \param0
.endm
- .macro drawpartystatussummary battler
+ .macro drawpartystatussummary battler:req
.byte 0x61
.byte \battler
.endm
- .macro hidepartystatussummary battler
+ .macro hidepartystatussummary battler:req
.byte 0x62
.byte \battler
.endm
- .macro jumptocalledmove param0
+ .macro jumptocalledmove param0:req
.byte 0x63
.byte \param0
.endm
- .macro statusanimation battler
+ .macro statusanimation battler:req
.byte 0x64
.byte \battler
.endm
- .macro status2animation battler, status2
+ .macro status2animation battler:req, status2:req
.byte 0x65
.byte \battler
.4byte \status2
.endm
- .macro chosenstatusanimation battler, param1, param2
+ .macro chosenstatusanimation battler:req, param1:req, param2:req
.byte 0x66
.byte \battler
.byte \param1
@@ -565,7 +565,7 @@
.byte 0x69
.endm
- .macro removeitem battler
+ .macro removeitem battler:req
.byte 0x6a
.byte \battler
.endm
@@ -586,12 +586,12 @@
.byte 0x6e
.endm
- .macro makevisible battler
+ .macro makevisible battler:req
.byte 0x6f
.byte \battler
.endm
- .macro recordlastability battler
+ .macro recordlastability battler:req
.byte 0x70
.byte \battler
.endm
@@ -600,17 +600,17 @@
.byte 0x71
.endm
- .macro jumpifplayerran param0
+ .macro jumpifplayerran ptr:req
.byte 0x72
- .4byte \param0
+ .4byte \ptr
.endm
- .macro hpthresholds battler
+ .macro hpthresholds battler:req
.byte 0x73
.byte \battler
.endm
- .macro hpthresholds2 battler
+ .macro hpthresholds2 battler:req
.byte 0x74
.byte \battler
.endm
@@ -619,7 +619,7 @@
.byte 0x75
.endm
- .macro various battler, param1
+ .macro various battler:req, param1:req
.byte 0x76
.byte \battler
.byte \param1
@@ -637,12 +637,12 @@
.byte 0x79
.endm
- .macro jumpifnexttargetvalid param0
+ .macro jumpifnexttargetvalid ptr:req
.byte 0x7a
- .4byte \param0
+ .4byte \ptr
.endm
- .macro tryhealhalfhealth param0, battler
+ .macro tryhealhalfhealth param0:req, battler:req
.byte 0x7b
.4byte \param0
.byte \battler
@@ -664,26 +664,26 @@
.byte 0x7f
.endm
- .macro manipulatedamage param0
+ .macro manipulatedamage param0:req
.byte 0x80
.byte \param0
.endm
- .macro trysetrest param0
+ .macro trysetrest param0:req
.byte 0x81
.4byte \param0
.endm
- .macro jumpifnotfirstturn param0
+ .macro jumpifnotfirstturn ptr:req
.byte 0x82
- .4byte \param0
+ .4byte \ptr
.endm
.macro nop
.byte 0x83
.endm
- .macro jumpifcantmakeasleep param0
+ .macro jumpifcantmakeasleep param0:req
.byte 0x84
.4byte \param0
.endm
@@ -692,12 +692,12 @@
.byte 0x85
.endm
- .macro stockpiletobasedamage param0
+ .macro stockpiletobasedamage param0:req
.byte 0x86
.4byte \param0
.endm
- .macro stockpiletohpheal param0
+ .macro stockpiletohpheal param0:req
.byte 0x87
.4byte \param0
.endm
@@ -706,7 +706,7 @@
.byte 0x88
.endm
- .macro statbuffchange param0, param1
+ .macro statbuffchange param0:req, param1:req
.byte 0x89
.byte \param0
.4byte \param1
@@ -724,7 +724,7 @@
.byte 0x8c
.endm
- .macro setmultihitcounter param0
+ .macro setmultihitcounter param0:req
.byte 0x8d
.byte \param0
.endm
@@ -733,12 +733,12 @@
.byte 0x8e
.endm
- .macro forcerandomswitch param0
+ .macro forcerandomswitch param0:req
.byte 0x8f
.4byte \param0
.endm
- .macro tryconversiontypechange param0
+ .macro tryconversiontypechange param0:req
.byte 0x90
.4byte \param0
.endm
@@ -751,7 +751,7 @@
.byte 0x92
.endm
- .macro tryKO param0
+ .macro tryKO param0:req
.byte 0x93
.4byte \param0
.endm
@@ -768,12 +768,12 @@
.byte 0x96
.endm
- .macro tryinfatuating param0
+ .macro tryinfatuating param0:req
.byte 0x97
.4byte \param0
.endm
- .macro updatestatusicon battler
+ .macro updatestatusicon battler:req
.byte 0x98
.byte \battler
.endm
@@ -794,7 +794,7 @@
.byte 0x9c
.endm
- .macro mimicattackcopy param0
+ .macro mimicattackcopy param0:req
.byte 0x9d
.4byte \param0
.endm
@@ -811,32 +811,32 @@
.byte 0xa0
.endm
- .macro counterdamagecalculator param0
+ .macro counterdamagecalculator param0:req
.byte 0xa1
.4byte \param0
.endm
- .macro mirrorcoatdamagecalculator param0
+ .macro mirrorcoatdamagecalculator param0:req
.byte 0xa2
.4byte \param0
.endm
- .macro disablelastusedattack param0
+ .macro disablelastusedattack param0:req
.byte 0xa3
.4byte \param0
.endm
- .macro trysetencore param0
+ .macro trysetencore param0:req
.byte 0xa4
.4byte \param0
.endm
- .macro painsplitdmgcalc param0
+ .macro painsplitdmgcalc param0:req
.byte 0xa5
.4byte \param0
.endm
- .macro settypetorandomresistance param0
+ .macro settypetorandomresistance param0:req
.byte 0xa6
.4byte \param0
.endm
@@ -845,12 +845,12 @@
.byte 0xa7
.endm
- .macro copymovepermanently param0
+ .macro copymovepermanently param0:req
.byte 0xa8
.4byte \param0
.endm
- .macro trychoosesleeptalkmove param0
+ .macro trychoosesleeptalkmove param0:req
.byte 0xa9
.4byte \param0
.endm
@@ -867,7 +867,7 @@
.byte 0xac
.endm
- .macro tryspiteppreduce param0
+ .macro tryspiteppreduce param0:req
.byte 0xad
.4byte \param0
.endm
@@ -876,12 +876,12 @@
.byte 0xae
.endm
- .macro cursetarget param0
+ .macro cursetarget param0:req
.byte 0xaf
.4byte \param0
.endm
- .macro trysetspikes param0
+ .macro trysetspikes param0:req
.byte 0xb0
.4byte \param0
.endm
@@ -890,7 +890,7 @@
.byte 0xb1
.endm
- .macro trysetperishsong param0
+ .macro trysetperishsong param0:req
.byte 0xb2
.4byte \param0
.endm
@@ -899,10 +899,10 @@
.byte 0xb3
.endm
- .macro jumpifconfusedandstatmaxed stat, param1
+ .macro jumpifconfusedandstatmaxed stat:req, ptr:req
.byte 0xb4
.byte \stat
- .4byte \param1
+ .4byte \ptr
.endm
.macro furycuttercalc
@@ -925,7 +925,7 @@
.byte 0xb9
.endm
- .macro jumpifnopursuitswitchdmg param0
+ .macro jumpifnopursuitswitchdmg param0:req
.byte 0xba
.4byte \param0
.endm
@@ -934,12 +934,12 @@
.byte 0xbb
.endm
- .macro maxattackhalvehp param0
+ .macro maxattackhalvehp param0:req
.byte 0xbc
.4byte \param0
.endm
- .macro copyfoestats param0
+ .macro copyfoestats param0:req
.byte 0xbd
.4byte \param0
.endm
@@ -952,7 +952,7 @@
.byte 0xbf
.endm
- .macro recoverbasedonsunlight param0
+ .macro recoverbasedonsunlight param0:req
.byte 0xc0
.4byte \param0
.endm
@@ -965,12 +965,12 @@
.byte 0xc2
.endm
- .macro trysetfutureattack param0
+ .macro trysetfutureattack param0:req
.byte 0xc3
.4byte \param0
.endm
- .macro trydobeatup param0, param1
+ .macro trydobeatup param0:req, param1:req
.byte 0xc4
.4byte \param0
.4byte \param1
@@ -992,9 +992,9 @@
.byte 0xc8
.endm
- .macro jumpifattackandspecialattackcannotfall param0
+ .macro jumpifattackandspecialattackcannotfall ptr:req
.byte 0xc9
- .4byte \param0
+ .4byte \ptr
.endm
.macro setforcedtarget
@@ -1009,48 +1009,48 @@
.byte 0xcc
.endm
- .macro cureifburnedparalysedorpoisoned param0
+ .macro cureifburnedparalysedorpoisoned param0:req
.byte 0xcd
.4byte \param0
.endm
- .macro settorment param0
+ .macro settorment param0:req
.byte 0xce
.4byte \param0
.endm
- .macro jumpifnodamage param0
+ .macro jumpifnodamage param0:req
.byte 0xcf
.4byte \param0
.endm
- .macro settaunt param0
+ .macro settaunt param0:req
.byte 0xd0
.4byte \param0
.endm
- .macro trysethelpinghand param0
+ .macro trysethelpinghand param0:req
.byte 0xd1
.4byte \param0
.endm
- .macro tryswapitems param0
+ .macro tryswapitems param0:req
.byte 0xd2
.4byte \param0
.endm
- .macro trycopyability param0
+ .macro trycopyability param0:req
.byte 0xd3
.4byte \param0
.endm
- .macro trywish param0, param1
+ .macro trywish param0:req, param1:req
.byte 0xd4
.byte \param0
.4byte \param1
.endm
- .macro trysetroots param0
+ .macro trysetroots param0:req
.byte 0xd5
.4byte \param0
.endm
@@ -1059,12 +1059,12 @@
.byte 0xd6
.endm
- .macro setyawn param0
+ .macro setyawn param0:req
.byte 0xd7
.4byte \param0
.endm
- .macro setdamagetohealthdifference param0
+ .macro setdamagetohealthdifference param0:req
.byte 0xd8
.4byte \param0
.endm
@@ -1073,17 +1073,17 @@
.byte 0xd9
.endm
- .macro tryswapabilities param0
+ .macro tryswapabilities param0:req
.byte 0xda
.4byte \param0
.endm
- .macro tryimprision param0
+ .macro tryimprision param0:req
.byte 0xdb
.4byte \param0
.endm
- .macro trysetgrudge param0
+ .macro trysetgrudge param0:req
.byte 0xdc
.4byte \param0
.endm
@@ -1092,32 +1092,32 @@
.byte 0xdd
.endm
- .macro asistattackselect param0
+ .macro asistattackselect param0:req
.byte 0xde
.4byte \param0
.endm
- .macro trysetmagiccoat param0
+ .macro trysetmagiccoat param0:req
.byte 0xdf
.4byte \param0
.endm
- .macro trysetsnatch param0
+ .macro trysetsnatch param0:req
.byte 0xe0
.4byte \param0
.endm
- .macro trygetintimidatetarget param0
+ .macro trygetintimidatetarget param0:req
.byte 0xe1
.4byte \param0
.endm
- .macro switchoutabilities battler
+ .macro switchoutabilities battler:req
.byte 0xe2
.byte \battler
.endm
- .macro jumpifhasnohp battler, param1
+ .macro jumpifhasnohp battler:req, param1:req
.byte 0xe3
.byte \battler
.4byte \param1
@@ -1139,7 +1139,7 @@
.byte 0xe7
.endm
- .macro settypebasedhalvers param0
+ .macro settypebasedhalvers param0:req
.byte 0xe8
.4byte \param0
.endm
@@ -1148,17 +1148,17 @@
.byte 0xe9
.endm
- .macro tryrecycleitem param0
+ .macro tryrecycleitem param0:req
.byte 0xea
.4byte \param0
.endm
- .macro settypetoterrain param0
+ .macro settypetoterrain param0:req
.byte 0xeb
.4byte \param0
.endm
- .macro pursuitrelated param0
+ .macro pursuitrelated param0:req
.byte 0xec
.4byte \param0
.endm
@@ -1179,7 +1179,7 @@
.byte 0xf0
.endm
- .macro trysetcaughtmondexflags param0
+ .macro trysetcaughtmondexflags param0:req
.byte 0xf1
.4byte \param0
.endm
@@ -1188,7 +1188,7 @@
.byte 0xf2
.endm
- .macro trygivecaughtmonnick param0
+ .macro trygivecaughtmonnick param0:req
.byte 0xf3
.4byte \param0
.endm
@@ -1209,93 +1209,93 @@
.byte 0xf7
.endm
- .macro trainerslideout param0
+ .macro trainerslideout param0:req
.byte 0xf8
.byte \param0
.endm
@ various command changed to more readable macros
- .macro cancelmultiturnmoves battler
+ .macro cancelmultiturnmoves battler:req
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
.endm
- .macro setmagiccoattarget battler
+ .macro setmagiccoattarget battler:req
various \battler, VARIOUS_SET_MAGIC_COAT_TARGET
.endm
- .macro getifcantrunfrombattle battler
+ .macro getifcantrunfrombattle battler:req
various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE
.endm
- .macro getmovetarget battler
+ .macro getmovetarget battler:req
various \battler, VARIOUS_GET_MOVE_TARGET
.endm
- .macro various4 battler
+ .macro various4 battler:req
various \battler, 4
.endm
- .macro resetintrimidatetracebits battler
+ .macro resetintrimidatetracebits battler:req
various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.endm
- .macro updatechoicemoveonlvlup battler
+ .macro updatechoicemoveonlvlup battler:req
various \battler, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP
.endm
- .macro various7 battler
+ .macro various7 battler:req
various \battler, 7
.endm
- .macro various8 battler
+ .macro various8 battler:req
various \battler, 8
.endm
- .macro various9 battler
- various \battler, 9
+ .macro arenajudgmentwindow
+ various BS_ATTACKER, VARIOUS_ARENA_JUDGMENT_WINDOW
.endm
- .macro various10 battler
- various \battler, 10
+ .macro arenaopponentmonlost
+ various BS_ATTACKER, VARIOUS_ARENA_OPPONENT_MON_LOST
.endm
- .macro various11 battler
- various \battler, 11
+ .macro arenaplayermonlost
+ various BS_ATTACKER, VARIOUS_ARENA_PLAYER_MON_LOST
.endm
- .macro various12 battler
- various \battler, 12
+ .macro arenabothmonlost
+ various BS_ATTACKER, VARIOUS_ARENA_BOTH_MONS_LOST
.endm
- .macro forfeityesnobox battler
+ .macro forfeityesnobox battler:req
various \battler, VARIOUS_EMIT_YESNOBOX
.endm
- .macro various14 battler
+ .macro various14 battler:req
various \battler, 14
.endm
- .macro various15 battler
+ .macro various15 battler:req
various \battler, 15
.endm
- .macro various16 battler
- various \battler, 16
+ .macro arenajudmengtstring id:req
+ various \id, VARIOUS_ARENA_JUDGMENT_STRING
.endm
- .macro various17 battler
- various \battler, 17
+ .macro arenawaitmessage id:req
+ various \id, VARIOUS_ARENA_WAIT_STRING
.endm
- .macro waitcry battler
+ .macro waitcry battler:req
various \battler, VARIOUS_WAIT_CRY
.endm
- .macro returnopponentmon1toball battler
+ .macro returnopponentmon1toball battler:req
various \battler, VARIOUS_RETURN_OPPONENT_MON1
.endm
- .macro returnopponentmon2toball battler
+ .macro returnopponentmon2toball battler:req
various \battler, VARIOUS_RETURN_OPPONENT_MON2
.endm
@@ -1307,95 +1307,95 @@
various BS_ATTACKER, VARIOUS_VOLUME_UP
.endm
- .macro various23 battler
+ .macro setalreadystatusedmoveattempt battler:req
various \battler, 23
.endm
- .macro various24 battler
+ .macro various24 battler:req
various \battler, 24
.endm
- .macro setoutcomeonteleport battler
+ .macro setoutcomeonteleport battler:req
various \battler, VARIOUS_SET_TELEPORT_OUTCOME
.endm
- .macro playtrainerdefeatbgm battler
+ .macro playtrainerdefeatbgm battler:req
various \battler, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC
.endm
@ helpful macros
- .macro setstatchanger stat, stages, down
+ .macro setstatchanger stat:req, stages:req, down:req
setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7
.endm
- .macro setmoveeffect effect
+ .macro setmoveeffect effect:req
setbyte cEFFECT_CHOOSER \effect
.endm
- .macro chosenstatus1animation battler, status
+ .macro chosenstatus1animation battler:req, status:req
chosenstatusanimation \battler 0x0 \status
.endm
- .macro chosenstatus2animation battler, status
+ .macro chosenstatus2animation battler:req, status:req
chosenstatusanimation \battler 0x1 \status
.endm
- .macro sethword dst, value
+ .macro sethword dst:req, value:req
setbyte \dst, \value & 0xFF
setbyte \dst + 1, (\value >> 8) & 0xFF
.endm
- .macro setword dst, value
+ .macro setword dst:req, value:req
setbyte \dst, \value & 0xFF
setbyte \dst + 1, (\value >> 8) & 0xFF
setbyte \dst + 2, (\value >> 16) & 0xFF
setbyte \dst + 3, (\value >> 24) & 0xFF
.endm
- .macro copybyte dst, src
+ .macro copybyte dst:req, src:req
copyarray \dst, \src, 0x1
.endm
- .macro copyhword dst, src
+ .macro copyhword dst:req, src:req
copyarray \dst, \src, 0x2
.endm
- .macro copyword dst, src
+ .macro copyword dst:req, src:req
copyarray \dst, \src, 0x4
.endm
- .macro jumpifbytenotequal byte1, byte2, jumpptr
+ .macro jumpifbytenotequal byte1:req, byte2:req, jumpptr:req
jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr
.endm
- .macro jumpifbyteequal byte1, byte2, jumpptr
+ .macro jumpifbyteequal byte1:req, byte2:req, jumpptr:req
jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr
.endm
- .macro jumpifmove move, jumpptr
+ .macro jumpifmove move:req, jumpptr:req
jumpifhalfword CMP_EQUAL, gCurrentMove, \move, \jumpptr
.endm
- .macro jumpifnotmove move, jumpptr
+ .macro jumpifnotmove move:req, jumpptr:req
jumpifhalfword CMP_NOT_EQUAL, gCurrentMove, \move, \jumpptr
.endm
- .macro jumpifstatus3 battler, status, jumpptr
+ .macro jumpifstatus3 battler:req, status:req, jumpptr:req
jumpifstatus3condition \battler, \status, 0x0, \jumpptr
.endm
- .macro jumpifnostatus3 battler, status, jumpptr
+ .macro jumpifnostatus3 battler:req, status:req, jumpptr:req
jumpifstatus3condition \battler, \status, 0x1, \jumpptr
.endm
- .macro jumpifmovehadnoeffect jumpptr
+ .macro jumpifmovehadnoeffect jumpptr:req
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr
.endm
- .macro jumpifbattletype flags, jumpptr
+ .macro jumpifbattletype flags:req, jumpptr:req
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
.endm
- .macro jumpifnotbattletype flags, jumpptr
+ .macro jumpifnotbattletype flags:req, jumpptr:req
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr
.endm
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 6b9227442..d66992c35 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -19,52 +19,58 @@
.endm
@ Jumps to destination and continues script execution from there. The location of the calling script is remembered and can be returned to later.
- .macro call destination
+ .macro call destination:req
.byte 0x04
.4byte \destination
.endm
@ Jumps to destination and continues script execution from there.
- .macro goto destination
+ .macro goto destination:req
.byte 0x05
.4byte \destination
.endm
@ If the result of the last comparison matches condition (see Comparison operators), jumps to destination and continues script execution from there.
- .macro goto_if condition, destination
+ .macro goto_if condition:req, destination:req
.byte 0x06
.byte \condition
.4byte \destination
.endm
@ If the result of the last comparison matches condition (see Comparison operators), calls destination.
- .macro call_if condition, destination
+ .macro call_if condition:req, destination:req
.byte 0x07
.byte \condition
.4byte \destination
.endm
@ Jumps to the standard function at index function.
- .macro gotostd function
+ .macro gotostd function:req
.byte 0x08
.byte \function
.endm
+ @ callstd function names
+ STD_OBTAIN_ITEM = 0
+ STD_FIND_ITEM = 1
+ STD_OBTAIN_DECORATION = 7
+ STD_REGISTER_MATCH_CALL = 8
+
@ Calls the standard function at index function.
- .macro callstd function
+ .macro callstd function:req
.byte 0x09
.byte \function
.endm
@ If the result of the last comparison matches condition (see Comparison operators), jumps to the standard function at index function.
- .macro gotostd_if condition, function
+ .macro gotostd_if condition:req, function:req
.byte 0x0a
.byte \condition
.byte \function
.endm
@ If the result of the last comparison matches condition (see Comparison operators), calls the standard function at index function.
- .macro callstd_if condition, function
+ .macro callstd_if condition:req, function:req
.byte 0x0b
.byte \condition
.byte \function
@@ -81,146 +87,146 @@
.endm
@ Sets some status related to Mystery Event.
- .macro setmysteryeventstatus value
+ .macro setmysteryeventstatus value:req
.byte 0x0e
.byte \value
.endm
@ Sets the specified script bank to value.
- .macro loadword destination, value
+ .macro loadword destination:req, value:req
.byte 0x0f
.byte \destination
.4byte \value
.endm
@ Sets the specified script bank to value.
- .macro loadbyte destination, value
+ .macro loadbyte destination:req, value:req
.byte 0x10
.byte \destination
.byte \value
.endm
@ Sets the byte at offset to value.
- .macro writebytetoaddr value, offset
+ .macro writebytetoaddr value:req, offset:req
.byte 0x11
.byte \value
.4byte \offset
.endm
@ Copies the byte value at source into the specified script bank.
- .macro loadbytefromaddr destination, source
+ .macro loadbytefromaddr destination:req, source:req
.byte 0x12
.byte \destination
.4byte \source
.endm
@ Not sure. Judging from XSE's description I think it takes the least-significant byte in bank source and writes it to destination.
- .macro setptrbyte source, destination
+ .macro setptrbyte source:req, destination:req
.byte 0x13
.byte \source
.4byte \destination
.endm
@ Copies the contents of bank source into bank destination.
- .macro copylocal destination, source
+ .macro copylocal destination:req, source:req
.byte 0x14
.byte \destination
.byte \source
.endm
@ Copies the byte at source to destination, replacing whatever byte was previously there.
- .macro copybyte destination, source
+ .macro copybyte destination:req, source:req
.byte 0x15
.4byte \destination
.4byte \source
.endm
@ Changes the value of destination to value.
- .macro setvar destination, value
+ .macro setvar destination:req, value:req
.byte 0x16
.2byte \destination
.2byte \value
.endm
@ Changes the value of destination by adding value to it. Overflow is not prevented (0xFFFF + 1 = 0x0000).
- .macro addvar destination, value
+ .macro addvar destination:req, value:req
.byte 0x17
.2byte \destination
.2byte \value
.endm
@ Changes the value of destination by subtracting value to it. Overflow is not prevented (0x0000 - 1 = 0xFFFF).
- .macro subvar destination, value
+ .macro subvar destination:req, value:req
.byte 0x18
.2byte \destination
.2byte \value
.endm
@ Copies the value of source into destination.
- .macro copyvar destination, source
+ .macro copyvar destination:req, source:req
.byte 0x19
.2byte \destination
.2byte \source
.endm
@ If source is not a variable, then this function acts like setvar. Otherwise, it acts like copyvar.
- .macro setorcopyvar destination, source
+ .macro setorcopyvar destination:req, source:req
.byte 0x1a
.2byte \destination
.2byte \source
.endm
@ Compares the values of script banks a and b, after forcing the values to bytes.
- .macro compare_local_to_local byte1, byte2
+ .macro compare_local_to_local byte1:req, byte2:req
.byte 0x1b
.byte \byte1
.byte \byte2
.endm
@ Compares the least-significant byte of the value of script bank a to a fixed byte value (b).
- .macro compare_local_to_value a, b
+ .macro compare_local_to_value a:req, b:req
.byte 0x1c
.byte \a
.byte \b
.endm
@ Compares the least-significant byte of the value of script bank a to the byte located at offset b.
- .macro compare_local_to_addr a, b
+ .macro compare_local_to_addr a:req, b:req
.byte 0x1d
.byte \a
.4byte \b
.endm
@ Compares the byte located at offset a to the least-significant byte of the value of script bank b.
- .macro compare_addr_to_local a, b
+ .macro compare_addr_to_local a:req, b:req
.byte 0x1e
.4byte \a
.byte \b
.endm
@ Compares the byte located at offset a to a fixed byte value (b).
- .macro compare_addr_to_value a, b
+ .macro compare_addr_to_value a:req, b:req
.byte 0x1f
.4byte \a
.byte \b
.endm
@ Compares the byte located at offset a to the byte located at offset b.
- .macro compare_addr_to_addr a, b
+ .macro compare_addr_to_addr a:req, b:req
.byte 0x20
.4byte \a
.4byte \b
.endm
@ Compares the value of `var` to a fixed word value (b).
- .macro compare_var_to_value var, value
+ .macro compare_var_to_value var:req, value:req
.byte 0x21
.2byte \var
.2byte \value
.endm
@ Compares the value of `var1` to the value of `var2`.
- .macro compare_var_to_var var1, var2
+ .macro compare_var_to_var var1:req, var2:req
.byte 0x22
.2byte \var1
.2byte \var2
@@ -228,7 +234,7 @@
@ Generic compare macro which attempts to deduce argument types based on their values
@ Any values between 0x4000 to 0x4FFF and 0x8000 to 0x8FFF are considered event variable identifiers
- .macro compare arg1, arg2
+ .macro compare arg1:req, arg2:req
.if ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && ((\arg2 >> 12) == 4 || (\arg2 >> 12) == 8)
compare_var_to_var \arg1, \arg2
.elseif ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && (\arg2 >= 0 && \arg2 <= 0xFFFF)
@@ -239,32 +245,32 @@
.endm
@ Calls the native C function stored at `func`.
- .macro callnative func
+ .macro callnative func:req
.byte 0x23
.4byte \func
.endm
@ Replaces the script with the function stored at `func`. Execution returns to the bytecode script when func returns TRUE.
- .macro gotonative func
+ .macro gotonative func:req
.byte 0x24
.4byte \func
.endm
@ Calls a special function; that is, a function designed for use by scripts and listed in a table of pointers.
- .macro special function
+ .macro special function:req
.byte 0x25
.2byte SPECIAL_\function
.endm
@ Calls a special function. That function's output (if any) will be written to the variable you specify.
- .macro specialvar output, function
+ .macro specialvar output:req, function:req
.byte 0x26
.2byte \output
.2byte SPECIAL_\function
.endm
-
+
@ temporary solution
- .macro specialvar_ output, functionId
+ .macro specialvar_ output:req, functionId:req
.byte 0x26
.2byte \output
.2byte \functionId
@@ -276,31 +282,31 @@
.endm
@ Blocks script execution for time (frames? milliseconds?).
- .macro delay time
+ .macro delay time:req
.byte 0x28
.2byte \time
.endm
@ Sets a to 1.
- .macro setflag a
+ .macro setflag a:req
.byte 0x29
.2byte \a
.endm
@ Sets a to 0.
- .macro clearflag a
+ .macro clearflag a:req
.byte 0x2a
.2byte \a
.endm
@ Compares a to 1.
- .macro checkflag a
+ .macro checkflag a:req
.byte 0x2b
.2byte \a
.endm
@ Initializes the RTC`s local time offset to the given hour and minute. In FireRed, this command is a nop.
- .macro initclock hour, minute
+ .macro initclock hour:req, minute:req
.byte 0x2c
.2byte \hour
.2byte \minute
@@ -317,7 +323,7 @@
.endm
@ Plays the specified (sound_number) sound. Only one sound may play at a time, with newer ones interrupting older ones.
- .macro playse sound_number
+ .macro playse sound_number:req
.byte 0x2f
.2byte \sound_number
.endm
@@ -328,7 +334,7 @@
.endm
@ Plays the specified (fanfare_number) fanfare.
- .macro playfanfare fanfare_number
+ .macro playfanfare fanfare_number:req
.byte 0x31
.2byte \fanfare_number
.endm
@@ -339,14 +345,14 @@
.endm
@ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00.
- .macro playbgm song_number, unknown
+ .macro playbgm song_number:req, unknown:req
.byte 0x33
.2byte \song_number
.byte \unknown
.endm
@ Saves the specified (song_number) song to be played later.
- .macro savebgm song_number
+ .macro savebgm song_number:req
.byte 0x34
.2byte \song_number
.endm
@@ -357,25 +363,25 @@
.endm
@ Crossfades the currently-playng song into the specified (song_number) song.
- .macro fadenewbgm song_number
+ .macro fadenewbgm song_number:req
.byte 0x36
.2byte \song_number
.endm
@ Fades out the currently-playing song.
- .macro fadeoutbgm speed
+ .macro fadeoutbgm speed:req
.byte 0x37
.byte \speed
.endm
@ Fades the previously-playing song back in.
- .macro fadeinbgm speed
+ .macro fadeinbgm speed:req
.byte 0x38
.byte \speed
.endm
@ Sends the player to Warp warp on Map bank.map. If the specified warp is 0xFF, then the player will instead be sent to (X, Y) on the map.
- .macro warp map, warp, X, Y
+ .macro warp map:req, warp:req, X:req, Y:req
.byte 0x39
map \map
.byte \warp
@@ -384,7 +390,7 @@
.endm
@ Clone of warp that does not play a sound effect.
- .macro warpsilent map, warp, X, Y
+ .macro warpsilent map:req, warp:req, X:req, Y:req
.byte 0x3a
map \map
.byte \warp
@@ -393,7 +399,7 @@
.endm
@ Clone of warp that plays a door opening animation before stepping upwards into it.
- .macro warpdoor map, warp, X, Y
+ .macro warpdoor map:req, warp:req, X:req, Y:req
.byte 0x3b
map \map
.byte \warp
@@ -402,13 +408,13 @@
.endm
@ Warps the player to another map using a hole animation.
- .macro warphole map
+ .macro warphole map:req
.byte 0x3c
map \map
.endm
@ Clone of warp that uses a teleport effect. It is apparently only used in R/S/E.
- .macro warpteleport map, warp, X, Y
+ .macro warpteleport map:req, warp:req, X:req, Y:req
.byte 0x3d
map \map
.byte \warp
@@ -417,7 +423,7 @@
.endm
@ Sets the warp destination to be used later.
- .macro setwarp map, warp, X, Y
+ .macro setwarp map:req, warp:req, X:req, Y:req
.byte 0x3e
map \map
.byte \warp
@@ -426,7 +432,7 @@
.endm
@ Sets the warp destination that a warp to Warp 127 on Map 127.127 will connect to. Useful when a map has warps that need to go to script-controlled locations (i.e. elevators).
- .macro setdynamicwarp map, warp, X, Y
+ .macro setdynamicwarp map:req, warp:req, X:req, Y:req
.byte 0x3f
map \map
.byte \warp
@@ -435,7 +441,7 @@
.endm
@ Sets the destination that diving or emerging from a dive will take the player to.
- .macro setdivewarp map, warp, X, Y
+ .macro setdivewarp map:req, warp:req, X:req, Y:req
.byte 0x40
map \map
.byte \warp
@@ -444,7 +450,7 @@
.endm
@ Sets the destination that falling into a hole will take the player to.
- .macro setholewarp map, warp, X, Y
+ .macro setholewarp map:req, warp:req, X:req, Y:req
.byte 0x41
map \map
.byte \warp
@@ -453,7 +459,7 @@
.endm
@ Retrieves the player's zero-indexed X- and Y-coordinates in the map, and stores them in the specified variables.
- .macro getplayerxy X, Y
+ .macro getplayerxy X:req, Y:req
.byte 0x42
.2byte \X
.2byte \Y
@@ -465,80 +471,80 @@
.endm
@ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and variable 0x800D (LASTRESULT) will be set to 0x0001; otherwise, LASTRESULT is set to 0x0000.
- .macro giveitem index, quantity
+ .macro giveitem index:req, quantity:req
.byte 0x44
.2byte \index
.2byte \quantity
.endm
@ Removes quantity of item index from the player's Bag.
- .macro takeitem index, quantity
+ .macro takeitem index:req, quantity:req
.byte 0x45
.2byte \index
.2byte \quantity
.endm
@ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room.
- .macro checkitemspace index, quantity
+ .macro checkitemspace index:req, quantity:req
.byte 0x46
.2byte \index
.2byte \quantity
.endm
@ Checks if the player has quantity or more of item index in their Bag. Sets variable 0x800D (LASTRESULT) to 0x0001 if the player has enough of the item, or 0x0000 if they have fewer than quantity of the item.
- .macro checkitem index, quantity
+ .macro checkitem index:req, quantity:req
.byte 0x47
.2byte \index
.2byte \quantity
.endm
@ Checks which Bag pocket the specified (index) item belongs in, and writes the value to variable 0x800D (LASTRESULT). This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE).
- .macro checkitemtype index
+ .macro checkitemtype index:req
.byte 0x48
.2byte \index
.endm
@ Adds a quantity amount of item index to the player's PC. Both arguments can be variables.
- .macro givepcitem index, quantity
+ .macro givepcitem index:req, quantity:req
.byte 0x49
.2byte \index
.2byte \quantity
.endm
@ Checks for quantity amount of item index in the player's PC. Both arguments can be variables.
- .macro checkpcitem index, quantity
+ .macro checkpcitem index:req, quantity:req
.byte 0x4a
.2byte \index
.2byte \quantity
.endm
@ Adds decoration to the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro givedecoration decoration
+ .macro givedecoration decoration:req
.byte 0x4b
.2byte \decoration
.endm
@ Removes a decoration from the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro takedecoration decoration
+ .macro takedecoration decoration:req
.byte 0x4c
.2byte \decoration
.endm
@ Checks for decoration in the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro checkdecor decoration
+ .macro checkdecor decoration:req
.byte 0x4d
.2byte \decoration
.endm
@ Checks if the player has enough space in their PC to hold decoration. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
- .macro checkdecorspace decoration
+ .macro checkdecorspace decoration:req
.byte 0x4e
.2byte \decoration
.endm
@ Applies the movement data at movements to the specified (index) Object. Also closes any standard message boxes that are still open.
@ If no map is specified, then the current map is used.
- .macro applymovement index, movements, map
+ .macro applymovement index:req, movements:req, map
.ifb \map
.byte 0x4f
.2byte \index
@@ -554,7 +560,7 @@
@ Blocks script execution until the movements being applied to the specified (index) Object finish. If the specified Object is 0x0000, then the command will block script execution until all Objects affected by applymovement finish their movements. If the specified Object is not currently being manipulated with applymovement, then this command does nothing.
@ If no map is specified, then the current map is used.
- .macro waitmovement index, map
+ .macro waitmovement index:req, map
.ifb \map
.byte 0x51
.2byte \index
@@ -567,7 +573,7 @@
@ Attempts to hide the specified (index) Object on the specified (map_group, map_num) map, by setting its visibility flag if it has a valid one. If the Object does not have a valid visibility flag, this command does nothing.
@ If no map is specified, then the current map is used.
- .macro removeobject index, map
+ .macro removeobject index:req, map
.ifb \map
.byte 0x53
.2byte \index
@@ -580,7 +586,7 @@
@ Unsets the specified (index) Object's visibility flag on the specified (map_group, map_num) map if it has a valid one. If the Object does not have a valid visibility flag, this command does nothing.
@ If no map is specified, then the current map is used.
- .macro addobject index, map
+ .macro addobject index:req, map
.ifb \map
.byte 0x55
.2byte \index
@@ -592,20 +598,20 @@
.endm
@ Sets the specified (index) Object's position on the current map.
- .macro setobjectxy index, x, y
+ .macro setobjectxy index:req, x:req, y:req
.byte 0x57
.2byte \index
.2byte \x
.2byte \y
.endm
- .macro showobjectat index, map
+ .macro showobjectat index:req, map:req
.byte 0x58
.2byte \index
map \map
.endm
- .macro hideobjectat index, map
+ .macro hideobjectat index:req, map:req
.byte 0x59
.2byte \index
map \map
@@ -616,67 +622,108 @@
.byte 0x5a
.endm
- .macro turnobject index, direction
+ .macro turnobject index:req, direction:req
.byte 0x5b
.2byte \index
.byte \direction
.endm
@ If the Trainer flag for Trainer index is not set, this command does absolutely nothing.
- .macro trainerbattle type, trainer, word, pointer1, pointer2, pointer3, pointer4
+ .macro trainerbattle type:req, trainer:req, local_id:req, pointer1:req, pointer2, pointer3, pointer4
.byte 0x5c
.byte \type
.2byte \trainer
- .2byte \word
- .if \type == 0
+ .2byte \local_id
+ .if \type == TRAINER_BATTLE_SINGLE
.4byte \pointer1 @ text
.4byte \pointer2 @ text
- .elseif \type == 1
+ .elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.4byte \pointer3 @ event script
- .elseif \type == 2
+ .elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.4byte \pointer3 @ event script
- .elseif \type == 3
+ .elseif \type == TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT
.4byte \pointer1 @ text
- .elseif \type == 4
+ .elseif \type == TRAINER_BATTLE_DOUBLE
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.4byte \pointer3 @ text
- .elseif \type == 5
+ .elseif \type == TRAINER_BATTLE_REMATCH
.4byte \pointer1 @ text
.4byte \pointer2 @ text
- .elseif \type == 6
+ .elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.4byte \pointer3 @ text
.4byte \pointer4 @ event script
- .elseif \type == 7
+ .elseif \type == TRAINER_BATTLE_REMATCH_DOUBLE
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.4byte \pointer3 @ text
- .elseif \type == 8
+ .elseif \type == TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.4byte \pointer3 @ text
.4byte \pointer4 @ event script
- .elseif \type == 9
+ .elseif \type == TRAINER_BATTLE_9
.4byte \pointer1 @ text
.4byte \pointer2 @ text
- .elseif \type == 10
+ .elseif \type == TRAINER_BATTLE_SET_TRAINER_A
.4byte \pointer1 @ text
.4byte \pointer2 @ text
- .elseif \type == 11
+ .elseif \type == TRAINER_BATTLE_SET_TRAINER_B
.4byte \pointer1 @ text
.4byte \pointer2 @ text
- .elseif \type == 12
+ .elseif \type == TRAINER_BATTLE_12
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.endif
.endm
+ NO_MUSIC = FALSE
+
+ @ Starts a single trainer battle, takes a trainer, intro text, loss text, and an optional event script
+ @ when used with an event script, you can also pass in an optional flag to disable music
+ .macro trainerbattle_single trainer:req, intro_text:req, lose_text:req, event_script=FALSE, music=TRUE
+ .if \event_script == FALSE
+ trainerbattle TRAINER_BATTLE_SINGLE, \trainer, 0, \intro_text, \lose_text
+ .elseif \music == TRUE
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT, \trainer, 0, \intro_text, \lose_text, \event_script
+ .else
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, \trainer, 0, \intro_text, \lose_text, \event_script
+ .endif
+ .endm
+
+ @ Starts a double trainer battle, takes a trainer, intro text, loss text, text for when you have too few pokemon
+ @ and an optional event script, when used with an event script you can pass in an optional flag to disable music
+ .macro trainerbattle_double trainer:req, intro_text:req, lose_text:req, not_enough_pkmn_text:req, event_script=FALSE, music=TRUE
+ .if \event_script == FALSE
+ trainerbattle TRAINER_BATTLE_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text
+ .elseif \music == TRUE
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text, \event_script
+ .else
+ trainerbattle TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text, \event_script
+ .endif
+ .endm
+
+ @ Starts a rematch battle, takes a trainer, intro text and loss text
+ .macro trainerbattle_rematch trainer:req, intro_text:req, lose_text:req
+ trainerbattle TRAINER_BATTLE_REMATCH, \trainer, 0, \intro_text, \lose_text
+ .endm
+
+ @ Starts a rematch double battle, takes a trainer, intro text, loss text, and text for when you have too few pokemon
+ .macro trainerbattle_rematch_double trainer:req, intro_text:req, lose_text:req, not_enough_pkmn_text:req
+ trainerbattle TRAINER_BATTLE_REMATCH_DOUBLE, \trainer, 0, \intro_text, \lose_text, \not_enough_pkmn_text
+ .endm
+
+ @ Starts a trainer battle, skipping intro text, takes a trainer and loss text
+ .macro trainerbattle_no_intro trainer:req, lose_text:req
+ trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, \trainer, 0, \lose_text
+ .endm
+
@ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes.
.macro trainerbattlebegin
@@ -694,36 +741,36 @@
.endm
@ Compares Flag (trainer + 0x500) to 1. (If the flag is set, then the trainer has been defeated by the player.)
- .macro checktrainerflag trainer
+ .macro checktrainerflag trainer:req
.byte 0x60
.2byte \trainer
.endm
@ Sets Flag (trainer + 0x500).
- .macro settrainerflag trainer
+ .macro settrainerflag trainer:req
.byte 0x61
.2byte \trainer
.endm
@ Clears Flag (trainer + 0x500).
- .macro cleartrainerflag trainer
+ .macro cleartrainerflag trainer:req
.byte 0x62
.2byte \trainer
.endm
- .macro setobjectxyperm index, x, y
+ .macro setobjectxyperm index:req, x:req, y:req
.byte 0x63
.2byte \index
.2byte \x
.2byte \y
.endm
- .macro moveobjectoffscreen index
+ .macro moveobjectoffscreen index:req
.byte 0x64
.2byte \index
.endm
- .macro setobjectmovementtype word, byte
+ .macro setobjectmovementtype word:req, byte:req
.byte 0x65
.2byte \word
.byte \byte
@@ -735,7 +782,7 @@
.endm
@ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at that offset will be loaded and used. If text is script bank 0, then the value of script bank 0 will be treated as a pointer to the text. (You can use loadpointer to place a string pointer in a script bank.)
- .macro message text
+ .macro message text:req
.byte 0x67
.4byte \text
.endm
@@ -771,14 +818,14 @@
.endm
@ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES".
- .macro yesnobox x, y
+ .macro yesnobox x:req, y:req
.byte 0x6e
.byte \x
.byte \y
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoice x, y, list, b
+ .macro multichoice x:req, y:req, list:req, b:req
.byte 0x6f
.byte \x
.byte \y
@@ -787,7 +834,7 @@
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
- .macro multichoicedefault x, y, list, default, b
+ .macro multichoicedefault x:req, y:req, list:req, default:req, b:req
.byte 0x70
.byte \x
.byte \y
@@ -797,7 +844,7 @@
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box.
- .macro multichoicegrid x, y, list, per_row, B
+ .macro multichoicegrid x:req, y:req, list:req, per_row:req, B:req
.byte 0x71
.byte \x
.byte \y
@@ -812,7 +859,7 @@
.endm
@ Nopped in Emerald, but still consumes parameters.
- .macro erasebox byte1, byte2, byte3, byte4
+ .macro erasebox byte1:req, byte2:req, byte3:req, byte4:req
.byte 0x73
.byte \byte1
.byte \byte2
@@ -821,7 +868,7 @@
.endm
@ Nopped in Emerald, but still consumes parameters.
- .macro drawboxtext byte1, byte2, byte3, byte4
+ .macro drawboxtext byte1:req, byte2:req, byte3:req, byte4:req
.byte 0x74
.byte \byte1
.byte \byte2
@@ -830,7 +877,7 @@
.endm
@ Displays a box containing the front sprite for the specified (species) Pokemon species.
- .macro drawmonpic species, x, y
+ .macro drawmonpic species:req, x:req, y:req
.byte 0x75
.2byte \species
.byte \x
@@ -843,19 +890,19 @@
.endm
@ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.)
- .macro drawcontestwinner a
+ .macro drawcontestwinner a:req
.byte 0x77
.byte \a
.endm
@ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille characters and needs to provide six extra starting characters that are skipped (in RS, these characters determined the box's size and position, but in Emerald these are calculated automatically).
- .macro braillemessage text
+ .macro braillemessage text:req
.byte 0x78
.4byte \text
.endm
@ Gives the player one of the specified (species) Pokemon at level level holding item. The unknown arguments should all be zeroes.
- .macro givemon species, level, item, unknown1, unknown2, unknown3
+ .macro givemon species:req, level:req, item:req, unknown1:req, unknown2:req, unknown3:req
.byte 0x79
.2byte \species
.byte \level
@@ -865,12 +912,12 @@
.byte \unknown3
.endm
- .macro giveegg species
+ .macro giveegg species:req
.byte 0x7a
.2byte \species
.endm
- .macro setmonmove index, slot, move
+ .macro setmonmove index:req, slot:req, move:req
.byte 0x7b
.byte \index
.byte \slot
@@ -878,99 +925,99 @@
.endm
@ Checks if at least one Pokemon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokemon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokemon's species.
- .macro checkpartymove index
+ .macro checkpartymove index:req
.byte 0x7c
.2byte \index
.endm
@ Writes the name of the Pokemon at index species to the specified buffer.
- .macro bufferspeciesname out, species
+ .macro bufferspeciesname out:req, species:req
.byte 0x7d
.byte \out
.2byte \species
.endm
@ Writes the name of the species of the first Pokemon in the player's party to the specified buffer.
- .macro bufferleadmonspeciesname out
+ .macro bufferleadmonspeciesname out:req
.byte 0x7e
.byte \out
.endm
@ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer.
- .macro bufferpartymonnick out, slot
+ .macro bufferpartymonnick out:req, slot:req
.byte 0x7f
.byte \out
.2byte \slot
.endm
@ Writes the name of the item at index item to the specified buffer. If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
- .macro bufferitemname out, item
+ .macro bufferitemname out:req, item:req
.byte 0x80
.byte \out
.2byte \item
.endm
@ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop.
- .macro bufferdecorationname out, decoration
+ .macro bufferdecorationname out:req, decoration:req
.byte 0x81
.byte \out
.2byte \decoration
.endm
@ Writes the name of the move at index move to the specified buffer.
- .macro buffermovename out, move
+ .macro buffermovename out:req, move:req
.byte 0x82
.byte \out
.2byte \move
.endm
@ Converts the value of input to a decimal string, and writes that string to the specified buffer.
- .macro buffernumberstring out, input
+ .macro buffernumberstring out:req, input:req
.byte 0x83
.byte \out
.2byte \input
.endm
@ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption.
- .macro bufferstdstring out, index
+ .macro bufferstdstring out:req, index:req
.byte 0x84
.byte \out
.2byte \index
.endm
@ Copies the string at offset to the specified buffer.
- .macro bufferstring out, offset
+ .macro bufferstring out:req, offset:req
.byte 0x85
.byte \out
.4byte \offset
.endm
@ Opens the Pokemart system, offering the specified products for sale.
- .macro pokemart products
+ .macro pokemart products:req
.byte 0x86
.4byte \products
.endm
@ Opens the Pokemart system and treats the list of items as decorations.
- .macro pokemartdecoration products
+ .macro pokemartdecoration products:req
.byte 0x87
.4byte \products
.endm
@ Apparent clone of pokemartdecoration.
- .macro pokemartdecoration2 products
+ .macro pokemartdecoration2 products:req
.byte 0x88
.4byte \products
.endm
@ Starts up the slot machine minigame.
- .macro playslotmachine word
+ .macro playslotmachine word:req
.byte 0x89
.2byte \word
.endm
@ Sets a berry tree's specific berry and growth stage. In FireRed, this command is a nop.
- .macro setberrytree tree_id, berry, growth_stage
+ .macro setberrytree tree_id:req, berry:req, growth_stage:req
.byte 0x8a
.byte \tree_id
.byte \berry
@@ -998,34 +1045,34 @@
.endm
@ Stores a random integer between 0 and limit in variable 0x800D (LASTRESULT).
- .macro random limit
+ .macro random limit:req
.byte 0x8f
.2byte \limit
.endm
@ If check is 0x00, this command adds value to the player's money.
- .macro givemoney value, check
+ .macro givemoney value:req, check:req
.byte 0x90
.4byte \value
.byte \check
.endm
@ If check is 0x00, this command subtracts value from the player's money.
- .macro takemoney value, check
+ .macro takemoney value:req, check:req
.byte 0x91
.4byte \value
.byte \check
.endm
@ If check is 0x00, this command will check if the player has value or more money; script variable 0x800D (LASTRESULT) is set to 0x0001 if the player has enough money, or 0x0000 if the do not.
- .macro checkmoney value, check
+ .macro checkmoney value:req, check:req
.byte 0x92
.4byte \value
.byte \check
.endm
@ Spawns a secondary box showing how much money the player has.
- .macro showmoneybox x, y, check
+ .macro showmoneybox x:req, y:req, check:req
.byte 0x93
.byte \x
.byte \y
@@ -1038,67 +1085,67 @@
.endm
@ Updates the secondary box spawned by showmoney. Consumes but does not use arguments.
- .macro updatemoneybox x, y
+ .macro updatemoneybox x:req, y:req
.byte 0x95
.byte \x
.byte \y
.endm
@ Gets the price reduction for the index given. In FireRed, this command is a nop.
- .macro getpricereduction index
+ .macro getpricereduction index:req
.byte 0x96
.2byte \index
.endm
@ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white.
- .macro fadescreen effect
+ .macro fadescreen effect:req
.byte 0x97
.byte \effect
.endm
@ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist.
- .macro fadescreenspeed effect, speed
+ .macro fadescreenspeed effect:req, speed:req
.byte 0x98
.byte \effect
.byte \speed
.endm
- .macro setflashradius word
+ .macro setflashradius word:req
.byte 0x99
.2byte \word
.endm
- .macro animateflash byte
+ .macro animateflash byte:req
.byte 0x9a
.byte \byte
.endm
- .macro messageautoscroll pointer
+ .macro messageautoscroll pointer:req
.byte 0x9b
.4byte \pointer
.endm
@ Executes the specified field move animation.
- .macro dofieldeffect animation
+ .macro dofieldeffect animation:req
.byte 0x9c
.2byte \animation
.endm
@ Sets up the field effect argument argument with the value value.
- .macro setfieldeffectargument argument, param
+ .macro setfieldeffectargument argument:req, param:req
.byte 0x9d
.byte \argument
.2byte \param
.endm
@ Blocks script execution until all playing field move animations complete.
- .macro waitfieldeffect animation
+ .macro waitfieldeffect animation:req
.byte 0x9e
.2byte \animation
.endm
@ Sets which healing place the player will return to if all of the Pokemon in their party faint.
- .macro setrespawn heallocation
+ .macro setrespawn heallocation:req
.byte 0x9f
.2byte \heallocation
.endm
@@ -1109,14 +1156,14 @@
.endm
@ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes.
- .macro playmoncry species, effect
+ .macro playmoncry species:req, effect:req
.byte 0xa1
.2byte \species
.2byte \effect
.endm
@ Changes the metatile at (x, y) on the current map.
- .macro setmetatile x, y, metatile_number, tile_attrib
+ .macro setmetatile x:req, y:req, metatile_number:req, tile_attrib:req
.byte 0xa2
.2byte \x
.2byte \y
@@ -1130,7 +1177,7 @@
.endm
@ Queues a weather change to type weather.
- .macro setweather type
+ .macro setweather type:req
.byte 0xa4
.2byte \type
.endm
@@ -1141,30 +1188,30 @@
.endm
@ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors).
- .macro setstepcallback subroutine
+ .macro setstepcallback subroutine:req
.byte 0xa6
.byte \subroutine
.endm
- .macro setmaplayoutindex index
+ .macro setmaplayoutindex index:req
.byte 0xa7
.2byte \index
.endm
- .macro setobjectpriority index, map, priority
+ .macro setobjectpriority index:req, map:req, priority:req
.byte 0xa8
.2byte \index
map \map
.byte \priority
.endm
- .macro resetobjectpriority index, map
+ .macro resetobjectpriority index:req, map:req
.byte 0xa9
.2byte \index
map \map
.endm
- .macro createvobject sprite, byte2, x, y, elevation, direction
+ .macro createvobject sprite:req, byte2:req, x:req, y:req, elevation, direction
.byte 0xaa
.byte \sprite
.byte \byte2
@@ -1174,21 +1221,21 @@
.byte \direction
.endm
- .macro turnvobject index, direction
+ .macro turnvobject index:req, direction:req
.byte 0xab
.byte \index
.byte \direction
.endm
@ Opens the door metatile at (X, Y) with an animation.
- .macro opendoor x, y
+ .macro opendoor x:req, y:req
.byte 0xac
.2byte \x
.2byte \y
.endm
@ Closes the door metatile at (X, Y) with an animation.
- .macro closedoor x, y
+ .macro closedoor x:req, y:req
.byte 0xad
.2byte \x
.2byte \y
@@ -1200,21 +1247,21 @@
.endm
@ Sets the door tile at (x, y) to be open without an animation.
- .macro setdooropen x, y
+ .macro setdooropen x:req, y:req
.byte 0xaf
.2byte \x
.2byte \y
.endm
@ Sets the door tile at (x, y) to be closed without an animation.
- .macro setdoorclosed x, y
+ .macro setdoorclosed x:req, y:req
.byte 0xb0
.2byte \x
.2byte \y
.endm
@ In Emerald, this command consumes its parameters and does nothing. In FireRed, this command is a nop.
- .macro addelevmenuitem a, b, c, d
+ .macro addelevmenuitem a:req, b:req, c:req, d:req
.byte 0xb1
.byte \a
.2byte \b
@@ -1227,23 +1274,23 @@
.byte 0xb2
.endm
- .macro checkcoins out
+ .macro checkcoins out:req
.byte 0xb3
.2byte \out
.endm
- .macro givecoins count
+ .macro givecoins count:req
.byte 0xb4
.2byte \count
.endm
- .macro takecoins count
+ .macro takecoins count:req
.byte 0xb5
.2byte \count
.endm
@ Prepares to start a wild battle against a species at Level level holding item. Running this command will not affect normal wild battles. You start the prepared battle with dowildbattle.
- .macro setwildbattle species, level, item
+ .macro setwildbattle species:req, level:req, item:req
.byte 0xb6
.2byte \species
.byte \level
@@ -1255,78 +1302,78 @@
.byte 0xb7
.endm
- .macro setvaddress pointer
+ .macro setvaddress pointer:req
.byte 0xb8
.4byte \pointer
.endm
- .macro vgoto pointer
+ .macro vgoto pointer:req
.byte 0xb9
.4byte \pointer
.endm
- .macro vcall pointer
+ .macro vcall pointer:req
.byte 0xba
.4byte \pointer
.endm
- .macro vgoto_if byte, pointer
+ .macro vgoto_if byte:req, pointer:req
.byte 0xbb
.byte \byte
.4byte \pointer
.endm
- .macro vcall_if byte, pointer
+ .macro vcall_if byte:req, pointer:req
.byte 0xbc
.byte \byte
.4byte \pointer
.endm
- .macro vmessage pointer
+ .macro vmessage pointer:req
.byte 0xbd
.4byte \pointer
.endm
- .macro vloadptr pointer
+ .macro vloadptr pointer:req
.byte 0xbe
.4byte \pointer
.endm
- .macro vbufferstring byte, pointer
+ .macro vbufferstring byte:req, pointer:req
.byte 0xbf
.byte \byte
.4byte \pointer
.endm
@ Spawns a secondary box showing how many Coins the player has.
- .macro showcoinsbox x, y
+ .macro showcoinsbox x:req, y:req
.byte 0xc0
.byte \x
.byte \y
.endm
@ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them.
- .macro hidecoinsbox x, y
+ .macro hidecoinsbox x:req, y:req
.byte 0xc1
.byte \x
.byte \y
.endm
@ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them.
- .macro updatecoinsbox x, y
+ .macro updatecoinsbox x:req, y:req
.byte 0xc2
.byte \x
.byte \y
.endm
@ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF.
- .macro incrementgamestat stat
+ .macro incrementgamestat stat:req
.byte 0xc3
.byte \stat
.endm
@ Sets the destination that using an Escape Rope or Dig will take the player to.
- .macro setescapewarp map, warp, x, y
+ .macro setescapewarp map:req, warp:req, x:req, y:req
.byte 0xc4
map \map
.byte \warp
@@ -1340,20 +1387,20 @@
.endm
@ Writes the name of the specified (box) PC box to the specified buffer.
- .macro bufferboxname out, box
+ .macro bufferboxname out:req, box:req
.byte 0xc6
.byte \out
.2byte \box
.endm
@ Sets the color of the text in standard message boxes. 0x00 produces blue (male) text, 0x01 produces red (female) text, 0xFF resets the color to the default for the current OW's gender, and all other values produce black text.
- .macro textcolor color
+ .macro textcolor color:req
.byte 0xc7
.byte \color
.endm
@ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of the screen when the Main Menu is opened.
- .macro loadhelp pointer
+ .macro loadhelp pointer:req
.byte 0xc8
.4byte \pointer
.endm
@@ -1374,20 +1421,20 @@
.endm
@ Compares the value of a hidden variable to a dword.
- .macro comparehiddenvar a, value
+ .macro comparehiddenvar a:req, value:req
.byte 0xcc
.byte \a
.4byte \value
.endm
@ Makes the Pokemon in the specified slot of the player's party obedient. It will not randomly disobey orders in battle.
- .macro setmonobedient slot
+ .macro setmonobedient slot:req
.byte 0xcd
.2byte \slot
.endm
@ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokemon is obedient (or if the specified slot is empty or invalid), 0x0000 is written.
- .macro checkmonobedience slot
+ .macro checkmonobedience slot:req
.byte 0xce
.2byte \slot
.endm
@@ -1398,13 +1445,13 @@
.endm
@ Sets worldmapflag to 1. This allows the player to Fly to the corresponding map, if that map has a flightspot.
- .macro setworldmapflag worldmapflag
+ .macro setworldmapflag worldmapflag:req
.byte 0xd0
.2byte \worldmapflag
.endm
@ Clone of warpteleport? It is apparently only used in FR/LG, and only with specials.[source]
- .macro warpteleport2 map, warp, x, y
+ .macro warpteleport2 map:req, warp:req, x:req, y:req
.byte 0xd1
map \map
.byte \warp
@@ -1413,13 +1460,13 @@
.endm
@ Changes the location where the player caught the Pokemon in the specified slot of their party.
- .macro setmonmetlocation slot, location
+ .macro setmonmetlocation slot:req, location:req
.byte 0xd2
.2byte \slot
.byte \location
.endm
- .macro mossdeepgym1 unknown
+ .macro mossdeepgym1 unknown:req
.byte 0xd3
.2byte \unknown
.endm
@@ -1429,7 +1476,7 @@
.endm
@ In FireRed, this command is a nop.
- .macro mossdeepgym3 var
+ .macro mossdeepgym3 var:req
.byte 0xd5
.2byte \var
.endm
@@ -1438,7 +1485,7 @@
.byte 0xd6
.endm
- .macro warp7 map, byte, word1, word2
+ .macro warp7 map:req, byte:req, word1:req, word2:req
.byte 0xd7
map \map
.byte \byte
@@ -1458,34 +1505,34 @@
.byte 0xda
.endm
- .macro message3 pointer
+ .macro message3 pointer:req
.byte 0xdb
.4byte \pointer
.endm
- .macro fadescreenswapbuffers byte
+ .macro fadescreenswapbuffers byte:req
.byte 0xdc
.byte \byte
.endm
- .macro buffertrainerclassname out, class
+ .macro buffertrainerclassname out:req, class:req
.byte 0xdd
.byte \out
.2byte \class
.endm
- .macro buffertrainername out, trainer
+ .macro buffertrainername out:req, trainer:req
.byte 0xde
.byte \out
.2byte \trainer
.endm
- .macro pokenavcall pointer
+ .macro pokenavcall pointer:req
.byte 0xdf
.4byte \pointer
.endm
- .macro warp8 map, byte, word1, word2
+ .macro warp8 map:req, byte:req, word1:req, word2:req
.byte 0xe0
map \map
.byte \byte
@@ -1493,14 +1540,14 @@
.2byte \word2
.endm
- .macro buffercontesttypestring out, word
+ .macro buffercontesttypestring out:req, word:req
.byte 0xe1
.byte \out
.2byte \word
.endm
@ Writes the name of the specified (item) item to the specified buffer. If the specified item is a Berry (0x85 - 0xAE) or Poke Ball (0x4) and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). If the specified item is the Enigma Berry, I have no idea what this command does (but testing showed no pluralization). If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead.
- .macro bufferitemnameplural out, item, quantity
+ .macro bufferitemnameplural out:req, item:req, quantity:req
.byte 0xe2
.byte \out
.2byte \item
@@ -1510,37 +1557,48 @@
@ Supplementary
- .macro goto_eq dest
+ .macro goto_eq dest:req
goto_if 1, \dest
.endm
- .macro switch var
+ .macro switch var:req
copyvar 0x8000, \var
.endm
- .macro case condition, dest
+ .macro case condition:req, dest:req
compare 0x8000, \condition
goto_eq \dest
.endm
- .macro msgbox text, type=4
- loadword 0, \text
- callstd \type
- .endm
-
@ Message box types
+ MSGBOX_NPC = 2
+ MSGBOX_SIGN = 3
+ MSGBOX_DEFAULT = 4
MSGBOX_YESNO = 5
+ MSGBOX_AUTOCLOSE = 6
YES = 1
NO = 0
- .macro giveitem_std item, amount=1, function=0
+ .macro msgbox text:req, type=MSGBOX_DEFAULT
+ loadword 0, \text
+ callstd \type
+ .endm
+
+ .macro giveitem_std item:req, amount=1, function=0
setorcopyvar 0x8000, \item
setorcopyvar 0x8001, \amount
callstd \function
.endm
- .macro givedecoration_std decoration
+ .macro givedecoration_std decoration:req
setorcopyvar 0x8000, \decoration
- callstd 7
+ callstd STD_OBTAIN_DECORATION
+ .endm
+
+ .macro register_matchcall trainer:req
+ setvar VAR_0x8004, \trainer
+ special SetMatchCallRegisteredFlag
+ setorcopyvar VAR_0x8000, \trainer
+ callstd STD_REGISTER_MATCH_CALL
.endm
diff --git a/asm/macros/map.inc b/asm/macros/map.inc
index 23806b4cc..9a028b2e5 100644
--- a/asm/macros/map.inc
+++ b/asm/macros/map.inc
@@ -65,7 +65,7 @@
.endm
.macro bg_hidden_item_event x, y, height, item, flag
- bg_event \x, \y, \height, 7, \item, \flag, 0
+ bg_event \x, \y, \height, 7, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), 0
.endm
.macro bg_secret_base_event x, y, height, secret_base_id
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 54d7510d9..3b28ab8d4 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -181,7 +181,7 @@ sub_81B3300: @ 81B3300
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl GetPlayerTextSpeed
+ bl GetPlayerTextSpeedDelay
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -2141,7 +2141,7 @@ sub_81B43DC: @ 81B43DC
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -2674,7 +2674,7 @@ sub_81B48DC: @ 81B48DC
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -2966,7 +2966,7 @@ sub_81B4BA0: @ 81B4BA0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3072,7 +3072,7 @@ sub_81B4C94: @ 81B4C94
push {r7}
lsls r0, 24
lsrs r5, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3307,7 +3307,7 @@ sub_81B4E8C: @ 81B4E8C
adds r0, r1
mov r8, r0
_081B4EC6:
- ldr r0, =gUnknown_0203CEF8
+ ldr r0, =gSelectedOrderFromParty
adds r4, r5, r0
ldrb r0, [r4]
cmp r0, 0
@@ -3421,7 +3421,7 @@ sub_81B4FA8: @ 81B4FA8
movs r4, 0
cmp r4, r5
bcs _081B502A
- ldr r6, =gUnknown_0203CEF8
+ ldr r6, =gSelectedOrderFromParty
subs r2, r5, 0x1
adds r7, r6, 0
ldr r3, =gUnknown_0203CEC8
@@ -3479,7 +3479,7 @@ _081B502A:
cmp r4, r5
bge _081B5078
_081B504E:
- ldr r0, =gUnknown_0203CEF8
+ ldr r0, =gSelectedOrderFromParty
adds r1, r4, r0
ldrb r0, [r1]
cmp r0, 0
@@ -3880,7 +3880,7 @@ sub_81B5430: @ 81B5430
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -4174,7 +4174,7 @@ sub_81B56D8: @ 81B56D8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -6546,7 +6546,7 @@ ether_effect_related_3: @ 81B6AB4
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x2
@@ -7159,7 +7159,7 @@ sub_81B7028: @ 81B7028
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -7461,7 +7461,7 @@ sub_81B72C8: @ 81B72C8
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
@@ -9243,7 +9243,7 @@ sub_81B82D4: @ 81B82D4
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -9521,7 +9521,7 @@ sub_81B8518: @ 81B8518
thumb_func_start sub_81B8558
sub_81B8558: @ 81B8558
push {lr}
- ldr r0, =gUnknown_0203CEF8
+ ldr r0, =gSelectedOrderFromParty
movs r1, 0
movs r2, 0x4
bl memset
@@ -9618,7 +9618,7 @@ _081B8618:
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
- ldr r3, =gUnknown_08611C9A
+ ldr r3, =gFrontierBannedSpecies
lsls r1, r6, 1
adds r0, r1, r3
ldrh r0, [r0]
@@ -9658,7 +9658,7 @@ sub_81B865C: @ 81B865C
lsls r0, 24
lsrs r2, r0, 24
adds r1, r2, 0
- ldr r3, =gUnknown_0203CEF8
+ ldr r3, =gSelectedOrderFromParty
adds r0, r2, r3
subs r0, 0x1
ldrb r0, [r0]
@@ -9703,7 +9703,7 @@ _081B86C0:
movs r5, 0
b _081B8750
_081B86CE:
- ldr r3, =gUnknown_0203CEF8
+ ldr r3, =gSelectedOrderFromParty
adds r4, r3, r5
ldrb r0, [r4]
movs r1, 0x64
@@ -9734,7 +9734,7 @@ _081B86CE:
bcs _081B8748
movs r7, 0x64
_081B870E:
- ldr r0, =gUnknown_0203CEF8
+ ldr r0, =gSelectedOrderFromParty
adds r5, r0, r4
ldrb r0, [r5]
muls r0, r7
@@ -9790,7 +9790,7 @@ sub_81B8770: @ 81B8770
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
- ldr r3, =gUnknown_0203CEF8
+ ldr r3, =gSelectedOrderFromParty
_081B877A:
adds r0, r1, r3
ldrb r0, [r0]
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s
deleted file mode 100644
index 579788e14..000000000
--- a/asm/pokedex_area_screen.s
+++ /dev/null
@@ -1,1892 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_813CA54
-sub_813CA54: @ 813CA54
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_813CA54
-
- thumb_func_start sub_813CA68
-sub_813CA68: @ 813CA68
- push {lr}
- sub sp, 0x4
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _0813CB20
- lsls r0, 2
- ldr r1, =_0813CA90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813CA90:
- .4byte _0813CAA4
- .4byte _0813CAB4
- .4byte _0813CABA
- .4byte _0813CAEC
- .4byte _0813CB10
-_0813CAA4:
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- ldrh r0, [r0, 0xE]
- bl sub_813CB40
- b _0813CB24
- .pool
-_0813CAB4:
- bl sub_813CF0C
- b _0813CB24
-_0813CABA:
- ldr r1, =gUnknown_085B3DB4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r0, =gUnknown_0203AB7C
- ldr r1, [r0]
- movs r0, 0x8B
- lsls r0, 1
- adds r1, r0
- movs r2, 0xA0
- lsls r2, 3
- movs r0, 0x2
- movs r3, 0
- bl LoadBgTilemap
- b _0813CB24
- .pool
-_0813CAEC:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _0813CB34
- ldr r0, =gUnknown_085B3D94
- ldr r1, =gPlttBufferUnfaded + 0x140
- ldr r2, =0x04000008
- bl CpuSet
- b _0813CB24
- .pool
-_0813CB10:
- ldr r1, =0xfffff800
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgY
- b _0813CB24
- .pool
-_0813CB20:
- movs r0, 0
- b _0813CB36
-_0813CB24:
- ldr r0, =gUnknown_0203AB7C
- ldr r1, [r0]
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_0813CB34:
- movs r0, 0x1
-_0813CB36:
- add sp, 0x4
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_813CA68
-
- thumb_func_start sub_813CB40
-sub_813CB40: @ 813CB40
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r5, =gUnknown_0203AB7C
- ldr r0, [r5]
- ldr r1, =0x000006e2
- adds r0, r1
- movs r4, 0
- strh r4, [r0]
- ldr r0, =0x0000403e
- bl VarGet
- ldr r1, [r5]
- ldr r2, =0x000006e4
- adds r1, r2
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _0813CB70
- strh r4, [r1]
-_0813CB70:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x000031dc
- adds r0, r3
- ldrh r1, [r0, 0x8]
- cmp r7, r1
- bne _0813CB80
- b _0813CCB8
-_0813CB80:
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 1
- adds r0, r1, r2
- strh r4, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r1, r3
- strh r4, [r0]
- movs r6, 0
- ldr r1, =gUnknown_085B3EE8
-_0813CB96:
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- bne _0813CBA2
- b _0813CCF8
-_0813CBA2:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _0813CB96
- movs r6, 0
- ldr r4, =gUnknown_085B3EF0
- ldrh r0, [r4]
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0813CC44
- mov r8, r4
- adds r5, r4, 0x4
- mov r9, r1
-_0813CBC0:
- lsls r0, r6, 1
- adds r1, r0, r6
- lsls r2, r1, 1
- mov r3, r8
- adds r1, r2, r3
- adds r3, r0, 0
- ldrh r1, [r1]
- cmp r7, r1
- bne _0813CC2E
- adds r0, r4, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, 0x18
- beq _0813CC1A
- cmp r0, 0x18
- bgt _0813CC08
- cmp r0, 0
- beq _0813CC0E
- b _0813CC2E
- .pool
-_0813CC08:
- cmp r0, 0x1A
- beq _0813CC1A
- b _0813CC2E
-_0813CC0E:
- adds r0, r2, r5
- ldrh r1, [r0]
- movs r0, 0
- bl sub_813CD04
- b _0813CC2E
-_0813CC1A:
- adds r1, r3, r6
- lsls r1, 1
- mov r0, r8
- adds r0, 0x2
- adds r0, r1, r0
- ldrh r0, [r0]
- adds r1, r5
- ldrh r1, [r1]
- bl sub_813CD64
-_0813CC2E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r4, =gUnknown_085B3EF0
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r9
- bne _0813CBC0
-_0813CC44:
- movs r6, 0
- ldr r1, =gWildMonHeaders
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0813CCF8
-_0813CC4E:
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 2
- adds r5, r0, r1
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_813CE48
- lsls r0, 24
- cmp r0, 0
- beq _0813CC9C
- ldrb r0, [r5]
- cmp r0, 0x18
- beq _0813CC8C
- cmp r0, 0x18
- bgt _0813CC7C
- cmp r0, 0
- beq _0813CC82
- b _0813CC9C
- .pool
-_0813CC7C:
- cmp r0, 0x1A
- beq _0813CC8C
- b _0813CC9C
-_0813CC82:
- ldrb r1, [r5, 0x1]
- movs r0, 0
- bl sub_813CD04
- b _0813CC9C
-_0813CC8C:
- ldr r0, =gWildMonHeaders
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_813CD64
-_0813CC9C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, =gWildMonHeaders
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0813CC4E
- b _0813CCF8
- .pool
-_0813CCB8:
- ldr r2, [r5]
- movs r3, 0x89
- lsls r3, 1
- adds r1, r2, r3
- strh r4, [r1]
- ldrb r1, [r0, 0x13]
- cmp r1, 0
- beq _0813CCF0
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x11
- bl GetRoamerLocation
- ldr r1, [r5]
- ldrb r0, [r1, 0x10]
- ldrb r1, [r1, 0x11]
- bl Overworld_GetMapHeaderByGroupAndId
- ldr r1, [r5]
- ldrb r0, [r0, 0x14]
- strh r0, [r1, 0x12]
- movs r0, 0x88
- lsls r0, 1
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1]
- b _0813CCF8
-_0813CCF0:
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
-_0813CCF8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813CB40
-
- thumb_func_start sub_813CD04
-sub_813CD04: @ 813CD04
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r4, =gUnknown_0203AB7C
- ldr r2, [r4]
- movs r0, 0x88
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0x3F
- bhi _0813CD58
- lsls r0, 2
- adds r0, r2, r0
- strb r5, [r0, 0x10]
- ldr r1, [r4]
- movs r2, 0x88
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r1, r0
- strb r3, [r1, 0x11]
- adds r0, r5, 0
- adds r1, r3, 0
- bl Overworld_GetMapHeaderByGroupAndId
- ldrb r0, [r0, 0x14]
- bl CorrectSpecialMapSecId
- ldr r2, [r4]
- movs r1, 0x88
- lsls r1, 1
- adds r3, r2, r1
- ldrh r1, [r3]
- lsls r1, 2
- adds r2, r1
- strh r0, [r2, 0x12]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_0813CD58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813CD04
-
- thumb_func_start sub_813CD64
-sub_813CD64: @ 813CD64
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0x1F
- bhi _0813CE22
- lsls r0, r2, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_813CE34
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD4
- bhi _0813CE22
- movs r3, 0
- ldr r0, =gUnknown_085B3EEA
-_0813CD96:
- ldrh r4, [r0]
- cmp r5, r4
- beq _0813CE22
- adds r0, 0x2
- adds r3, 0x1
- cmp r3, 0x2
- bls _0813CD96
- ldr r1, =gUnknown_085B3EFC
- ldrh r0, [r1]
- cmp r0, 0xD5
- beq _0813CDD2
- adds r4, r1, 0
- adds r7, r4, 0
- movs r6, 0
-_0813CDB2:
- ldrh r0, [r4]
- cmp r5, r0
- bne _0813CDC8
- adds r0, r7, 0x2
- adds r0, r6, r0
- ldrh r0, [r0]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0813CE22
-_0813CDC8:
- adds r4, 0x4
- adds r6, 0x4
- ldrh r0, [r4]
- cmp r0, 0xD5
- bne _0813CDB2
-_0813CDD2:
- movs r3, 0
- ldr r0, =gUnknown_0203AB7C
- ldr r2, [r0]
- movs r4, 0x89
- lsls r4, 1
- adds r1, r2, r4
- ldrh r4, [r1]
- adds r1, r0, 0
- cmp r3, r4
- bge _0813CE02
- movs r6, 0xC4
- lsls r6, 3
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r5
- beq _0813CE02
- adds r2, r6
-_0813CDF4:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, r4
- bge _0813CE02
- ldrh r0, [r2]
- cmp r0, r5
- bne _0813CDF4
-_0813CE02:
- ldr r1, [r1]
- movs r0, 0x89
- lsls r0, 1
- adds r2, r1, r0
- ldrh r4, [r2]
- cmp r3, r4
- bne _0813CE22
- lsls r0, r3, 1
- movs r6, 0xC4
- lsls r6, 3
- adds r1, r6
- adds r1, r0
- strh r5, [r1]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0813CE22:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813CD64
-
- thumb_func_start sub_813CE34
-sub_813CE34: @ 813CE34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl Overworld_GetMapHeaderByGroupAndId
- ldrb r0, [r0, 0x14]
- pop {r1}
- bx r1
- thumb_func_end sub_813CE34
-
- thumb_func_start sub_813CE48
-sub_813CE48: @ 813CE48
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_813CE34
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD2
- bne _0813CE7C
- ldr r0, =gUnknown_0203AB7C
- ldr r2, [r0]
- ldr r0, =0x000006e2
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrh r1, [r1]
- ldr r0, =0x000006e4
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- cmp r1, r0
- bne _0813CEBC
-_0813CE7C:
- ldr r0, [r4, 0x4]
- adds r1, r5, 0
- movs r2, 0xC
- bl sub_813CED4
- lsls r0, 24
- cmp r0, 0
- bne _0813CECC
- ldr r0, [r4, 0x8]
- adds r1, r5, 0
- movs r2, 0x5
- bl sub_813CED4
- lsls r0, 24
- cmp r0, 0
- bne _0813CECC
- ldr r0, [r4, 0x10]
- adds r1, r5, 0
- movs r2, 0xC
- bl sub_813CED4
- lsls r0, 24
- cmp r0, 0
- bne _0813CECC
- ldr r0, [r4, 0xC]
- adds r1, r5, 0
- movs r2, 0x5
- bl sub_813CED4
- lsls r0, 24
- cmp r0, 0
- bne _0813CECC
-_0813CEBC:
- movs r0, 0
- b _0813CECE
- .pool
-_0813CECC:
- movs r0, 0x1
-_0813CECE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_813CE48
-
- thumb_func_start sub_813CED4
-sub_813CED4: @ 813CED4
- push {r4,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0
- beq _0813CF02
- movs r3, 0
- cmp r3, r2
- bcs _0813CF02
- ldr r1, [r0, 0x4]
-_0813CEEA:
- lsls r0, r3, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, r4
- bne _0813CEF8
- movs r0, 0x1
- b _0813CF04
-_0813CEF8:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _0813CEEA
-_0813CF02:
- movs r0, 0
-_0813CF04:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_813CED4
-
- thumb_func_start sub_813CF0C
-sub_813CF0C: @ 813CF0C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r4, 0
- ldr r2, =gUnknown_0203AB7C
- adds r7, r2, 0
- movs r6, 0x8B
- lsls r6, 1
- movs r5, 0
- ldr r3, =0x0000027f
-_0813CF26:
- ldr r0, [r7]
- lsls r1, r4, 1
- adds r0, r6
- adds r0, r1
- strh r5, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r3
- bls _0813CF26
- movs r4, 0
- ldr r0, [r2]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bcs _0813CFB2
- adds r3, r2, 0
-_0813CF4C:
- movs r5, 0
- movs r6, 0
- adds r2, r4, 0x1
- mov r8, r2
- lsls r4, 2
- mov r9, r4
-_0813CF58:
- movs r4, 0
-_0813CF5A:
- adds r0, r4, 0
- adds r1, r6, 0
- str r3, [sp]
- bl GetRegionMapSectionIdAt
- ldr r3, [sp]
- ldr r2, [r3]
- mov r7, r9
- adds r1, r2, r7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x12]
- cmp r0, r1
- bne _0813CF84
- lsls r0, r5, 1
- movs r7, 0x8B
- lsls r7, 1
- adds r1, r2, r7
- adds r1, r0
- ldr r0, =0x0000ffff
- strh r0, [r1]
-_0813CF84:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0813CF5A
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x13
- bls _0813CF58
- mov r1, r8
- lsls r0, r1, 16
- lsrs r4, r0, 16
- ldr r0, [r3]
- movs r2, 0x88
- lsls r2, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r4, r0
- bcc _0813CF4C
-_0813CFB2:
- movs r5, 0
- movs r6, 0
- ldr r7, =gUnknown_0203AB7C
- mov r12, r7
- movs r7, 0x8B
- lsls r7, 1
- ldr r3, =0x0000ffff
-_0813CFC0:
- movs r4, 0
- adds r1, r6, 0x1
- mov r9, r1
-_0813CFC6:
- mov r2, r12
- ldr r0, [r2]
- lsls r1, r5, 1
- adds r2, r0, r7
- adds r1, r2, r1
- ldrh r0, [r1]
- adds r1, r5, 0x1
- mov r8, r1
- cmp r0, r3
- bne _0813D0D2
- cmp r4, 0
- beq _0813CFF0
- subs r0, r5, 0x1
- lsls r0, 1
- adds r1, r2, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813CFF0
- movs r0, 0x2
- orrs r0, r2
- strh r0, [r1]
-_0813CFF0:
- adds r2, r5, 0x1
- mov r8, r2
- cmp r4, 0x1F
- beq _0813D00E
- mov r1, r12
- ldr r0, [r1]
- lsls r1, r2, 1
- adds r0, r7
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, r3
- beq _0813D00E
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r2]
-_0813D00E:
- cmp r6, 0
- beq _0813D02C
- mov r2, r12
- ldr r1, [r2]
- adds r0, r5, 0
- subs r0, 0x20
- lsls r0, 1
- adds r1, r7
- adds r1, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813D02C
- movs r0, 0x8
- orrs r0, r2
- strh r0, [r1]
-_0813D02C:
- cmp r6, 0x13
- beq _0813D04A
- mov r0, r12
- ldr r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r1, r7
- adds r1, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813D04A
- movs r0, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0813D04A:
- cmp r4, 0
- beq _0813D06C
- cmp r6, 0
- beq _0813D06C
- mov r2, r12
- ldr r1, [r2]
- adds r0, r5, 0
- subs r0, 0x21
- lsls r0, 1
- adds r1, r7
- adds r1, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813D06C
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
-_0813D06C:
- cmp r4, 0x1F
- beq _0813D08E
- cmp r6, 0
- beq _0813D08E
- mov r0, r12
- ldr r1, [r0]
- adds r0, r5, 0
- subs r0, 0x1F
- lsls r0, 1
- adds r1, r7
- adds r1, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813D08E
- movs r0, 0x40
- orrs r0, r2
- strh r0, [r1]
-_0813D08E:
- cmp r4, 0
- beq _0813D0B0
- cmp r6, 0x13
- beq _0813D0B0
- mov r2, r12
- ldr r1, [r2]
- adds r0, r5, 0
- adds r0, 0x1F
- lsls r0, 1
- adds r1, r7
- adds r1, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813D0B0
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r1]
-_0813D0B0:
- cmp r4, 0x1F
- beq _0813D0D2
- cmp r6, 0x13
- beq _0813D0D2
- mov r0, r12
- ldr r1, [r0]
- adds r0, r5, 0
- adds r0, 0x21
- lsls r0, 1
- adds r1, r7
- adds r1, r0
- ldrh r2, [r1]
- cmp r2, r3
- beq _0813D0D2
- movs r0, 0x80
- orrs r0, r2
- strh r0, [r1]
-_0813D0D2:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bhi _0813D0E4
- b _0813CFC6
-_0813D0E4:
- mov r2, r9
- lsls r0, r2, 16
- lsrs r6, r0, 16
- cmp r6, 0x13
- bhi _0813D0F0
- b _0813CFC0
-_0813D0F0:
- movs r4, 0
- ldr r6, =gUnknown_0203AB7C
- movs r5, 0x8B
- lsls r5, 1
- ldr r7, =0x0000ffff
- mov r12, r7
- movs r0, 0xA0
- lsls r0, 8
- mov r9, r0
- ldr r7, =0x0000a010
- ldr r1, =0x0000ffcf
- mov r8, r1
-_0813D108:
- ldr r0, [r6]
- lsls r3, r4, 1
- adds r0, r5
- adds r2, r0, r3
- ldrh r1, [r2]
- adds r0, r1, 0
- cmp r0, r12
- bne _0813D130
- strh r7, [r2]
- b _0813D198
- .pool
-_0813D130:
- cmp r0, 0
- beq _0813D198
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813D142
- mov r0, r8
- ands r0, r1
- strh r0, [r2]
-_0813D142:
- ldr r0, [r6]
- adds r0, r5
- adds r2, r0, r3
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813D158
- ldr r0, =0x0000ff3f
- ands r0, r1
- strh r0, [r2]
-_0813D158:
- ldr r0, [r6]
- adds r0, r5
- adds r2, r0, r3
- ldrh r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0813D16E
- ldr r0, =0x0000ffaf
- ands r0, r1
- strh r0, [r2]
-_0813D16E:
- ldr r0, [r6]
- adds r0, r5
- adds r2, r0, r3
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0813D184
- ldr r0, =0x0000ff5f
- ands r0, r1
- strh r0, [r2]
-_0813D184:
- ldr r1, [r6]
- adds r1, r5
- adds r1, r3
- ldr r2, =gUnknown_085B3F18
- ldrh r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- mov r2, r9
- orrs r0, r2
- strh r0, [r1]
-_0813D198:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x0000027f
- cmp r4, r0
- bls _0813D108
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813CF0C
-
- thumb_func_start sub_813D1C8
-sub_813D1C8: @ 813D1C8
- push {lr}
- ldr r1, =gUnknown_0203AB7C
- ldr r2, [r1]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0
- beq _0813D1FC
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813D1FC
- ldr r0, =0x0000061e
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- b _0813D206
- .pool
-_0813D1FC:
- ldr r0, [r3]
- ldr r1, =0x0000061e
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0813D206:
- ldr r1, [r3]
- ldr r2, =0x00000616
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- movs r3, 0xC3
- lsls r3, 3
- adds r0, r1, r3
- strh r2, [r0]
- adds r3, 0x2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, =0x0000061c
- adds r2, r1, r0
- movs r0, 0x40
- strh r0, [r2]
- ldr r2, =0x0000061f
- adds r1, r2
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, =0x00003f44
- movs r0, 0x50
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0x52
- bl SetGpuReg
- bl sub_813D25C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D1C8
-
- thumb_func_start sub_813D25C
-sub_813D25C: @ 813D25C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gUnknown_0203AB7C
- ldr r2, [r0]
- ldr r3, =0x0000061e
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0
- bne _0813D32A
- ldr r0, =0x00000616
- adds r1, r2, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0813D324
- movs r1, 0xC3
- lsls r1, 3
- adds r0, r2, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0813D2A4
- subs r3, 0x4
- adds r0, r2, r3
- b _0813D2A8
- .pool
-_0813D2A4:
- ldr r1, =0x0000061c
- adds r0, r2, r1
-_0813D2A8:
- ldrh r1, [r0]
- adds r1, 0x4
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- ldr r3, =gSineTable
- ldr r1, [r7]
- ldr r2, =0x0000061a
- adds r0, r1, r2
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r3
- ldrh r2, [r0]
- lsls r2, 16
- asrs r2, 20
- lsls r2, 16
- ldr r0, =0x0000061c
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 20
- lsls r1, 24
- orrs r1, r2
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, [r7]
- ldr r2, =0x00000616
- adds r0, r1, r2
- movs r3, 0
- strh r3, [r0]
- movs r0, 0xC3
- lsls r0, 3
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0x40
- bne _0813D3C6
- strh r3, [r2]
- movs r2, 0x89
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813D3C6
- ldr r3, =0x0000061e
- adds r1, r3
- movs r0, 0x1
- b _0813D3C4
- .pool
-_0813D324:
- subs r0, 0x1
- strh r0, [r1]
- b _0813D3C6
-_0813D32A:
- ldr r0, =0x00000616
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC
- bls _0813D3C6
- movs r0, 0
- strh r0, [r1]
- ldr r3, =0x0000061f
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r4, 0
- ldr r0, [r7]
- movs r6, 0x89
- lsls r6, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r4, r0
- bcs _0813D3A0
- adds r5, r7, 0
- movs r0, 0x1
- mov r12, r0
- movs r1, 0x5
- negs r1, r1
- mov r8, r1
-_0813D366:
- ldr r1, [r5]
- lsls r2, r4, 2
- movs r3, 0xCC
- lsls r3, 3
- adds r0, r1, r3
- adds r0, r2
- ldr r3, [r0]
- ldr r0, =0x0000061f
- adds r1, r0
- ldrb r0, [r1]
- movs r1, 0x1
- adds r3, 0x3E
- ands r1, r0
- mov r2, r12
- ands r1, r2
- lsls r1, 2
- ldrb r2, [r3]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- adds r0, r6
- ldrh r0, [r0]
- cmp r4, r0
- bcc _0813D366
-_0813D3A0:
- ldr r0, [r7]
- ldr r3, =0x0000061f
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0x4
- bls _0813D3C6
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, [r7]
- movs r2, 0x88
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813D3C6
- subs r3, 0x1
- adds r1, r3
- movs r0, 0
-_0813D3C4:
- strb r0, [r1]
-_0813D3C6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D25C
-
- thumb_func_start sub_813D3D8
-sub_813D3D8: @ 813D3D8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r5, =gUnknown_0203AB7C
- ldr r0, =0x000015bc
- bl AllocZeroed
- str r0, [r5]
- movs r1, 0
- movs r5, 0
- strh r4, [r0, 0xE]
- movs r2, 0xDD
- lsls r2, 3
- adds r0, r2
- str r6, [r0]
- strb r1, [r6]
- ldr r0, =sub_813D42C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D3D8
-
- thumb_func_start sub_813D42C
-sub_813D42C: @ 813D42C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0xB
- bls _0813D44A
- b _0813D584
-_0813D44A:
- lsls r0, 2
- ldr r1, =_0813D45C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0813D45C:
- .4byte _0813D48C
- .4byte _0813D4A8
- .4byte _0813D4D4
- .4byte _0813D4E6
- .4byte _0813D4EC
- .4byte _0813D4F8
- .4byte _0813D520
- .4byte _0813D526
- .4byte _0813D52C
- .4byte _0813D532
- .4byte _0813D544
- .4byte _0813D56C
-_0813D48C:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x3
- bl HideBg
- movs r0, 0x2
- bl HideBg
- movs r0, 0
- bl HideBg
- b _0813D584
-_0813D4A8:
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x3
- bl SetBgAttribute
- ldr r0, =gUnknown_085B4018
- bl sub_81C4D70
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- movs r1, 0xF7
- lsls r1, 4
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- b _0813D584
- .pool
-_0813D4D4:
- bl sub_81C4E90
- cmp r0, 0x1
- beq _0813D594
- movs r0, 0x8
- negs r0, r0
- bl sub_81C4ED0
- b _0813D584
-_0813D4E6:
- bl sub_813CA54
- b _0813D584
-_0813D4EC:
- bl sub_813CA68
- lsls r0, 24
- cmp r0, 0
- bne _0813D594
- b _0813D584
-_0813D4F8:
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- ldr r2, =0x000006ec
- adds r0, r2
- bl sub_8122D88
- movs r0, 0x1
- movs r1, 0x1
- bl CreateRegionMapPlayerIcon
- movs r1, 0x8
- negs r1, r1
- movs r0, 0
- bl PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs
- b _0813D584
- .pool
-_0813D520:
- bl sub_813D6D0
- b _0813D584
-_0813D526:
- bl sub_813D8A8
- b _0813D584
-_0813D52C:
- bl sub_813D8E8
- b _0813D584
-_0813D532:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0813D584
-_0813D544:
- ldr r1, =0x00003f41
- movs r0, 0x50
- bl SetGpuReg
- bl sub_813D1C8
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r1, 0x80
- lsls r1, 5
- movs r0, 0
- bl SetGpuRegBits
- b _0813D584
- .pool
-_0813D56C:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_813D5A0
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x8]
- b _0813D594
- .pool
-_0813D584:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0813D594:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D42C
-
- thumb_func_start sub_813D5A0
-sub_813D5A0: @ 813D5A0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_813D25C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- cmp r1, 0x1
- beq _0813D5F8
- cmp r1, 0x1
- bgt _0813D5CC
- cmp r1, 0
- beq _0813D5E2
- b _0813D5D4
- .pool
-_0813D5CC:
- cmp r1, 0x2
- beq _0813D640
- cmp r1, 0x3
- beq _0813D652
-_0813D5D4:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
-_0813D5E2:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813D6A8
- b _0813D698
- .pool
-_0813D5F8:
- ldr r0, =gMain
- ldrh r2, [r0, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _0813D614
- strh r1, [r6, 0xA]
- movs r0, 0x3
- bl PlaySE
- b _0813D698
- .pool
-_0813D614:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0813D630
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0813D6A8
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813D6A8
-_0813D630:
- strh r3, [r6, 0xA]
- movs r0, 0x6D
- bl PlaySE
- b _0813D698
- .pool
-_0813D640:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0813D698
-_0813D652:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _0813D6A8
- bl sub_813D824
- ldr r4, =gUnknown_0203AB7C
- ldr r0, [r4]
- movs r1, 0xDD
- lsls r1, 3
- adds r0, r1
- ldr r1, [r0]
- ldrh r0, [r6, 0xA]
- strb r0, [r1]
- bl sub_813D6B4
- adds r0, r5, 0
- bl DestroyTask
- bl sub_81C4EB4
- ldr r0, [r4]
- bl Free
- str r7, [r4]
- b _0813D6A8
- .pool
-_0813D698:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0813D6A8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D5A0
-
- thumb_func_start sub_813D6B4
-sub_813D6B4: @ 813D6B4
- push {lr}
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0x3
- movs r1, 0x4
- movs r2, 0
- bl SetBgAttribute
- pop {r0}
- bx r0
- thumb_func_end sub_813D6B4
-
- thumb_func_start sub_813D6D0
-sub_813D6D0: @ 813D6D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gUnknown_085B401C
- bl LoadSpriteSheet
- ldr r0, =gUnknown_085B4024
- bl LoadSpritePalette
- ldr r0, =gUnknown_03001204
- movs r1, 0
- strh r1, [r0]
- ldr r2, =gUnknown_03001200
- strh r1, [r2]
- ldr r1, =gUnknown_0203AB7C
- ldr r0, [r1]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813D7D8
- ldr r5, =gUnknown_03001202
- mov r10, r1
- adds r7, r2, 0
- ldr r0, =gUnknown_030011FC
- mov r9, r0
- ldr r6, =gRegionMapEntries
- ldr r1, =gUnknown_030011FE
- mov r8, r1
-_0813D710:
- mov r2, r10
- ldr r1, [r2]
- movs r3, 0
- ldrsh r0, [r7, r3]
- lsls r0, 1
- movs r2, 0xC4
- lsls r2, 3
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r5]
- movs r3, 0
- ldrsh r0, [r5, r3]
- lsls r0, 3
- adds r0, r6
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 3
- adds r1, 0x4
- mov r0, r9
- strh r1, [r0]
- movs r2, 0
- ldrsh r0, [r5, r2]
- lsls r0, 3
- adds r0, r6
- ldrb r2, [r0, 0x1]
- lsls r2, 3
- adds r2, 0x1C
- mov r3, r8
- strh r2, [r3]
- movs r3, 0
- ldrsh r0, [r5, r3]
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- lsls r0, 2
- adds r1, r0
- mov r0, r9
- strh r1, [r0]
- movs r1, 0
- ldrsh r0, [r5, r1]
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x3]
- subs r0, 0x1
- lsls r0, 2
- adds r2, r0
- mov r3, r8
- strh r2, [r3]
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, =gUnknown_085B4034
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0813D7BE
- ldr r0, =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- mov r1, r10
- ldr r3, [r1]
- ldr r4, =gUnknown_03001204
- ldrh r1, [r4]
- adds r0, r1, 0x1
- strh r0, [r4]
- lsls r1, 16
- asrs r1, 14
- movs r0, 0xCC
- lsls r0, 3
- adds r3, r0
- adds r3, r1
- str r2, [r3]
-_0813D7BE:
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- movs r2, 0
- ldrsh r1, [r7, r2]
- mov r3, r10
- ldr r0, [r3]
- movs r2, 0x89
- lsls r2, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- blt _0813D710
-_0813D7D8:
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- ldr r1, =gUnknown_03001204
- ldrh r1, [r1]
- movs r3, 0xDC
- lsls r3, 3
- adds r0, r3
- strh r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D6D0
-
- thumb_func_start sub_813D824
-sub_813D824: @ 813D824
- push {r4,r5,lr}
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- movs r0, 0x2
- bl FreeSpritePaletteByTag
- movs r4, 0
- ldr r1, =gUnknown_0203AB7C
- ldr r0, [r1]
- movs r2, 0xDC
- lsls r2, 3
- adds r0, r2
- ldrh r0, [r0]
- cmp r4, r0
- bcs _0813D86C
- adds r5, r1, 0
-_0813D846:
- ldr r0, [r5]
- lsls r1, r4, 2
- movs r2, 0xCC
- lsls r2, 3
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- movs r1, 0xDC
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bcc _0813D846
-_0813D86C:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
- movs r0, 0x3
- bl FreeSpritePaletteByTag
- movs r4, 0
-_0813D87A:
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- lsls r1, r4, 2
- movs r2, 0xFB
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0813D892
- bl DestroySprite
-_0813D892:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _0813D87A
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D824
-
- thumb_func_start sub_813D8A8
-sub_813D8A8: @ 813D8A8
- push {lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203AB7C
- ldr r1, [r0]
- ldr r0, =0x00000fbc
- adds r1, r0
- str r1, [sp]
- ldr r0, =0x00030600
- str r0, [sp, 0x4]
- ldr r0, =gPokedexAreaScreenAreaUnknown_Gfx
- bl LZ77UnCompWram
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, =gUnknown_085B40EC
- bl LoadSpritePalette
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D8A8
-
- thumb_func_start sub_813D8E8
-sub_813D8E8: @ 813D8E8
- push {r4-r6,lr}
- ldr r1, =gUnknown_0203AB7C
- ldr r0, [r1]
- movs r2, 0x88
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _0813D920
- movs r4, 0
- adds r5, r1, 0
- movs r3, 0xFB
- lsls r3, 4
- movs r2, 0
-_0813D904:
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, r3
- adds r0, r1
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _0813D904
- b _0813D9A4
- .pool
-_0813D920:
- movs r4, 0
- ldr r5, =gSprites
-_0813D924:
- lsls r1, r4, 21
- movs r6, 0xA0
- lsls r6, 16
- adds r1, r6
- asrs r1, 16
- ldr r0, =gSpriteTemplate_85B40FC
- movs r2, 0x8C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813D988
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r5
- ldrh r2, [r3, 0x4]
- lsls r0, r2, 22
- lsrs r0, 22
- lsls r1, r4, 4
- adds r0, r1
- ldr r6, =0x000003ff
- adds r1, r6, 0
- ands r0, r1
- ldr r6, =0xfffffc00
- adds r1, r6, 0
- ands r2, r1
- orrs r2, r0
- strh r2, [r3, 0x4]
- ldr r0, =gUnknown_0203AB7C
- ldr r0, [r0]
- lsls r1, r4, 2
- movs r2, 0xFB
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- str r3, [r0]
- b _0813D99A
- .pool
-_0813D988:
- ldr r0, =gUnknown_0203AB7C
- ldr r1, [r0]
- lsls r0, r4, 2
- movs r6, 0xFB
- lsls r6, 4
- adds r1, r6
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_0813D99A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _0813D924
-_0813D9A4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_813D8E8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s
deleted file mode 100644
index 846b20881..000000000
--- a/asm/pokedex_cry_screen.s
+++ /dev/null
@@ -1,1010 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8145354
-sub_8145354: @ 8145354
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r0, 0
- mov r8, r0
- ldr r0, =gUnknown_030061EC
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081453F8
- cmp r0, 0x1
- bgt _0814537C
- cmp r0, 0
- beq _08145382
- b _0814544A
- .pool
-_0814537C:
- cmp r0, 0x2
- beq _08145434
- b _0814544A
-_08145382:
- ldr r5, =gUnknown_0203AB90
- ldr r0, [r5]
- cmp r0, 0
- bne _0814539E
- movs r0, 0x1C
- bl AllocZeroed
- str r0, [r5]
- ldr r4, =gUnknown_0203AB94
- adds r0, r7, 0
- movs r1, 0x7
- bl GetWindowAttribute
- str r0, [r4]
-_0814539E:
- ldr r1, [r5]
- ldrh r0, [r6]
- movs r2, 0
- strh r0, [r1, 0x14]
- ldrb r0, [r6, 0x5]
- strb r0, [r1, 0x16]
- ldr r0, [r5]
- strb r2, [r0, 0x1A]
- ldr r0, [r5]
- strb r2, [r0, 0x1B]
- ldr r0, [r5]
- strb r2, [r0, 0x10]
- ldr r1, [r5]
- movs r0, 0x1C
- strb r0, [r1, 0x12]
- ldr r0, [r5]
- strb r2, [r0, 0x11]
- ldrb r1, [r6, 0x4]
- lsls r1, 19
- negs r1, r1
- asrs r1, 16
- adds r0, r7, 0
- movs r2, 0x1
- bl sub_8145824
- movs r4, 0
-_081453D2:
- adds r0, r7, 0
- ldr r1, =gUnknown_085B8C10
- movs r2, 0x20
- adds r3, r4, 0
- bl CopyToWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xDF
- bls _081453D2
- b _08145420
- .pool
-_081453F8:
- movs r4, 0
- ldr r1, =gUnknown_0203AB90
- ldr r0, [r1]
- ldrb r0, [r0, 0x16]
- lsls r0, 3
- cmp r8, r0
- bge _08145420
- adds r5, r1, 0
-_08145408:
- adds r0, r4, 0
- movs r1, 0
- bl sub_81456A8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [r5]
- ldrb r0, [r0, 0x16]
- lsls r0, 3
- cmp r4, r0
- blt _08145408
-_08145420:
- ldr r1, =gUnknown_030061EC
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0814544A
- .pool
-_08145434:
- adds r0, r7, 0
- bl sub_8145814
- ldr r0, =gUnknown_085B8BF0
- ldrb r1, [r6, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
- mov r8, r0
-_0814544A:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8145354
-
- thumb_func_start sub_814545C
-sub_814545C: @ 814545C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8145814
- adds r0, r4, 0
- bl sub_8145648
- ldr r2, =gUnknown_0203AB90
- ldr r1, [r2]
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _0814547E
- subs r0, 0x1
- strb r0, [r1, 0x1B]
-_0814547E:
- ldr r1, [r2]
- ldrb r0, [r1, 0x1A]
- cmp r0, 0
- beq _081454A4
- subs r0, 0x1
- strb r0, [r1, 0x1A]
- ldr r1, [r2]
- ldrb r0, [r1, 0x1A]
- cmp r0, 0
- bne _081454A4
- ldrh r0, [r1, 0x18]
- bl sub_8145588
- bl sub_814560C
- b _0814552A
- .pool
-_081454A4:
- ldr r5, =gUnknown_0203AB90
- ldr r0, [r5]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _081454B8
- bl sub_814560C
- b _0814552A
- .pool
-_081454B8:
- cmp r0, 0x1
- bne _081454C2
- bl sub_81455A8
- b _081454E6
-_081454C2:
- cmp r0, 0x8
- bls _081454E6
- bl IsCryPlaying
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081454DC
- bl sub_814560C
- ldr r0, [r5]
- strb r4, [r0, 0x10]
- b _0814552A
-_081454DC:
- bl sub_81455A8
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1, 0x10]
-_081454E6:
- ldr r5, =gUnknown_0203AB90
- ldr r1, [r5]
- ldrb r4, [r1, 0x10]
- subs r4, 0x1
- lsls r4, 25
- lsrs r4, 24
- ldrb r0, [r1, 0x16]
- lsls r0, 3
- ldrb r2, [r1, 0x11]
- adds r0, r2
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4
- ldrb r1, [r1]
- bl sub_81456A8
- ldr r1, [r5]
- ldrb r0, [r1, 0x16]
- lsls r0, 3
- ldrb r2, [r1, 0x11]
- adds r0, r2
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r4, 0x1
- adds r1, r4
- ldrb r1, [r1]
- bl sub_81456A8
- ldr r1, [r5]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_0814552A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814545C
-
- thumb_func_start sub_8145534
-sub_8145534: @ 8145534
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r5, r4, 0
- ldr r0, =gMPlayInfo_BGM
- ldr r0, [r0, 0x4]
- cmp r0, 0
- bge _08145582
- ldr r6, =gUnknown_0203AB90
- ldr r1, [r6]
- ldrb r0, [r1, 0x1A]
- cmp r0, 0
- bne _08145582
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- bne _08145582
- movs r0, 0x4
- strb r0, [r1, 0x1B]
- bl IsCryPlaying
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0814557C
- bl StopCry
- ldr r1, [r6]
- strh r4, [r1, 0x18]
- movs r0, 0x2
- strb r0, [r1, 0x1A]
- b _08145582
- .pool
-_0814557C:
- adds r0, r5, 0
- bl sub_8145588
-_08145582:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8145534
-
- thumb_func_start sub_8145588
-sub_8145588: @ 8145588
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- ldr r0, =gUnknown_0203AB90
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145588
-
- thumb_func_start sub_81455A8
-sub_81455A8: @ 81455A8
- push {r4,lr}
- ldr r3, =gPcmDmaCounter
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r0, 0x1
- bgt _081455C0
- ldr r0, =gSoundInfo + 0x350
- b _081455D8
- .pool
-_081455C0:
- ldr r2, =gSoundInfo
- ldrb r1, [r2, 0xB]
- movs r0, 0
- ldrsb r0, [r3, r0]
- subs r0, 0x1
- subs r1, r0
- ldr r0, [r2, 0x10]
- muls r0, r1
- movs r1, 0xD4
- lsls r1, 2
- adds r2, r1
- adds r0, r2
-_081455D8:
- movs r1, 0xC6
- lsls r1, 3
- adds r3, r0, r1
- movs r2, 0
- ldr r4, =gUnknown_0203AB90
-_081455E2:
- ldr r1, [r4]
- adds r1, r2
- lsls r0, r2, 1
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _081455E2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81455A8
-
- thumb_func_start sub_814560C
-sub_814560C: @ 814560C
- push {r4,lr}
- ldr r4, =gUnknown_0203AB90
- ldr r1, [r4]
- ldrb r0, [r1, 0x16]
- lsls r0, 3
- ldrb r1, [r1, 0x11]
- adds r0, r1
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_81456A8
- ldr r1, [r4]
- ldrb r0, [r1, 0x16]
- lsls r0, 3
- ldrb r1, [r1, 0x11]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_81456A8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814560C
-
- thumb_func_start sub_8145648
-sub_8145648: @ 8145648
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, =gUnknown_0203AB90
- ldr r0, [r4]
- ldrb r1, [r0, 0x11]
- adds r0, r6, 0
- movs r2, 0
- bl sub_8145824
- ldr r1, [r4]
- ldrb r0, [r1, 0x11]
- adds r0, 0x2
- strb r0, [r1, 0x11]
- ldr r1, [r4]
- ldrb r0, [r1, 0x11]
- lsrs r0, 3
- ldrb r1, [r1, 0x16]
- adds r1, r0, r1
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_0814567E:
- lsls r3, r4, 5
- adds r3, r5, r3
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- ldr r1, =gUnknown_085B8C10
- movs r2, 0x20
- bl CopyToWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _0814567E
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145648
-
- thumb_func_start sub_81456A8
-sub_81456A8: @ 81456A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r7, r0, 24
- lsrs r4, r7, 24
- lsls r1, 24
- movs r0, 0xFE
- lsls r0, 23
- adds r1, r0
- lsrs r1, 16
- adds r0, r1, 0
- bl __floatsidf
- ldr r3, _08145768
- ldr r2, _08145764
- bl __divdf3
- bl __fixunsdfsi
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x37
- bls _081456DE
- movs r5, 0x37
-_081456DE:
- str r5, [sp]
- movs r6, 0x1
- ands r6, r4
- ldr r0, _0814576C
- ldr r1, [r0]
- lsrs r7, 27
- mov r8, r7
- ldr r0, _08145770
- ldrb r1, [r1, 0x12]
- cmp r5, r1
- bls _08145780
- ldr r3, _08145774
- adds r0, r6, r0
- ldrb r0, [r0]
- mov r9, r0
- movs r7, 0x7
- ands r7, r4
-_08145700:
- lsls r1, r5, 1
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 4
- adds r1, r0
- ldr r2, _08145778
- adds r1, r2
- mov r4, r8
- lsls r0, r4, 5
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r3]
- adds r1, r2
- ldrb r0, [r1]
- mov r4, r9
- ands r0, r4
- strb r0, [r1]
- ldr r4, [r3]
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x3
- str r3, [sp, 0x4]
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- movs r1, 0xF
- ands r0, r1
- lsls r1, r6, 4
- adds r0, r1
- ldr r1, _0814577C
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- orrs r1, r0
- strb r1, [r4]
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0814576C
- ldr r0, [r2]
- ldr r3, [sp, 0x4]
- ldrb r0, [r0, 0x12]
- cmp r5, r0
- bhi _08145700
- b _081457EA
- .align 2, 0
-_08145764: .4byte 0x40920000
-_08145768: .4byte 0x00000000
-_0814576C: .4byte gUnknown_0203AB90
-_08145770: .4byte gUnknown_085B8C30
-_08145774: .4byte gUnknown_0203AB94
-_08145778: .4byte gUnknown_085B8770
-_0814577C: .4byte gUnknown_085B8C32
-_08145780:
- lsls r3, r6, 4
- mov r10, r3
- ldr r7, _08145804
- adds r0, r6, r0
- ldrb r0, [r0]
- mov r9, r0
- movs r6, 0x7
- ands r6, r4
-_08145790:
- lsls r1, r5, 1
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 4
- adds r1, r0
- ldr r4, _08145808
- adds r1, r4
- mov r2, r8
- lsls r0, r2, 5
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- adds r1, r2
- ldrb r0, [r1]
- mov r3, r9
- ands r0, r3
- strb r0, [r1]
- ldr r4, [r7]
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- movs r1, 0xF
- ands r0, r1
- add r0, r10
- ldr r1, _0814580C
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- orrs r1, r0
- strb r1, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _08145810
- ldr r0, [r2]
- ldrb r0, [r0, 0x12]
- cmp r5, r0
- bcc _08145790
-_081457EA:
- ldr r3, _08145810
- ldr r0, [r3]
- mov r4, sp
- ldrb r4, [r4]
- strb r4, [r0, 0x12]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08145804: .4byte gUnknown_0203AB94
-_08145808: .4byte gUnknown_085B8770
-_0814580C: .4byte gUnknown_085B8C32
-_08145810: .4byte gUnknown_0203AB90
- thumb_func_end sub_81456A8
-
- thumb_func_start sub_8145814
-sub_8145814: @ 8145814
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8145814
-
- thumb_func_start sub_8145824
-sub_8145824: @ 8145824
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- cmp r2, 0
- bne _08145848
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 16
- asrs r1, 8
- movs r2, 0
- bl ChangeBgX
-_08145848:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145824
-
- thumb_func_start sub_8145850
-sub_8145850: @ 8145850
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r0, 0
- mov r8, r0
- ldr r6, =gUnknown_030061EC
- ldrb r0, [r6]
- cmp r0, 0
- beq _08145874
- cmp r0, 0x1
- beq _081458B0
- b _081458F8
- .pool
-_08145874:
- ldr r5, =gUnknown_0203AB98
- ldr r0, [r5]
- cmp r0, 0
- bne _08145884
- movs r0, 0x8
- bl AllocZeroed
- str r0, [r5]
-_08145884:
- ldr r1, =gUnknown_085B8438
- adds r0, r7, 0
- movs r2, 0
- movs r3, 0
- bl CopyToWindowPixelBuffer
- ldr r0, =gUnknown_085B8418
- ldrb r1, [r4, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _081458F8
- .pool
-_081458B0:
- ldr r0, =gCryMeterNeedleSpriteSheets
- bl LoadSpriteSheets
- ldr r0, =gCryMeterNeedleSpritePalettes
- bl LoadSpritePalettes
- ldr r0, =gUnknown_085B8C68
- ldrb r1, [r4, 0x4]
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r4, 0x5]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0x1
- bl CreateSprite
- ldr r2, =gUnknown_0203AB98
- ldr r3, [r2]
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- strh r0, [r3, 0x4]
- movs r1, 0x20
- strb r1, [r3]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- strb r4, [r0, 0x2]
- movs r0, 0x1
- mov r8, r0
-_081458F8:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8145850
-
- thumb_func_start sub_8145914
-sub_8145914: @ 8145914
- push {r4-r6,lr}
- ldr r4, =gSprites
- ldr r6, =gUnknown_0203AB98
- ldr r0, [r6]
- ldrh r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldr r0, [r6]
- ldrh r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r4, =gUnknown_0203AB90
- ldr r0, [r4]
- bl Free
- movs r5, 0
- str r5, [r4]
- ldr r0, [r6]
- bl Free
- str r5, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145914
-
- thumb_func_start sub_814596C
-sub_814596C: @ 814596C
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r3, =gSprites
- ldr r4, =gUnknown_0203AB98
- ldr r0, [r4]
- ldrh r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r2, [r4]
- ldrh r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldr r0, =gUnknown_0203AB90
- ldr r0, [r0]
- ldrb r1, [r0, 0x10]
- cmp r1, 0x2
- beq _081459E8
- cmp r1, 0x2
- bgt _081459C0
- cmp r1, 0
- beq _081459C6
- b _08145A2E
- .pool
-_081459C0:
- cmp r1, 0x6
- beq _08145A20
- b _08145A2E
-_081459C6:
- movs r0, 0x20
- strb r0, [r2, 0x1]
- ldr r1, [r4]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- ble _081459E2
- ldrb r0, [r1, 0x2]
- add r4, sp, 0xC
- cmp r0, 0x1
- beq _08145A30
- subs r0, 0x1
- strb r0, [r1, 0x2]
- b _08145A30
-_081459E2:
- movs r0, 0x5
- strb r0, [r1, 0x2]
- b _08145A2E
-_081459E8:
- movs r3, 0
- movs r2, 0
- add r4, sp, 0xC
- adds r5, r0, 0
-_081459F0:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r1, r0
- bge _081459FE
- adds r3, r0, 0
-_081459FE:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _081459F0
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0xD0
- muls r0, r1
- cmp r0, 0
- bge _08145A16
- adds r0, 0xFF
-_08145A16:
- lsls r0, 16
- asrs r0, 24
- bl sub_8145B24
- b _08145A30
-_08145A20:
- ldrb r1, [r0, 0xA]
- movs r0, 0xD0
- muls r0, r1
- lsls r0, 16
- asrs r0, 24
- bl sub_8145B24
-_08145A2E:
- add r4, sp, 0xC
-_08145A30:
- ldr r0, =gUnknown_0203AB98
- ldr r2, [r0]
- ldrb r5, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- movs r3, 0x1
- ldrsb r3, [r2, r3]
- adds r6, r0, 0
- cmp r1, r3
- beq _08145A82
- cmp r1, r3
- bge _08145A64
- ldrb r0, [r2, 0x2]
- adds r0, r5, r0
- strb r0, [r2]
- ldr r2, [r6]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldrb r3, [r2, 0x1]
- movs r0, 0x1
- ldrsb r0, [r2, r0]
- cmp r1, r0
- ble _08145A82
- b _08145A7A
- .pool
-_08145A64:
- ldrb r0, [r2, 0x2]
- subs r0, r5, r0
- strb r0, [r2]
- ldr r2, [r6]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldrb r3, [r2, 0x1]
- movs r0, 0x1
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _08145A82
-_08145A7A:
- strb r3, [r2]
- ldr r1, [r6]
- movs r0, 0
- strb r0, [r1, 0x1]
-_08145A82:
- ldr r2, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r2
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- ldr r1, =0x0000ffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r0, [r6]
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 24
- lsrs r1, 16
- ldr r0, [sp, 0x8]
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- add r0, sp, 0xC
- ldrh r1, [r0]
- ldrh r2, [r4, 0x2]
- ldrh r3, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- str r0, [sp]
- movs r0, 0
- bl SetOamMatrix
- ldr r2, =gSineTable
- ldr r0, [r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x7F
- movs r1, 0xFF
- ands r0, r1
- lsls r1, r0, 1
- adds r1, r2
- adds r0, 0x40
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _08145AF6
- adds r0, 0xFF
-_08145AF6:
- asrs r0, 8
- strh r0, [r7, 0x24]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _08145B0A
- adds r0, 0xFF
-_08145B0A:
- asrs r0, 8
- strh r0, [r7, 0x26]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814596C
-
- thumb_func_start sub_8145B24
-sub_8145B24: @ 8145B24
- push {lr}
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x20
- subs r2, r1, r0
- movs r0, 0xFF
- ands r2, r0
- adds r0, r2, 0
- subs r0, 0x21
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _08145B40
- movs r2, 0xE0
-_08145B40:
- ldr r1, =gUnknown_0203AB98
- ldr r0, [r1]
- strb r2, [r0, 0x1]
- ldr r1, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x2]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145B24
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 9d5603085..3fefdd530 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1904,7 +1904,7 @@ _080C8F0C:
adds r0, 0x1
strb r0, [r1]
_080C8F22:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -2628,7 +2628,7 @@ _080C9584:
b _080C9664
.pool
_080C95A4:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3422,7 +3422,7 @@ _080C9C78:
b _080C9CAA
.pool
_080C9C8C:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3553,7 +3553,7 @@ _080C9DAC:
b _080C9DE0
.pool
_080C9DC0:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
diff --git a/asm/pokenav.s b/asm/pokenav.s
index cfad3feda..6fedbbd58 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -10440,7 +10440,7 @@ sub_81CC158: @ 81CC158
adds r1, 0xF
bl sub_81CAF78
adds r5, r0, 0
- bl GetPlayerTextSpeed
+ bl GetPlayerTextSpeedDelay
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4, 0x14]
@@ -22957,7 +22957,7 @@ sub_81D2BF4: @ 81D2BF4
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl GetPlayerTextSpeed
+ bl GetPlayerTextSpeedDelay
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -28371,7 +28371,7 @@ _081D5764:
adds r1, 0x4
adds r0, r1
adds r0, 0x10
- bl ConvertBattleFrontierTrainerSpeechToString
+ bl FrontierSpeechToString
b _081D580E
.pool
_081D5790:
@@ -28392,7 +28392,7 @@ _081D5790:
adds r1, 0x4
adds r0, r1
adds r0, 0x1C
- bl ConvertBattleFrontierTrainerSpeechToString
+ bl FrontierSpeechToString
b _081D580E
.pool
_081D57BC:
@@ -28413,7 +28413,7 @@ _081D57BC:
adds r1, 0x4
adds r0, r1
adds r0, 0x28
- bl ConvertBattleFrontierTrainerSpeechToString
+ bl FrontierSpeechToString
b _081D580E
.pool
_081D57E8:
@@ -28434,7 +28434,7 @@ _081D57E8:
adds r1, 0x4
adds r0, r1
adds r0, 0x34
- bl ConvertBattleFrontierTrainerSpeechToString
+ bl FrontierSpeechToString
_081D580E:
bl sub_81D5710
pop {r4-r6}
@@ -29731,7 +29731,7 @@ sub_81D62CC: @ 81D62CC
lsls r0, r1, 24
lsrs r6, r0, 24
bl sub_81D56B0
- bl sub_8165CB4
+ bl GetHighestLevelInPlayerParty
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -30184,7 +30184,7 @@ _081D6670:
asrs r0, 1
lsls r0, 1
subs r4, r0
- ldr r0, =0x00000864
+ ldr r0, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
bl FlagGet
lsls r0, 24
cmp r0, 0
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
deleted file mode 100644
index c6d4fd88f..000000000
--- a/asm/post_battle_event_funcs.s
+++ /dev/null
@@ -1,165 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GameClear
-GameClear: @ 8137734
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- bl HealPlayerParty
- ldr r4, =0x00000864
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _08137760
- ldr r0, =gHasHallOfFameRecords
- strb r1, [r0]
- b _0813776C
- .pool
-_08137760:
- ldr r1, =gHasHallOfFameRecords
- movs r0, 0
- strb r0, [r1]
- adds r0, r4, 0
- bl FlagSet
-_0813776C:
- movs r0, 0x1
- bl GetGameStat
- cmp r0, 0
- bne _0813778E
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrh r1, [r2, 0xE]
- lsls r1, 16
- ldrb r0, [r2, 0x10]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x11]
- orrs r1, r0
- movs r0, 0x1
- bl SetGameStat
-_0813778E:
- bl sub_8076D48
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _081377AC
- movs r0, 0x1
- bl sub_8084F6C
- b _081377B2
- .pool
-_081377AC:
- movs r0, 0x2
- bl sub_8084F6C
-_081377B2:
- movs r7, 0
- movs r6, 0
- add r0, sp, 0x18
- mov r8, r0
- mov r5, sp
-_081377BC:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- movs r0, 0
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0813780A
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _0813780A
- adds r0, r4, 0
- movs r1, 0x43
- bl GetMonData
- cmp r0, 0
- bne _0813780A
- movs r0, 0x1
- mov r1, r8
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x43
- add r2, sp, 0x18
- bl SetMonData
- adds r0, r4, 0
- bl GetRibbonCount
- strb r0, [r5, 0x1]
- movs r7, 0x1
-_0813780A:
- adds r5, 0x4
- adds r6, 0x1
- cmp r6, 0x5
- ble _081377BC
- cmp r7, 0x1
- bne _0813785A
- movs r0, 0x2A
- bl IncrementGameStat
- ldr r0, =0x0000089b
- bl FlagSet
- mov r3, sp
- add r2, sp, 0x4
- movs r6, 0x4
-_08137828:
- ldrb r1, [r3, 0x1]
- ldrb r0, [r2, 0x1]
- cmp r0, r1
- bls _08137838
- ldr r1, [sp]
- ldr r0, [r2]
- str r0, [sp]
- str r1, [r2]
-_08137838:
- adds r2, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _08137828
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- bls _0813785A
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x43
- bl sub_80EE4DC
-_0813785A:
- ldr r0, =CB2_DoHallOfFameScreen
- bl SetMainCallback2
- movs r0, 0
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GameClear
-
- thumb_func_start sp0C8_whiteout_maybe
-sp0C8_whiteout_maybe: @ 813787C
- push {lr}
- ldr r0, =CB2_WhiteOut
- bl SetMainCallback2
- movs r0, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sp0C8_whiteout_maybe
diff --git a/asm/psychic.s b/asm/psychic.s
new file mode 100644
index 000000000..ef1915241
--- /dev/null
+++ b/asm/psychic.s
@@ -0,0 +1,2172 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810F1EC
+sub_810F1EC: @ 810F1EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ bl IsContest
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F212
+ mov r0, r8
+ cmp r0, 0
+ beq _0810F22E
+_0810F212:
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0xC8
+ strb r0, [r1]
+ mov r1, r8
+ cmp r1, 0
+ bne _0810F2B8
+_0810F22E:
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r6, r1, 31
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F264
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_80A438C
+_0810F264:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r7
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F284
+ movs r0, 0x1
+ eors r6, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_80A438C
+_0810F284:
+ mov r0, r8
+ cmp r0, 0
+ bne _0810F2B8
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F2B8
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F2B0
+ movs r0, 0x48
+ strh r0, [r5, 0x20]
+ movs r0, 0x50
+ b _0810F2F2
+ .pool
+_0810F2B0:
+ movs r0, 0xB0
+ strh r0, [r5, 0x20]
+ movs r0, 0x28
+ b _0810F2F2
+_0810F2B8:
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F2CE
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_0810F2CE:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+_0810F2F2:
+ strh r0, [r5, 0x22]
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ cmp r0, 0
+ beq _0810F32C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x9
+ strh r0, [r5, 0x22]
+ ldr r1, =sub_810F3C8
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0810F330
+ .pool
+_0810F32C:
+ ldr r0, =sub_810F340
+ str r0, [r5, 0x1C]
+_0810F330:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F1EC
+@
+
+ thumb_func_start sub_810F340
+sub_810F340: @ 810F340
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0810F35C
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+ b _0810F3B6
+_0810F35C:
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F382
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0810F382:
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F3AC
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0810F3AC:
+ ldr r1, =sub_810F3C8
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+_0810F3B6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F340
+
+ thumb_func_start sub_810F3C8
+sub_810F3C8: @ 810F3C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bne _0810F3F4
+ ldr r0, =sub_810F400
+ str r0, [r4, 0x1C]
+ b _0810F3F8
+ .pool
+_0810F3F4:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x34]
+_0810F3F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F3C8
+
+ thumb_func_start sub_810F400
+sub_810F400: @ 810F400
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0810F45E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x2E]
+ ldr r1, =gPlttBufferFaded
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ movs r5, 0x8
+ adds r6, r1, 0
+ adds r1, r4, 0x7
+ lsls r0, r4, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ lsls r1, 1
+ adds r1, r6
+_0810F436:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ subs r1, 0x2
+ subs r2, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bgt _0810F436
+ adds r0, r4, 0x1
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _0810F45E
+ ldr r0, =sub_810F46C
+ str r0, [r3, 0x1C]
+_0810F45E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F400
+
+ thumb_func_start sub_810F46C
+sub_810F46C: @ 810F46C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0810F512
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F502
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4D4
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0810F4D4:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r6
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F502
+ ldr r2, =gSprites
+ ldr r0, =gBattlerSpriteIds
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0810F502:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_810F524
+ str r0, [r5, 0x1C]
+_0810F512:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F46C
+
+ thumb_func_start sub_810F524
+sub_810F524: @ 810F524
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F57C
+ movs r0, 0x1
+ bl GetBattlerAtPosition
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F562
+ adds r0, r5, 0
+ bl sub_80A477C
+_0810F562:
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl IsBattlerSpriteVisible
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F57C
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_80A477C
+_0810F57C:
+ ldr r0, =DestroyAnimSprite
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F524
+
+ thumb_func_start sub_810F58C
+sub_810F58C: @ 810F58C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810F618
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ movs r6, 0
+ cmp r0, 0
+ bne _0810F5A6
+ movs r6, 0x1
+_0810F5A6:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F5EE
+ bl IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F5EE
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F5E0
+ ldrh r0, [r5]
+ movs r1, 0x48
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ b _0810F610
+ .pool
+_0810F5E0:
+ ldrh r0, [r5]
+ adds r0, 0xB0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x28
+ strh r0, [r4, 0x22]
+ b _0810F610
+_0810F5EE:
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0810F608
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl InitAnimSpritePos
+ b _0810F610
+ .pool
+_0810F608:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80A6980
+_0810F610:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810F62C
+_0810F618:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F62C
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_0810F62C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F58C
+
+ thumb_func_start sub_810F634
+sub_810F634: @ 810F634
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F684
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xA
+ strh r0, [r5, 0x22]
+ ldr r0, =0x0000ffff
+ b _0810F692
+ .pool
+_0810F684:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0xA
+ strh r0, [r5, 0x22]
+ movs r0, 0x1
+_0810F692:
+ strh r0, [r5, 0x30]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F634
+
+ thumb_func_start sub_810F6B0
+sub_810F6B0: @ 810F6B0
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimAttacker
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r4, r1, 16
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ negs r1, r1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldrb r0, [r6]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810F6F6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_0810F6F6:
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0810F722
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_0810F722:
+ ldr r1, =sub_810F740
+ adds r0, r5, 0
+ bl StoreSpriteCallbackInData6
+ ldr r0, =sub_80A67D8
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F6B0
+
+ thumb_func_start sub_810F740
+sub_810F740: @ 810F740
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, =gUnknown_08596740
+ str r0, [r4, 0x10]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldr r0, =sub_810F774
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F740
+
+ thumb_func_start sub_810F774
+sub_810F774: @ 810F774
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810F786
+ cmp r0, 0x1
+ beq _0810F7B4
+ b _0810F7CC
+_0810F786:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F7CC
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x12
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0810F7CC
+_0810F7B4:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0810F7CC
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810F7CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F774
+
+ thumb_func_start sub_810F7D4
+sub_810F7D4: @ 810F7D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, =gUnknown_0859675C
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_810F810
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F7D4
+
+ thumb_func_start sub_810F810
+sub_810F810: @ 810F810
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+ bl sub_80A7D34
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F830
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_0810F830:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F810
+
+ thumb_func_start sub_810F83C
+sub_810F83C: @ 810F83C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r1, 0x8
+ cmp r0, 0
+ beq _0810F870
+ movs r1, 0x4
+_0810F870:
+ strh r1, [r4, 0xE]
+ ldrb r1, [r4, 0x8]
+ ldr r2, =gUnknown_0859677C
+ adds r0, r4, 0
+ bl sub_80A7CFC
+ ldr r0, =sub_810F898
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F83C
+
+ thumb_func_start sub_810F898
+sub_810F898: @ 810F898
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810F8BC
+ cmp r0, 0x1
+ beq _0810F8D8
+ b _0810F936
+ .pool
+_0810F8BC:
+ adds r0, r4, 0
+ bl sub_80A7D34
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _0810F936
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0810F936
+_0810F8D8:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810F900
+ ldr r2, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _0810F936
+ .pool
+_0810F900:
+ ldr r3, =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ ldrb r0, [r4, 0x8]
+ bl sub_80A7344
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0810F936:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F898
+
+ thumb_func_start sub_810F940
+sub_810F940: @ 810F940
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ movs r1, 0
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_80A861C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, r6
+ bcs _0810F9AA
+ adds r1, r6, 0
+_0810F9AA:
+ strh r1, [r5, 0x20]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ ldr r0, =sub_810F9D4
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810F940
+
+ thumb_func_start sub_810F9D4
+sub_810F9D4: @ 810F9D4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0810FAD4
+ cmp r1, 0x1
+ bgt _0810F9FC
+ cmp r1, 0
+ beq _0810FA0A
+ b _0810FB5A
+ .pool
+_0810F9FC:
+ cmp r1, 0x2
+ bne _0810FA02
+ b _0810FB36
+_0810FA02:
+ cmp r1, 0x3
+ bne _0810FA08
+ b _0810FB44
+_0810FA08:
+ b _0810FB5A
+_0810FA0A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bgt _0810FA1A
+ b _0810FB5A
+_0810FA1A:
+ strh r1, [r4, 0xA]
+ ldr r0, =gUnknown_08596794
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ adds r1, 0x8
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ strh r2, [r0]
+ cmp r2, 0x40
+ beq _0810FABE
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0810FA78
+ cmp r0, 0x1
+ bgt _0810FA5C
+ cmp r0, 0
+ beq _0810FA66
+ b _0810FABE
+ .pool
+_0810FA5C:
+ cmp r0, 0x2
+ beq _0810FA90
+ cmp r0, 0x3
+ beq _0810FAA8
+ b _0810FABE
+_0810FA66:
+ ldr r0, =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ b _0810FAB6
+ .pool
+_0810FA78:
+ ldr r0, =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ b _0810FABC
+ .pool
+_0810FA90:
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x26]
+ b _0810FABE
+ .pool
+_0810FAA8:
+ ldr r0, =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_0810FAB6:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_0810FABC:
+ strh r0, [r1, 0x26]
+_0810FABE:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810FB5A
+ b _0810FB36
+ .pool
+_0810FAD4:
+ ldrh r0, [r4, 0xA]
+ ands r1, r0
+ cmp r1, 0
+ beq _0810FAE4
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _0810FAEA
+_0810FAE4:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+_0810FAEA:
+ ldrh r1, [r4, 0x10]
+ lsls r1, 8
+ ldrh r0, [r4, 0xE]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _0810FB5A
+ movs r5, 0x8
+ adds r6, r4, 0
+ adds r6, 0x8
+_0810FB10:
+ lsls r0, r5, 1
+ adds r1, r6, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x40
+ beq _0810FB2C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+_0810FB2C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xC
+ bls _0810FB10
+_0810FB36:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0810FB5A
+ .pool
+_0810FB44:
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_0810FB5A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F9D4
+
+
+ thumb_func_start sub_810FB60
+sub_810FB60: @ 810FB60
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _0810FB8A
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_0810FB8A:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0810FB9C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810FB9C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FB60
+
+ thumb_func_start sub_810FBA8
+sub_810FBA8: @ 810FBA8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0810FBD4
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0810FBD4:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, =sub_810FB60
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810FBA8
+
+ thumb_func_start sub_810FBF0
+sub_810FBF0: @ 810FBF0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810FC94
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0810FC60
+ ldr r0, =0x0000fff6
+ strh r0, [r5, 0x1C]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x8
+ b _0810FD1E
+ .pool
+_0810FC60:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A861C
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x8
+ b _0810FD12
+ .pool
+_0810FC94:
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0810FCE8
+ ldr r0, =0x0000fff6
+ strh r0, [r5, 0x1C]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_80A861C
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_80A861C
+ adds r0, 0x8
+ b _0810FD1E
+ .pool
+_0810FCE8:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A861C
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_80A861C
+ subs r0, 0x8
+_0810FD12:
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_80A861C
+ subs r0, 0x8
+_0810FD1E:
+ strh r0, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0xA]
+ ldr r0, =sub_810FD3C
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810FBF0
+
+ thumb_func_start sub_810FD3C
+sub_810FD3C: @ 810FD3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _0810FD60
+ cmp r1, 0x1
+ beq _0810FDD4
+ b _0810FDE8
+ .pool
+_0810FD60:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0810FDE8
+ strh r1, [r5, 0xA]
+ ldr r0, =gUnknown_08596864
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ movs r3, 0x20
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0810FDB4
+ ldr r0, =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl InitAnimArcTranslation
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+_0810FDB4:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _0810FDE8
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0810FDE8
+ .pool
+_0810FDD4:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _0810FDE8
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0810FDE8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FD3C
+
+ thumb_func_start sub_810FDF0
+sub_810FDF0: @ 810FDF0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810FE0E
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_0810FE0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FDF0
+
+ thumb_func_start sub_810FE14
+sub_810FE14: @ 810FE14
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerYCoordWithElevation
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x24]
+ ldr r0, =gBattleAnimArgs
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x1
+ beq _0810FE6A
+ cmp r0, 0x1
+ bgt _0810FE58
+ cmp r0, 0
+ beq _0810FE5E
+ b _0810FE86
+ .pool
+_0810FE58:
+ cmp r0, 0x2
+ beq _0810FE76
+ b _0810FE86
+_0810FE5E:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _0810FE7E
+_0810FE6A:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ b _0810FE7E
+_0810FE76:
+ movs r0, 0x4
+ strh r0, [r4, 0x1E]
+ strh r0, [r4, 0x20]
+ movs r0, 0
+_0810FE7E:
+ strh r0, [r4, 0x22]
+ adds r0, r1, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+_0810FE86:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0810FE92
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_0810FE92:
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl sub_80A8364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810FEB8
+ ldr r0, =gBattle_BG1_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, =0x04000014
+ b _0810FEC0
+ .pool
+_0810FEB8:
+ ldr r0, =gBattle_BG2_X
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, =0x04000018
+_0810FEC0:
+ str r0, [sp]
+ ldrh r1, [r4, 0x24]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ bgt _0810FEFA
+ ldr r5, =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0810FEDA:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ ble _0810FEDA
+_0810FEFA:
+ ldr r0, =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldr r0, =sub_810FF34
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810FE14
+
+ thumb_func_start sub_810FF34
+sub_810FF34: @ 810FF34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0811000E
+ cmp r0, 0x1
+ bgt _0810FF60
+ cmp r0, 0
+ beq _0810FF66
+ b _08110026
+ .pool
+_0810FF60:
+ cmp r0, 0x2
+ beq _08110020
+ b _08110026
+_0810FF66:
+ ldrh r3, [r5, 0x22]
+ ldrh r4, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bgt _0810FFFE
+ ldr r0, =gSineTable
+ mov r9, r0
+ movs r7, 0x3
+ ldr r1, =gScanlineEffectRegBuffers
+ mov r12, r1
+ movs r2, 0xF0
+ lsls r2, 3
+ add r2, r12
+ mov r8, r2
+_0810FF88:
+ lsls r2, r3, 16
+ asrs r0, r2, 15
+ add r0, r9
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r3, 0x20
+ ldrsh r1, [r5, r3]
+ asrs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r3, r0, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ ble _0810FFB8
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r0, r3, r0
+ b _0810FFC4
+ .pool
+_0810FFB8:
+ cmp r3, 0
+ bge _0810FFC8
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ subs r0, r3, r0
+_0810FFC4:
+ lsls r0, 16
+ lsrs r1, r0, 16
+_0810FFC8:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ mov r0, r12
+ adds r4, r3, r0
+ ldrh r0, [r5, 0x1C]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1, r0
+ strh r0, [r4]
+ add r3, r8
+ ldrh r0, [r5, 0x1C]
+ adds r1, r0
+ strh r1, [r3]
+ asrs r0, r6, 16
+ ldrh r1, [r5, 0x1E]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ ble _0810FF88
+_0810FFFE:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _08110026
+ b _08110014
+_0811000E:
+ ldr r1, =gScanlineEffect
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_08110014:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08110026
+ .pool
+_08110020:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08110026:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FF34
+
+ thumb_func_start sub_8110034
+sub_8110034: @ 8110034
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r7, r0, r1
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r10, r5
+ adds r6, r5, 0
+ cmp r6, 0xFF
+ bne _0811006C
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+ b _08110116
+ .pool
+_0811006C:
+ ldr r1, =gBattleAnimArgs
+ ldrb r0, [r1]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r9, r1
+ asrs r0, 16
+ cmp r0, 0
+ bge _08110094
+ adds r0, r5, 0
+ bl FreeOamMatrix
+ mov r0, r8
+ bl DestroyAnimVisualTask
+ b _08110116
+ .pool
+_08110094:
+ ldr r2, =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r2, 0
+ adds r0, 0x1C
+ adds r0, r4, r0
+ ldr r1, =SpriteCallbackDummy
+ str r1, [r0]
+ adds r4, r2
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+ ldr r1, =gBattleAnimArgs
+ ldrb r0, [r1]
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r0, r10
+ strh r0, [r7, 0x24]
+ mov r1, r9
+ strh r1, [r7, 0x26]
+ ldr r0, =sub_8110134
+ str r0, [r7]
+_08110116:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8110034
+
+ thumb_func_start sub_8110134
+sub_8110134: @ 8110134
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _081101B8
+ cmp r0, 0x1
+ bgt _0811015C
+ cmp r0, 0
+ beq _08110166
+ b _08110238
+ .pool
+_0811015C:
+ cmp r0, 0x2
+ beq _08110208
+ cmp r0, 0x3
+ beq _08110228
+ b _08110238
+_08110166:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80A7EC0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x30
+ bne _08110238
+ b _0811021A
+ .pool
+_081101B8:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80A7EC0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08110238
+ b _0811021A
+ .pool
+_08110208:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_0811021A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08110238
+ .pool
+_08110228:
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bl FreeOamMatrix
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08110238:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110134
+@*/
+
+ thumb_func_start sub_8110240
+sub_8110240: @ 8110240
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _081102B8
+ cmp r0, 0x1
+ bgt _08110256
+ cmp r0, 0
+ beq _08110260
+ b _08110360
+_08110256:
+ cmp r0, 0x2
+ beq _081102EA
+ cmp r0, 0x3
+ beq _0811034A
+ b _08110360
+_08110260:
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811028E
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xC
+ strh r0, [r5, 0x22]
+_0811028E:
+ movs r0, 0x8
+ strh r0, [r5, 0x30]
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x50
+ bl SetGpuReg
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ b _081102E2
+ .pool
+_081102B8:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08110360
+ movs r0, 0x40
+ negs r0, r0
+ bl BattleAnimAdjustPanning
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCB
+ bl PlaySE12WithPanning
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_081102E2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _08110360
+_081102EA:
+ ldrh r0, [r5, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0811032E
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x30]
+ subs r1, 0x1
+ strh r1, [r5, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0811032E
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0811032E:
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r0, 0
+ ldrh r1, [r5, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r5, 0x26]
+ subs r0, r1
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r5, 0x34]
+ b _08110360
+_0811034A:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ adds r0, r5, 0
+ bl DestroyAnimSprite
+_08110360:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110240
+
+ .align 2, 0
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index 33ace5757..3e07135e6 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -5,2351 +5,9 @@
.text
- thumb_func_start sub_80156E0
-sub_80156E0: @ 80156E0
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r0, =gUnknown_02022C30
- ldr r6, [r0]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- ldrb r0, [r6, 0x14]
- cmp r0, 0x38
- bls _08015702
- bl _08016878
-_08015702:
- lsls r0, 2
- ldr r1, =_08015718
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08015718:
- .4byte _080157FC
- .4byte _08015854
- .4byte _08015878
- .4byte _080158C8
- .4byte _080159A6
- .4byte _08015E5C
- .4byte _08015C54
- .4byte _08015E5C
- .4byte _08016864
- .4byte _080161C8
- .4byte _080162D4
- .4byte _080160AC
- .4byte _080160C6
- .4byte _08016324
- .4byte _08016348
- .4byte _08016350
- .4byte _08016360
- .4byte _0801638E
- .4byte _080163A2
- .4byte _08015F32
- .4byte _08015FB8
- .4byte _08015FD6
- .4byte _0801604A
- .4byte _08015ADA
- .4byte _08015B00
- .4byte _08015B78
- .4byte _08016838
- .4byte _08015D4C
- .4byte _08015D34
- .4byte _08015DD0
- .4byte _08015C2A
- .4byte _08015DA6
- .4byte _08015D9C
- .4byte _08016158
- .4byte _08016178
- .4byte _080161B8
- .4byte _080162DC
- .4byte _08016318
- .4byte _08015BF4
- .4byte _08016104
- .4byte _08015E94
- .4byte _08015EC4
- .4byte _080163CC
- .4byte _0801645C
- .4byte _080165A8
- .4byte _08016610
- .4byte _0801662C
- .4byte _08016478
- .4byte _08016634
- .4byte _08016738
- .4byte _0801676C
- .4byte _080167F4
- .4byte _0801652C
- .4byte _080164E0
- .4byte _080164F4
- .4byte _0801658C
- .4byte _080165DC
-_080157FC:
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r6, 0x4]
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r6, 0xC]
- movs r0, 0x80
- lsls r0, 1
- bl AllocZeroed
- str r0, [r6]
- movs r0, 0x20
- bl AllocZeroed
- str r0, [r6, 0x8]
- ldr r0, [r6]
- movs r1, 0x8
- bl sub_8017580
- ldr r1, =gUnknown_02022C2C
- movs r0, 0x40
- strb r0, [r1]
- ldr r0, [r6, 0xC]
- ldr r1, [r6, 0x4]
- movs r2, 0x9
- bl sub_8016DF0
- adds r1, r6, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r0, r6, 0
- adds r0, 0xA0
- bl sub_8019BA8
- bl sub_8019F2C
- movs r0, 0x1
- bl _08016876
- .pool
-_08015854:
- adds r0, r6, 0
- adds r0, 0x21
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl sub_8019E70
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- beq _08015872
- bl _08016878
-_08015872:
- movs r0, 0x2
- bl _08016876
-_08015878:
- movs r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_8010F84
- ldr r2, =gUnknown_02022C40
- ldrh r0, [r2, 0x2]
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0xC]
- bl sub_8010FCC
- bl sub_800B488
- bl OpenLink
- bl sub_8011C84
- ldr r0, [r6, 0x8]
- movs r1, 0x1
- bl sub_8017580
- ldr r0, [r6, 0x4]
- movs r1, 0x4
- bl sub_80175EC
- ldr r0, [r6, 0xC]
- movs r1, 0x4
- bl sub_80175EC
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x3
- bl _08016876
- .pool
-_080158C8:
- bl sub_81B1360
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _080158E0
- bl sub_81B1360
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _080159A0
-_080158E0:
- ldr r4, =gUnknown_02022C40
- ldrh r0, [r4]
- cmp r0, 0
- beq _080159A0
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _08015900
- cmp r0, 0x2
- beq _08015950
- b _0801598E
- .pool
-_08015900:
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- cmp r5, 0x5
- bls _0801592C
- adds r0, r4, 0
- bl sub_801807C
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_8010FCC
- ldr r0, =gUnknown_082EF4FC
- bl sub_801568C
- b _0801598E
- .pool
-_0801592C:
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_80180A0
- cmp r0, 0
- bne _0801594C
- ldr r1, =gUnknown_082EF47C
- movs r0, 0x34
- bl sub_8015664
- b _0801598E
- .pool
-_0801594C:
- movs r0, 0x37
- b _0801598C
-_08015950:
- adds r0, r6, 0
- bl sub_80156C8
- ldrb r0, [r4, 0x8]
- strh r0, [r7, 0x2]
- cmp r5, 0x5
- bls _0801596C
- ldr r0, =gUnknown_082EF544
- bl sub_801568C
- b _0801598E
- .pool
-_0801596C:
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- ldr r1, =gUnknown_02022C2C
- movs r0, 0x44
- strb r0, [r1]
- bl GetCursorSelectionMonId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_80180E8
- movs r0, 0x33
-_0801598C:
- strb r0, [r6, 0x14]
-_0801598E:
- ldr r1, =gUnknown_02022C40
- movs r0, 0
- strh r0, [r1]
- bl _08016878
- .pool
-_080159A0:
- movs r0, 0x4
- bl _08016876
-_080159A6:
- ldr r4, =gSpecialVar_Result
- ldrh r0, [r4]
- cmp r0, 0
- beq _08015A0A
- cmp r0, 0x9
- bne _080159E0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- movs r0, 0x2
- bl PlaySE
- ldr r0, =gStringVar1
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- movs r1, 0
- movs r0, 0x2A
- b _08015A02
- .pool
-_080159E0:
- cmp r0, 0xB
- bne _080159F4
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- movs r1, 0
- movs r0, 0x17
- b _08015A02
-_080159F4:
- movs r0, 0
- strh r0, [r7]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r7, 0x2]
- movs r1, 0
- movs r0, 0x18
-_08015A02:
- strb r0, [r6, 0x14]
- strh r1, [r4]
- bl _08016878
-_08015A0A:
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08015A1A
- bl _08016878
-_08015A1A:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015A80
- ldr r0, [r6]
- adds r2, r7, 0x2
- adds r3, r6, 0
- adds r3, 0x21
- adds r1, r7, 0
- bl sub_801A2A8
- cmp r0, 0
- beq _08015A4C
- movs r0, 0x5
- bl PlaySE
- bl sub_80181CC
- movs r0, 0x18
- bl _08016876
- .pool
-_08015A4C:
- bl sub_8017940
- cmp r0, 0
- beq _08015A80
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- movs r0, 0x2
- bl PlaySE
- bl sub_80181CC
- ldr r0, =gStringVar1
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x2D
- bl _08016876
- .pool
-_08015A80:
- bl sub_8016B00
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08015AA2
- cmp r0, 0x2
- bgt _08015A96
- cmp r0, 0x1
- beq _08015A9C
- b _08015AD0
-_08015A96:
- cmp r0, 0x4
- beq _08015AAA
- b _08015AD0
-_08015A9C:
- movs r0, 0x2
- bl PlaySE
-_08015AA2:
- adds r0, r6, 0
- bl sub_801A274
- b _08015AD0
-_08015AAA:
- movs r0, 0xB
- strb r0, [r6, 0x14]
- bl sub_80181CC
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_8010FCC
- adds r0, r6, 0
- bl sub_80181DC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x53
- movs r2, 0
- bl sub_8011090
-_08015AD0:
- adds r0, r6, 0
- bl sub_801A284
- bl _08016878
-_08015ADA:
- ldr r0, =sub_809FA34
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08015AEA
- bl _08016878
-_08015AEA:
- movs r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_8011090
- movs r0, 0x4
- bl _08016876
- .pool
-_08015B00:
- bl sub_801704C
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- bl sub_8017CF8
- adds r4, r0, 0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- ldr r0, [r6]
- ldrb r1, [r7]
- ldrb r2, [r7, 0x2]
- adds r3, r4, 0
- bl sub_80179D4
- cmp r0, 0x1
- beq _08015B44
- cmp r0, 0x1
- bgt _08015B36
- cmp r0, 0
- beq _08015B3E
- bl _08016878
-_08015B36:
- cmp r0, 0x2
- beq _08015B68
- bl _08016878
-_08015B3E:
- movs r0, 0x1A
- bl _08016876
-_08015B44:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x10
- ldr r2, =gUnknown_02022C2C
- ldrb r2, [r2]
- bl sub_8012188
- strh r5, [r6, 0x12]
- movs r0, 0x19
- bl _08016876
- .pool
-_08015B68:
- ldr r1, =gStringVar4
- movs r0, 0x13
- bl sub_8015664
- bl _08016878
- .pool
-_08015B78:
- bl sub_801704C
- bl sub_8011A74
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- blt _08015BBE
- cmp r4, 0x2
- ble _08015B9A
- cmp r4, 0x4
- bne _08015BBE
- movs r0, 0x1
- bl sub_801818C
- strb r4, [r6, 0x14]
- b _08015BBE
-_08015B9A:
- bl sub_8011B90
- cmp r0, 0x1
- bne _08015BB0
- ldr r0, =gUnknown_082EE6C8
- bl sub_801568C
- b _08015BB8
- .pool
-_08015BB0:
- ldr r1, =gUnknown_082EE6C8
- movs r0, 0x1E
- bl sub_8015664
-_08015BB8:
- ldr r1, =gUnknown_02022C2C
- movs r0, 0x40
- strb r0, [r1]
-_08015BBE:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015BCA
- bl _08016878
-_08015BCA:
- ldr r0, =gBlockSendBuffer
- movs r1, 0x1
- bl sub_80143E4
- ldr r0, =sub_80140E0
- movs r1, 0x5
- bl CreateTask
- movs r0, 0x26
- bl _08016876
- .pool
-_08015BF4:
- ldr r0, =sub_80140E0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08015C04
- bl _08016878
-_08015C04:
- ldr r0, =gUnknown_02022C2C
- ldrb r0, [r0]
- cmp r0, 0x44
- bne _08015C24
- ldr r1, =gUnknown_082EE004
- movs r0, 0x1F
- bl sub_8015664
- bl _08016878
- .pool
-_08015C24:
- movs r0, 0x5
- bl _08016876
-_08015C2A:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08015C36
- bl _08016878
-_08015C36:
- movs r0, 0
- bl sub_801818C
- movs r2, 0
- ldrsh r0, [r7, r2]
- movs r3, 0x2
- ldrsh r1, [r7, r3]
- ldr r2, [r6]
- bl sub_801A3D0
- movs r0, 0x2
- bl _08016876
- .pool
-_08015C54:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1B
- adds r2, r6, 0
- adds r2, 0x1C
- ldr r3, =gUnknown_082F021C
- ldr r4, =gUnknown_082F0244
- str r4, [sp]
- bl sub_8017178
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _08015C78
- bl _08016878
-_08015C78:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015C94
- movs r0, 0x1C
- bl _08016876
- .pool
-_08015C94:
- adds r1, r6, 0
- adds r1, 0x98
- movs r0, 0
- strh r0, [r1]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- ldr r1, [r6]
- bl sub_8017CF8
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _08015CB2
- cmp r5, 0x40
- bne _08015CE4
-_08015CB2:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x40
- strh r1, [r0]
- bl sub_800FE50
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_082EEB80
- ldr r1, =gLinkPlayers
- ldrb r1, [r1, 0x13]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x20
- bl _08016876
- .pool
-_08015CE4:
- ldr r0, =gUnknown_02022C2C
- strb r5, [r0]
- ldr r1, =gUnknown_02022C2D
- lsrs r0, r5, 8
- strb r0, [r1]
- lsls r0, r5, 24
- lsrs r0, 24
- cmp r0, 0x41
- bne _08015D18
- bl sub_8018024
- cmp r0, 0
- bne _08015D18
- ldr r1, =gUnknown_082EEBD0
- movs r0, 0x5
- bl sub_8015664
- bl _08016878
- .pool
-_08015D18:
- ldr r0, =gUnknown_02022C2C
- ldrb r0, [r0]
- movs r1, 0x40
- orrs r1, r0
- adds r0, r6, 0
- adds r0, 0x4C
- strh r1, [r0]
- bl sub_800FE50
- movs r0, 0x1B
- bl _08016876
- .pool
-_08015D34:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EEB88
- bl StringCopy
- movs r0, 0x24
- bl _08016876
- .pool
-_08015D4C:
- adds r0, r6, 0
- bl sub_8017FD8
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- bl sub_8017CF8
- adds r4, r0, 0
- adds r0, r6, 0
- adds r0, 0x4C
- ldrh r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- bl sub_8017984
- adds r5, r0, 0
- adds r0, r6, 0
- adds r0, 0x16
- ldr r3, =gUnknown_082EE82C
- lsls r1, r5, 2
- lsls r2, r4, 4
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _08015D8C
- bl _08016878
-_08015D8C:
- movs r0, 0
- strh r0, [r7, 0x6]
- movs r0, 0x1D
- bl _08016876
- .pool
-_08015D9C:
- bl sub_800AC34
- movs r0, 0x24
- bl _08016876
-_08015DA6:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x44
- strh r1, [r0]
- ldr r2, =gUnknown_02022C40
- ldrh r1, [r2, 0xE]
- adds r3, r6, 0
- adds r3, 0x4E
- strh r1, [r3]
- ldrh r2, [r2, 0x10]
- adds r1, r6, 0
- adds r1, 0x50
- strh r2, [r1]
- bl sub_800FE50
- movs r0, 0x1D
- bl _08016876
- .pool
-_08015DD0:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015DF4
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EEB88
- bl StringCopy
- movs r0, 0x1C
- bl _08016876
- .pool
-_08015DF4:
- adds r0, r6, 0
- bl sub_8017FD8
- adds r0, r6, 0
- adds r0, 0x98
- ldrh r0, [r0]
- cmp r0, 0x51
- bne _08015E2A
- ldr r0, =gUnknown_02022C2C
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08015E24
- ldr r0, =gStringVar4
- adds r1, r6, 0
- movs r2, 0
- bl sub_8018220
- movs r0, 0x28
- bl _08016876
- .pool
-_08015E24:
- movs r0, 0xD
- bl _08016876
-_08015E2A:
- cmp r0, 0x52
- beq _08015E32
- bl _08016878
-_08015E32:
- movs r5, 0
- movs r0, 0x20
- strb r0, [r6, 0x14]
- ldr r0, =gStringVar4
- ldr r4, =gUnknown_02022C2C
- ldrb r2, [r4]
- movs r1, 0x40
- orrs r1, r2
- ldr r2, =gLinkPlayers
- ldrb r2, [r2, 0x13]
- bl sub_8017D9C
- strb r5, [r4]
- bl _08016878
- .pool
-_08015E5C:
- movs r0, 0x2
- ldrsh r1, [r7, r0]
- lsls r1, 5
- ldr r0, [r6]
- adds r0, r1
- bl sub_80179AC
- adds r5, r0, 0
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- ldr r1, [r6]
- bl sub_8017CF8
- adds r4, r0, 0
- ldr r2, =gUnknown_082EE24C
- lsls r0, r4, 2
- lsls r1, r5, 3
- adds r0, r1
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x6
- bl sub_8015664
- bl _08016878
- .pool
-_08015E94:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gStringVar4
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _08015EA8
- bl _08016878
-_08015EA8:
- movs r4, 0
- movs r0, 0x29
- strb r0, [r6, 0x14]
- bl sub_800ADF8
- adds r0, r6, 0
- adds r0, 0x98
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- bl _08016878
- .pool
-_08015EC4:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- bne _08015ED2
- bl _08016878
-_08015ED2:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _08015F2C
- ldr r5, =gStringVar1
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r4, =gLinkPlayers + 8
- adds r1, r4
- adds r0, r5, 0
- bl StringCopy
- ldrh r0, [r4, 0x18]
- adds r4, 0x1C
- adds r1, r4, 0
- bl sub_800E540
- adds r5, r0, 0
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_082EE378
- lsls r1, r5, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringExpandPlaceholders
- movs r0, 0x21
- bl _08016876
- .pool
-_08015F2C:
- movs r0, 0x7
- bl _08016876
-_08015F32:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_80170B8
- lsls r0, 24
- asrs r5, r0, 24
- cmp r5, 0
- beq _08015F5C
- cmp r5, 0
- bgt _08015F54
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _08015F98
- bl _08016878
-_08015F54:
- cmp r5, 0x1
- beq _08015F98
- bl _08016878
-_08015F5C:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r4, =gUnknown_02022C2C
- movs r0, 0x45
- strb r0, [r4]
- movs r0, 0x45
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x10
- ldrb r2, [r4]
- bl sub_8012188
- ldrh r0, [r7, 0x2]
- strh r0, [r6, 0x12]
- movs r0, 0x14
- strb r0, [r6, 0x14]
- strh r5, [r7, 0x6]
- bl _08016878
- .pool
-_08015F98:
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- bl sub_8017CF8
- adds r4, r0, 0
- ldr r1, =gUnknown_082EEC9C
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- bl sub_801568C
- bl _08016878
- .pool
-_08015FB8:
- ldrh r0, [r7, 0x4]
- adds r0, 0x1
- strh r0, [r7, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bgt _08015FCA
- bl _08016878
-_08015FCA:
- movs r1, 0
- movs r0, 0x15
- strb r0, [r6, 0x14]
- strh r1, [r7, 0x4]
- bl _08016878
-_08015FD6:
- bl sub_8011A74
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- beq _0801603C
- cmp r4, 0x3
- ble _08015FF4
- cmp r4, 0x4
- bne _08016040
- movs r0, 0x1
- bl sub_801818C
- strb r4, [r6, 0x14]
- b _08016040
-_08015FF4:
- cmp r4, 0x1
- blt _08016040
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- ldr r1, [r6]
- bl sub_8017CF8
- adds r4, r0, 0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- bl sub_8011B90
- cmp r0, 0x1
- bne _08016028
- ldr r0, =gUnknown_082EED3C
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_801568C
- b _08016040
- .pool
-_08016028:
- ldr r0, =gUnknown_082EED3C
- lsls r1, r4, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1E
- bl sub_8015664
- b _08016040
- .pool
-_0801603C:
- movs r0, 0x16
- strb r0, [r6, 0x14]
-_08016040:
- ldrh r0, [r7, 0x6]
- adds r0, 0x1
- strh r0, [r7, 0x6]
- bl _08016878
-_0801604A:
- bl sub_8011A80
- cmp r0, 0
- beq _08016092
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- ldr r1, [r6]
- bl sub_8017CF8
- adds r4, r0, 0
- movs r0, 0x54
- movs r1, 0
- movs r2, 0x1
- bl sub_8011090
- bl sub_8011B90
- cmp r0, 0x1
- bne _08016084
- ldr r0, =gUnknown_082EED3C
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_801568C
- b _08016092
- .pool
-_08016084:
- ldr r0, =gUnknown_082EED3C
- lsls r1, r4, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1E
- bl sub_8015664
-_08016092:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801609E
- bl _08016878
-_0801609E:
- movs r0, 0x10
- bl _08016876
- .pool
-_080160AC:
- movs r0, 0x49
- bl PlaySE
- bl sub_800EF7C
- movs r0, 0
- movs r1, 0xC
- strb r1, [r6, 0x14]
- adds r1, r6, 0
- adds r1, 0x9A
- strh r0, [r1]
- bl _08016878
-_080160C6:
- bl sub_8011A80
- cmp r0, 0
- beq _080160DA
- movs r0, 0
- bl sub_801818C
- movs r0, 0x2
- bl _08016876
-_080160DA:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080160E4
- b _08016878
-_080160E4:
- ldr r0, =gBlockSendBuffer
- movs r1, 0x1
- bl sub_80143E4
- ldr r0, =sub_80140E0
- movs r1, 0x5
- bl CreateTask
- movs r0, 0x27
- b _08016876
- .pool
-_08016104:
- adds r0, r6, 0
- bl sub_801689C
- ldr r0, =sub_80140E0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _08016118
- b _08016878
-_08016118:
- movs r0, 0x21
- strb r0, [r6, 0x14]
- ldr r0, =gStringVar1
- ldr r4, =gLinkPlayers + 0x1C + 0x08 @ &gLinkPlayers[1].name
- adds r1, r4, 0
- bl StringCopy
- adds r0, r4, 0
- subs r0, 0x24
- ldrh r0, [r0, 0x20]
- adds r1, r4, 0
- bl sub_800E540
- adds r5, r0, 0
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_082EE324
- lsls r1, r5, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringExpandPlaceholders
- b _08016878
- .pool
-_08016158:
- adds r0, r6, 0
- bl sub_801689C
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gStringVar4
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _08016170
- b _08016878
-_08016170:
- movs r0, 0x22
- b _08016876
- .pool
-_08016178:
- adds r0, r6, 0
- bl sub_801689C
- adds r0, r6, 0
- bl sub_80168DC
- cmp r0, 0
- bne _0801618A
- b _08016878
-_0801618A:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08016198
- b _08016878
-_08016198:
- movs r0, 0x1
- bl sub_8011DE0
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EE598
- bl StringCopy
- movs r0, 0x24
- b _08016876
- .pool
-_080161B8:
- ldr r1, =gStringVar4
- movs r0, 0x9
- bl sub_8015664
- b _08016878
- .pool
-_080161C8:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_80170B8
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080161EE
- cmp r1, 0
- bgt _080161E8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080162AE
- b _08016878
-_080161E8:
- cmp r1, 0x1
- beq _080162AE
- b _08016878
-_080161EE:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x51
- strh r1, [r0]
- ldr r1, =gUnknown_02022C2C
- ldrb r1, [r1]
- adds r5, r0, 0
- cmp r1, 0x45
- bne _08016220
- movs r4, 0x40
- orrs r4, r1
- movs r0, 0x1
- bl sub_801100C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- bl sub_8011090
- b _0801623E
- .pool
-_08016220:
- movs r0, 0x40
- adds r4, r1, 0
- orrs r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_801100C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8011090
-_0801623E:
- ldr r1, [r6, 0x8]
- movs r0, 0
- strb r0, [r1, 0x1B]
- strh r0, [r7, 0x6]
- ldr r0, =gUnknown_02022C2C
- ldrb r0, [r0]
- cmp r0, 0x41
- bne _08016286
- bl sub_8018024
- cmp r0, 0
- bne _0801627C
- movs r0, 0x52
- strh r0, [r5]
- adds r0, r5, 0
- bl sub_800FE50
- movs r0, 0xA
- strb r0, [r6, 0x14]
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EEC14
- bl StringCopy
- b _08016878
- .pool
-_0801627C:
- adds r0, r5, 0
- bl sub_800FE50
- movs r0, 0xD
- b _08016876
-_08016286:
- cmp r0, 0x48
- bne _080162A4
- adds r0, r5, 0
- bl sub_800FE50
- ldr r0, =gStringVar4
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_8018220
- movs r0, 0x28
- b _08016876
- .pool
-_080162A4:
- adds r0, r5, 0
- bl sub_800FE50
- movs r0, 0xD
- b _08016876
-_080162AE:
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0x52
- strh r1, [r0]
- bl sub_800FE50
- movs r0, 0xA
- strb r0, [r6, 0x14]
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_02022C2C
- ldrb r1, [r1]
- bl sub_8013078
- b _08016878
- .pool
-_080162D4:
- bl sub_800AC34
- movs r0, 0x24
- b _08016876
-_080162DC:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r4, [r0]
- cmp r4, 0
- beq _080162E6
- b _08016878
-_080162E6:
- ldr r1, =gUnknown_02022C2C
- movs r0, 0x40
- strb r0, [r1]
- ldr r1, =gStringVar4
- movs r0, 0x25
- bl sub_8015664
- adds r0, r6, 0
- adds r0, 0x4C
- movs r1, 0
- movs r2, 0xC
- bl memset
- adds r0, r6, 0
- adds r0, 0x9A
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- b _08016878
- .pool
-_08016318:
- movs r0, 0x2
- strb r0, [r6, 0x14]
- movs r0, 0
- bl sub_801818C
- b _08016878
-_08016324:
- ldr r4, =gStringVar4
- ldr r0, =gUnknown_02022C2C
- ldrb r0, [r0]
- movs r1, 0x40
- orrs r1, r0
- adds r0, r4, 0
- bl sub_8017E00
- movs r0, 0xE
- adds r1, r4, 0
- bl sub_8015664
- b _08016878
- .pool
-_08016348:
- bl sub_800ADF8
- movs r0, 0xF
- b _08016876
-_08016350:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- bne _0801635C
- b _08016878
-_0801635C:
- movs r0, 0x10
- b _08016876
-_08016360:
- ldr r0, [r6, 0x8]
- bl Free
- ldr r0, [r6]
- bl Free
- ldr r0, [r6, 0xC]
- bl Free
- ldr r0, [r6, 0x4]
- bl Free
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r6, 0
- adds r0, 0x21
- bl sub_8019F04
- movs r0, 0x11
- b _08016876
-_0801638E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x12
- b _08016876
-_080163A2:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- beq _080163AE
- b _08016878
-_080163AE:
- bl sub_8019E3C
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, =gUnknown_02022C30
- ldr r0, [r0]
- bl Free
- bl sub_80149D8
- b _08016878
- .pool
-_080163CC:
- bl sub_800F7DC
- ldrh r1, [r0, 0x8]
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080163E4
- movs r0, 0x2B
- b _08016876
- .pool
-_080163E4:
- bl sub_800F7DC
- ldrh r1, [r0, 0x8]
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08016408
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EF590
- bl StringCopy
- b _0801643E
- .pool
-_08016408:
- ldr r4, =gStringVar1
- bl sub_800F7DC
- ldrh r0, [r0, 0x8]
- lsls r0, 22
- lsrs r0, 22
- movs r1, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, =gStringVar2
- bl sub_800F7DC
- ldrb r1, [r0, 0xB]
- lsrs r1, 1
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EF564
- bl StringExpandPlaceholders
-_0801643E:
- ldr r1, =gStringVar4
- movs r0, 0x2C
- bl sub_8015664
- b _08016878
- .pool
-_0801645C:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gUnknown_082EF20C
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _0801646E
- b _08016878
-_0801646E:
- movs r0, 0x2F
- b _08016876
- .pool
-_08016478:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1D
- adds r2, r6, 0
- adds r2, 0x1E
- ldr r3, =gUnknown_082F025C
- ldr r4, =gUnknown_082F027C
- str r4, [sp]
- bl sub_8017178
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0801649A
- b _08016878
-_0801649A:
- subs r0, 0x1
- cmp r5, r0
- beq _080164A4
- cmp r5, 0x3
- bne _080164B8
-_080164A4:
- movs r0, 0x4
- strb r0, [r6, 0x14]
- movs r0, 0x1
- bl sub_801818C
- b _08016878
- .pool
-_080164B8:
- cmp r5, 0x1
- beq _080164C2
- cmp r5, 0x2
- beq _080164D0
- b _08016878
-_080164C2:
- ldr r1, =gUnknown_082EF4C4
- movs r0, 0x35
- bl sub_8015664
- b _08016878
- .pool
-_080164D0:
- ldr r1, =gUnknown_082EF298
- movs r0, 0x2F
- bl sub_8015664
- b _08016878
- .pool
-_080164E0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x36
- b _08016876
-_080164F4:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08016502
- b _08016878
-_08016502:
- ldr r1, =gUnknown_02022C40
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, =gFieldCallback
- ldr r0, =sub_80AF128
- str r0, [r1]
- ldr r1, =CB2_ReturnToField
- movs r0, 0x8
- bl sub_81B8904
- b _08016878
- .pool
-_0801652C:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1D
- adds r2, r6, 0
- adds r2, 0x1E
- ldr r3, =gUnknown_082F0294
- ldr r4, =gUnknown_082F032C
- str r4, [sp]
- bl sub_8017178
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0801654E
- b _08016878
-_0801654E:
- subs r0, 0x1
- cmp r5, r0
- beq _08016558
- cmp r5, 0x12
- bne _08016580
-_08016558:
- ldr r0, =gUnknown_02022C40
- bl sub_801807C
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_8010FCC
- ldr r0, =gUnknown_082EF4FC
- bl sub_801568C
- b _08016878
- .pool
-_08016580:
- ldr r0, =gUnknown_02022C40
- strh r5, [r0, 0x2]
- movs r0, 0x37
- b _08016876
- .pool
-_0801658C:
- ldr r2, =gUnknown_02022C40
- ldrh r0, [r2, 0x2]
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0xC]
- bl sub_8010FCC
- ldr r0, =gUnknown_082EF520
- bl sub_801568C
- b _08016878
- .pool
-_080165A8:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_80170B8
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080165CE
- cmp r1, 0
- bgt _080165C8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080165D2
- b _08016878
-_080165C8:
- cmp r1, 0x1
- beq _080165D2
- b _08016878
-_080165CE:
- movs r0, 0x38
- b _08016876
-_080165D2:
- movs r0, 0x1
- bl sub_801818C
- movs r0, 0x4
- b _08016876
-_080165DC:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gUnknown_082EF5B8
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _080165EE
- b _08016878
-_080165EE:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl sub_8010FCC
- ldr r0, =gUnknown_02022C40
- bl sub_801807C
- movs r0, 0x1
- bl sub_801818C
- movs r0, 0x4
- b _08016876
- .pool
-_08016610:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gUnknown_082EF1EC
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _08016622
- b _08016878
-_08016622:
- movs r0, 0x2E
- b _08016876
- .pool
-_0801662C:
- bl sub_80173B0
- movs r0, 0x30
- b _08016876
-_08016634:
- adds r0, r6, 0
- adds r0, 0x16
- adds r1, r6, 0
- adds r1, 0x1D
- adds r2, r6, 0
- adds r2, 0x4A
- adds r3, r6, 0
- adds r3, 0x1E
- ldr r4, =gUnknown_082F034C
- str r4, [sp]
- ldr r4, =gUnknown_082F03A4
- str r4, [sp, 0x4]
- ldr r4, [r6]
- str r4, [sp, 0x8]
- bl sub_80172A0
- adds r5, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _08016660
- b _08016878
-_08016660:
- subs r0, 0x1
- cmp r5, r0
- beq _0801666A
- cmp r5, 0x8
- bne _0801667C
-_0801666A:
- movs r0, 0x1
- bl sub_801818C
- movs r0, 0x4
- b _08016876
- .pool
-_0801667C:
- bl sub_80173B0
- ldr r1, [r6]
- lsls r4, r5, 5
- adds r1, r4
- ldrb r0, [r1, 0x9]
- lsrs r0, 2
- ldrh r1, [r1, 0x8]
- lsls r1, 22
- lsrs r1, 22
- bl sub_8017D04
- cmp r0, 0x1
- beq _080166C8
- cmp r0, 0x1
- bgt _080166A2
- cmp r0, 0
- beq _080166A8
- b _08016878
-_080166A2:
- cmp r0, 0x2
- beq _080166FC
- b _08016878
-_080166A8:
- ldr r0, =gStringVar1
- ldr r1, [r6]
- adds r1, r4
- bl sub_8018404
- ldr r1, =gUnknown_082EF65C
- movs r0, 0x31
- bl sub_8015664
- strh r5, [r7, 0x2]
- b _08016878
- .pool
-_080166C8:
- ldr r0, =gStringVar1
- ldr r1, [r6]
- adds r1, r4
- bl sub_8018404
- ldr r0, =gStringVar2
- ldr r1, [r6]
- adds r1, r4
- ldrb r2, [r1, 0x9]
- lsrs r2, 2
- lsls r1, r2, 3
- subs r1, r2
- ldr r2, =gTypeNames
- adds r1, r2
- bl StringCopy
- ldr r1, =gUnknown_082EF6E4
- b _0801671E
- .pool
-_080166FC:
- ldr r0, =gStringVar1
- ldr r1, [r6]
- adds r1, r4
- bl sub_8018404
- ldr r0, =gStringVar2
- ldr r1, [r6]
- adds r1, r4
- ldrb r2, [r1, 0x9]
- lsrs r2, 2
- lsls r1, r2, 3
- subs r1, r2
- ldr r2, =gTypeNames
- adds r1, r2
- bl StringCopy
- ldr r1, =gUnknown_082EF718
-_0801671E:
- movs r0, 0x2E
- bl sub_8015664
- b _08016878
- .pool
-_08016738:
- adds r0, r6, 0
- adds r0, 0x16
- movs r1, 0
- bl sub_80170B8
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0801675E
- cmp r1, 0
- bgt _08016758
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08016762
- b _08016878
-_08016758:
- cmp r1, 0x1
- beq _08016762
- b _08016878
-_0801675E:
- movs r0, 0x32
- b _08016876
-_08016762:
- movs r0, 0x1
- bl sub_801818C
- movs r0, 0x4
- b _08016876
-_0801676C:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gUnknown_082EF4C4
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- bne _0801677E
- b _08016878
-_0801677E:
- ldr r4, =gUnknown_02022C40
- movs r0, 0x2
- strh r0, [r4]
- ldr r2, =gUnknown_02022C38
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- ldr r1, [r6]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r2, =gUnknown_02022C3E
- ldr r1, [r6]
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1, 0x9]
- lsrs r0, 2
- strb r0, [r2]
- ldr r2, =gUnknown_02022C3C
- ldr r1, [r6]
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- lsls r0, 5
- adds r1, r0
- ldrh r0, [r1, 0x8]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r2]
- ldr r1, =gFieldCallback
- ldr r0, =sub_80AF128
- str r0, [r1]
- ldr r1, =CB2_ReturnToField
- movs r0, 0x9
- bl sub_81B8904
- adds r0, r6, 0
- bl sub_80156B0
- ldrh r0, [r7, 0x2]
- strb r0, [r4, 0x8]
- b _08016878
- .pool
-_080167F4:
- ldr r1, =gUnknown_02022C2C
- movs r0, 0x44
- strb r0, [r1]
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- lsls r0, 5
- ldr r1, [r6]
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0x10
- movs r2, 0x44
- bl sub_8012188
- ldr r0, =gStringVar1
- movs r3, 0x2
- ldrsh r2, [r7, r3]
- lsls r2, 5
- ldr r1, [r6]
- adds r1, r2
- bl sub_8018404
- ldr r0, =gUnknown_082EE17C
- ldr r0, [r0, 0x8]
- bl sub_8017020
- movs r0, 0x19
- b _08016876
- .pool
-_08016838:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gStringVar4
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- beq _08016878
- movs r0, 0x1
- bl sub_801818C
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- ldr r2, [r6]
- bl sub_801A3D0
- movs r0, 0x4
- b _08016876
- .pool
-_08016864:
- adds r0, r6, 0
- adds r0, 0x16
- ldr r1, =gStringVar4
- bl PrintOnTextbox
- lsls r0, 24
- cmp r0, 0
- beq _08016878
- ldrb r0, [r6, 0x15]
-_08016876:
- strb r0, [r6, 0x14]
-_08016878:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80156E0
- thumb_func_start var_800D_set_xB
-var_800D_set_xB: @ 8016884
- push {lr}
- bl InUnionRoom
- cmp r0, 0x1
- bne _08016894
- ldr r1, =gSpecialVar_Result
- movs r0, 0xB
- strh r0, [r1]
-_08016894:
- pop {r0}
- bx r0
- .pool
-thumb_func_end var_800D_set_xB
- thumb_func_start sub_801689C
-sub_801689C: @ 801689C
- push {r4,r5,lr}
- adds r2, r0, 0
- ldr r3, =gRecvCmds
- ldrh r5, [r3, 0x12]
- adds r4, r5, 0
- cmp r4, 0
- beq _080168D0
- ldrh r0, [r3, 0x10]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- movs r0, 0xBC
- lsls r0, 6
- cmp r1, r0
- bne _080168D0
- adds r0, r2, 0
- adds r0, 0x9A
- strh r5, [r0]
- cmp r4, 0x44
- bne _080168D0
- ldrh r1, [r3, 0x14]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r1, [r3, 0x16]
- adds r0, 0x2
- strh r1, [r0]
-_080168D0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801689C
-
- thumb_func_start sub_80168DC
-sub_80168DC: @ 80168DC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r4, 0
- adds r5, 0x9A
- ldrh r0, [r5]
- cmp r0, 0
- beq _0801692C
- ldr r0, =gStringVar4
- ldr r1, =gLinkPlayers
- adds r1, 0x2F
- ldrb r1, [r1]
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8017EA0
- cmp r0, 0
- beq _0801692C
- cmp r0, 0x1
- bne _0801691C
- movs r0, 0x23
- strb r0, [r4, 0x14]
- ldr r1, =gUnknown_02022C2C
- ldrh r0, [r5]
- strb r0, [r1]
- movs r0, 0
- b _0801692E
- .pool
-_0801691C:
- cmp r0, 0x2
- bne _0801692C
- movs r0, 0x24
- strb r0, [r4, 0x14]
- bl sub_800AC34
- movs r0, 0
- b _0801692E
-_0801692C:
- movs r0, 0x1
-_0801692E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80168DC
-
- thumb_func_start sub_8016934
-sub_8016934: @ 8016934
- push {r4,r5,lr}
- ldr r5, =gUnknown_02022C20
- movs r0, 0xFF
- strb r0, [r5]
- ldr r0, =task00_081199FC
- movs r1, 0
- bl CreateTask
- ldr r4, =gUnknown_02022C30
- movs r0, 0x9B
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- ldr r1, =gUnknown_03000DA8
- str r0, [r1]
- movs r1, 0
- strb r1, [r0, 0x14]
- strb r1, [r0, 0x16]
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8016934
- thumb_func_start task00_081199FC
-task00_081199FC: @ 801697C
- push {r4-r6,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_02022C30
- ldr r5, [r0]
- ldrb r0, [r5, 0x14]
- cmp r0, 0x4
- bls _08016990
- b _08016AC8
-_08016990:
- lsls r0, 2
- ldr r1, =_080169A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080169A4:
- .4byte _080169B8
- .4byte _080169BE
- .4byte _080169E0
- .4byte _08016A30
- .4byte _08016A94
-_080169B8:
- movs r0, 0x1
- strb r0, [r5, 0x14]
- b _08016AC8
-_080169BE:
- movs r0, 0xC
- movs r1, 0
- movs r2, 0
- bl sub_8010F84
- bl sub_800B488
- bl OpenLink
- bl sub_8011C84
- movs r0, 0x1
- bl sub_80111B0
- movs r0, 0x2
- strb r0, [r5, 0x14]
- b _08016AC8
-_080169E0:
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0x4]
- movs r1, 0x4
- bl sub_80175EC
- movs r0, 0x70
- bl AllocZeroed
- str r0, [r5, 0xC]
- movs r1, 0x4
- bl sub_80175EC
- movs r0, 0x80
- lsls r0, 1
- bl AllocZeroed
- str r0, [r5]
- movs r1, 0x8
- bl sub_8017580
- movs r0, 0x20
- bl AllocZeroed
- str r0, [r5, 0x8]
- movs r1, 0x1
- bl sub_8017580
- ldr r0, [r5, 0xC]
- ldr r1, [r5, 0x4]
- movs r2, 0xA
- bl sub_8016DF0
- adds r1, r5, 0
- adds r1, 0x20
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r5, 0x14]
- b _08016AC8
-_08016A30:
- bl sub_8016B00
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- blt _08016AC8
- cmp r0, 0x2
- bgt _08016AC8
- ldr r0, =gUnknown_02022C20
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08016AC8
- movs r6, 0
-_08016A4A:
- ldr r0, [r5]
- lsls r4, r6, 5
- adds r1, r0, r4
- ldrb r0, [r1, 0x1A]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08016A78
- mov r0, sp
- bl sub_8018404
- ldr r0, [r5]
- adds r0, r4
- adds r0, 0x2
- bl ReadAsU16
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_800E540
- cmp r0, 0
- bne _08016A84
-_08016A78:
- adds r6, 0x1
- cmp r6, 0x7
- ble _08016A4A
- b _08016AC8
- .pool
-_08016A84:
- ldr r0, =gUnknown_02022C20
- mov r1, sp
- bl StringCopy
- b _08016AC8
- .pool
-_08016A94:
- ldr r0, [r5, 0x8]
- bl Free
- ldr r0, [r5]
- bl Free
- ldr r0, [r5, 0xC]
- bl Free
- ldr r0, [r5, 0x4]
- bl Free
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- bl DestroyTask
- ldr r0, =gUnknown_02022C30
- ldr r0, [r0]
- bl Free
- bl sub_800EDD4
- adds r0, r4, 0
- bl DestroyTask
-_08016AC8:
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task00_081199FC
-
- thumb_func_start sp182_move_string
-sp182_move_string: @ 8016AD4
- push {r4,lr}
- ldr r4, =gUnknown_02022C20
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08016AE8
- movs r0, 0
- b _08016AF6
- .pool
-_08016AE8:
- ldr r0, =gStringVar1
- adds r1, r4, 0
- bl StringCopy
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x1
-_08016AF6:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sp182_move_string
-
- thumb_func_start sub_8016B00
-sub_8016B00: @ 8016B00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gUnknown_02022C30
- ldr r4, [r0]
- movs r7, 0
- movs r6, 0
- movs r5, 0
-_08016B12:
- ldr r0, [r4, 0xC]
- adds r0, r5
- ldr r1, =gUnknown_082F045C
- bl sub_8017630
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bne _08016B5C
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x8]
- adds r1, r5
- ldm r1!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldm r1!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldr r1, [r4, 0x8]
- movs r0, 0
- strh r0, [r1, 0x18]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2, 0x1A]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2, 0x1A]
- ldr r0, [r4, 0x8]
- strb r3, [r0, 0x1B]
- movs r0, 0x4
- b _08016C90
- .pool
-_08016B5C:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08016B12
- movs r6, 0
- mov r9, r6
-_08016B68:
- ldr r0, [r4]
- mov r1, r9
- lsls r5, r1, 5
- adds r2, r0, r5
- ldrb r0, [r2, 0x1A]
- lsls r0, 30
- mov r8, r5
- cmp r0, 0
- beq _08016C5C
- ldr r1, [r4, 0x4]
- adds r0, r2, 0
- bl sub_80176E4
- adds r6, r0, 0
- cmp r6, 0xFF
- beq _08016C02
- ldr r0, [r4]
- adds r2, r0, r5
- ldrb r1, [r2, 0x1A]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _08016BE0
- lsls r0, r6, 3
- subs r0, r6
- lsls r6, r0, 2
- ldr r1, [r4, 0x4]
- adds r1, r6
- adds r0, r2, 0
- bl sub_8017678
- cmp r0, 0
- beq _08016BC6
- ldr r1, [r4]
- ldr r0, [r4, 0x4]
- adds r1, r5
- adds r0, r6
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x40
- strb r1, [r0, 0x1B]
- movs r7, 0x1
- b _08016BF8
-_08016BC6:
- ldr r0, [r4]
- adds r1, r0, r5
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08016BF8
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08016BF8
- b _08016BF6
-_08016BE0:
- movs r3, 0x4
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1A]
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0
- strb r1, [r0, 0x1B]
-_08016BF6:
- movs r7, 0x2
-_08016BF8:
- ldr r0, [r4]
- add r0, r8
- movs r1, 0
- strh r1, [r0, 0x18]
- b _08016C5C
-_08016C02:
- ldr r0, [r4]
- adds r1, r0, r5
- ldrb r0, [r1, 0x1A]
- lsls r2, r0, 30
- lsrs r0, r2, 30
- cmp r0, 0x2
- beq _08016C3C
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- ldr r0, [r4]
- adds r2, r0, r5
- ldrh r1, [r2, 0x18]
- ldr r0, =0x00000257
- cmp r1, r0
- bls _08016C5C
- ldrb r0, [r2, 0x1A]
- movs r5, 0x4
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1A]
- movs r7, 0x2
- b _08016C5C
- .pool
-_08016C3C:
- lsrs r0, r2, 30
- cmp r0, 0x2
- bne _08016C5C
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- ldr r0, [r4]
- adds r2, r0, r5
- ldrh r1, [r2, 0x18]
- ldr r0, =0x00000383
- cmp r1, r0
- bls _08016C5C
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8017580
-_08016C5C:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0x7
- bhi _08016C6C
- b _08016B68
-_08016C6C:
- movs r5, 0
- movs r6, 0x3
-_08016C70:
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- adds r1, r5
- movs r2, 0x8
- bl sub_8017734
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08016C86
- movs r7, 0x1
-_08016C86:
- adds r5, 0x1C
- subs r6, 0x1
- cmp r6, 0
- bge _08016C70
- adds r0, r7, 0
-_08016C90:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8016B00
thumb_func_start sub_8016CA0
sub_8016CA0: @ 8016CA0
@@ -2905,7 +563,7 @@ _080170CA:
negs r0, r0
b _08017110
_080170D4:
- bl sub_8197930
+ bl DisplayYesNoMenu
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -2920,7 +578,7 @@ _080170E0:
negs r0, r0
b _08017110
_080170F2:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
movs r2, 0x80
@@ -6278,7 +3936,7 @@ _08018BD6:
b _08018C3E
.pool
_08018BE4:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r6, r0, 24
movs r1, 0x80
@@ -8335,7 +5993,7 @@ _08019C5A:
beq _08019CE6
mov r0, sp
adds r1, r4, 0
- bl plaer_get_pos_including_state_based_drift
+ bl player_get_pos_including_state_based_drift
mov r0, sp
movs r1, 0
ldrsh r2, [r0, r1]
@@ -8881,7 +6539,7 @@ sub_801A064: @ 801A064
adds r5, 0x6
adds r0, r4, 0
adds r1, r5, 0
- bl plaer_get_pos_including_state_based_drift
+ bl player_get_pos_including_state_based_drift
lsls r0, r7, 2
adds r0, r7
subs r0, 0x38
@@ -10149,7 +7807,7 @@ sub_801AAD4: @ 801AAD4
ldr r6, =gPlayerParty
ldr r5, =gEnemyParty
_0801AAE4:
- ldr r0, =gUnknown_0203CEF8
+ ldr r0, =gSelectedOrderFromParty
adds r0, r4, r0
ldrb r0, [r0]
subs r0, 0x1
@@ -10504,7 +8162,7 @@ _0801AE54:
movs r1, 0
movs r2, 0x20
bl memset
- ldr r0, =gUnknown_0203CEF8
+ ldr r0, =gSelectedOrderFromParty
ldrb r1, [r0]
ldrb r0, [r0, 0x1]
cmn r1, r0
@@ -10934,7 +8592,7 @@ sub_801B1E8: @ 801B1E8
ldr r0, [r0]
ldr r1, =0x00000bec
adds r0, r1
- bl sub_816534C
+ bl ClearEReaderTrainer
pop {r0}
bx r0
.pool
@@ -11490,7 +9148,7 @@ _0801B628:
ldr r1, [r0]
adds r1, 0xA
adds r0, r4, 0
- bl CopyUnalignedWord
+ bl CopyTrainerId
mov r2, r8
ldr r1, [r2]
adds r0, r6, 0
@@ -16904,7 +14562,7 @@ _0801E16A:
b _0801E23A
.pool
_0801E17C:
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 8
lsrs r6, r0, 16
@@ -20614,7 +18272,7 @@ _0801FEFE:
thumb_func_start sub_801FF08
sub_801FF08: @ 801FF08
push {lr}
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 24
pop {r1}
@@ -28887,10 +26545,10 @@ _08024246:
strb r0, [r5, 0xC]
b _080242D8
_0802426A:
- bl sub_8197930
+ bl DisplayYesNoMenu
b _080242D0
_08024270:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -47811,7 +45469,7 @@ _0802DA84:
thumb_func_start sub_802DA8C
sub_802DA8C: @ 802DA8C
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r0, 24
pop {r1}
diff --git a/asm/roulette.s b/asm/roulette.s
index f5d2dc372..1552ba4fe 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -736,7 +736,7 @@ sub_8140914: @ 8140914
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8197930
+ bl DisplayYesNoMenu
ldr r5, =gUnknown_0203AB8C
ldrb r0, [r5]
movs r1, 0
@@ -4502,7 +4502,7 @@ sub_81428C4: @ 81428C4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8197930
+ bl DisplayYesNoMenu
ldr r1, =gUnknown_085B6408
adds r0, r4, 0
bl sub_8121F68
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index bb145e78d..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,1883 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ScriptMenu_Multichoice
-@ bool8 ScriptMenu_Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-ScriptMenu_Multichoice: @ 80E1E08
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E1E4C
- ldr r0, =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- str r0, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoMultichoice
- movs r0, 0x1
- b _080E1E4E
- .pool
-_080E1E4C:
- movs r0, 0
-_080E1E4E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_Multichoice
-
- thumb_func_start ScriptMenu_MultichoiceWithDefault
-ScriptMenu_MultichoiceWithDefault: @ 80E1E58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E1EA8
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- str r4, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoMultichoice
- movs r0, 0x1
- b _080E1EAA
- .pool
-_080E1EA8:
- movs r0, 0
-_080E1EAA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_MultichoiceWithDefault
-
- thumb_func_start sub_80E1EB8
-sub_80E1EB8: @ 80E1EB8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- b _080E1EEC
-_080E1EC0:
- cmp r1, 0xFD
- bne _080E1EE4
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080E1EEC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- bl StringLength
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- b _080E1EEC
- .pool
-_080E1EE4:
- adds r4, 0x1
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E1EEC:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E1EC0
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E1EB8
-
- thumb_func_start DoMultichoice
-@ void DoMultichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-DoMultichoice: @ 80E1EFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- ldr r1, =gUnknown_0858B760
- lsls r0, r2, 3
- adds r0, r1
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- mov r8, r0
- movs r1, 0
- cmp r1, r6
- bge _080E1F4C
- mov r5, r8
- adds r4, r6, 0
-_080E1F3C:
- ldr r0, [r5]
- bl display_text_and_get_width
- adds r1, r0, 0
- adds r5, 0x8
- subs r4, 0x1
- cmp r4, 0
- bne _080E1F3C
-_080E1F4C:
- adds r0, r1, 0
- bl convert_pixel_width_to_tile_width
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, r6, 25
- lsrs r3, 24
- adds r0, r7, 0
- mov r1, r9
- adds r2, r4, 0
- bl CreateWindowFromRect
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r8
- bl PrintMenuTable
- adds r0, r4, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x4]
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, [sp]
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r10
- bl sub_80E1FBC
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoMultichoice
-
- thumb_func_start sub_80E1FBC
-sub_80E1FBC: @ 80E1FBC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r1, =gUnknown_02039F90
- movs r0, 0x2
- strb r0, [r1]
- movs r2, 0
- ldr r6, =sub_80E2058
- ldr r5, =gUnknown_0858BB68
- movs r3, 0xC
-_080E1FE6:
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, r4
- bne _080E1FF0
- strb r3, [r1]
-_080E1FF0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _080E1FE6
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- mov r0, r8
- strh r0, [r1, 0x10]
- cmp r7, 0x3
- bls _080E202C
- movs r0, 0x1
- b _080E202E
- .pool
-_080E202C:
- movs r0, 0
-_080E202E:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- mov r1, r9
- strh r1, [r0, 0x14]
- strh r4, [r0, 0x16]
- adds r0, r4, 0
- bl sub_80E2A94
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E1FBC
-
- thumb_func_start sub_80E2058
-sub_80E2058: @ 80E2058
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E20FC
- ldr r1, =gUnknown_02039F90
- ldrb r0, [r1]
- cmp r0, 0
- beq _080E2090
- subs r0, 0x1
- strb r0, [r1]
- b _080E20FC
- .pool
-_080E2090:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E209E
- bl Menu_ProcessInputNoWrapAround
- b _080E20A2
-_080E209E:
- bl ProcessMenuInput
-_080E20A2:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _080E20B8
- ldrb r0, [r5, 0xE]
- bl sub_80E2A94
-_080E20B8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E20FC
- adds r0, 0x1
- cmp r1, r0
- bne _080E20E8
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E20FC
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _080E20EC
- .pool
-_080E20E8:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080E20EC:
- ldrb r0, [r5, 0xC]
- bl sub_80E2A78
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E20FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2058
-
- thumb_func_start ScriptMenu_YesNo
-ScriptMenu_YesNo: @ 80E2108
- push {r4,lr}
- ldr r4, =task_yes_no_maybe
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2138
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_8197930
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- movs r0, 0x1
- b _080E213A
- .pool
-_080E2138:
- movs r0, 0
-_080E213A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_YesNo
-
- thumb_func_start sub_80E2140
-sub_80E2140: @ 80E2140
- push {lr}
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080E2154
- movs r0, 0x1
- b _080E2156
- .pool
-_080E2154:
- movs r0, 0
-_080E2156:
- pop {r1}
- bx r1
- thumb_func_end sub_80E2140
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80E215C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080E2180
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080E21C4
- .pool
-_080E2180:
- bl Menu_ProcessInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E21A4
- cmp r1, r0
- bgt _080E219C
- subs r0, 0x1
- cmp r1, r0
- beq _080E21C4
- b _080E21BA
-_080E219C:
- cmp r1, 0
- beq _080E21B4
- cmp r1, 0x1
- bne _080E21BA
-_080E21A4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- b _080E21B8
- .pool
-_080E21B4:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
-_080E21B8:
- strh r0, [r1]
-_080E21BA:
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E21C4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start ScriptMenu_MultichoiceGrid
-ScriptMenu_MultichoiceGrid: @ 80E21D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x8]
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- ldr r0, =sub_80E2308
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2210
- movs r0, 0
- b _080E22E8
- .pool
-_080E2210:
- ldr r0, =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r2, 0
- movs r6, 0
- ldr r1, =gUnknown_0858B760
- lsls r5, 3
- adds r0, r5, r1
- str r5, [sp, 0xC]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bge _080E2246
- mov r8, r1
-_080E222A:
- mov r0, r8
- adds r4, r5, r0
- ldr r1, [r4]
- lsls r0, r6, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- bl display_text_and_get_width
- adds r2, r0, 0
- adds r6, 0x1
- ldrb r4, [r4, 0x4]
- cmp r6, r4
- blt _080E222A
-_080E2246:
- adds r0, r2, 0
- bl convert_pixel_width_to_tile_width
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- muls r1, r5
- mov r8, r1
- adds r0, r7, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gUnknown_0858B760
- mov r9, r2
- ldr r0, [sp, 0xC]
- add r9, r0
- mov r1, r9
- ldrb r0, [r1, 0x4]
- mov r1, r10
- bl __udivsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =sub_80E2308
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x10]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, r6, 25
- lsrs r3, 24
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- mov r2, r8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldrb r0, [r4, 0x14]
- lsls r5, 27
- lsrs r5, 24
- mov r2, r9
- ldr r1, [r2]
- str r1, [sp]
- adds r1, r5, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_81997AC
- ldrb r0, [r4, 0x14]
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_8199944
- ldrb r0, [r4, 0x14]
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
-_080E22E8:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ScriptMenu_MultichoiceGrid
-
- thumb_func_start sub_80E2308
-sub_80E2308: @ 80E2308
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- bl sub_8199334
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E2360
- adds r0, 0x1
- cmp r1, r0
- bne _080E234C
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E2360
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _080E2350
- .pool
-_080E234C:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080E2350:
- ldrb r0, [r5, 0xC]
- bl sub_80E2A78
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E2360:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2308
-
- thumb_func_start ScrSpecial_CreatePCMenu
-@ bool ScrSpecial_CreatePCMenu()
-ScrSpecial_CreatePCMenu: @ 80E236C
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2394
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080E2396
- .pool
-_080E2394:
- movs r0, 0
-_080E2396:
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80E239C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- movs r7, 0x8
- movs r5, 0
- movs r4, 0
- ldr r6, =gUnknown_0858BB70
-_080E23AC:
- ldm r6!, {r0}
- adds r1, r5, 0
- bl display_text_and_get_width
- adds r5, r0, 0
- adds r4, 0x1
- cmp r4, 0x3
- bls _080E23AC
- ldr r6, =0x00000864
- adds r0, r6, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080E23D4
- ldr r0, =gText_HallOfFame
- adds r1, r5, 0
- bl display_text_and_get_width
- adds r5, r0, 0
-_080E23D4:
- adds r0, r5, 0
- bl convert_pixel_width_to_tile_width
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- bl FlagGet
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080E2448
- movs r0, 0x4
- mov r8, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_HallOfFame
- movs r0, 0x21
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, =gText_LogOff
- movs r0, 0x31
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _080E247A
- .pool
-_080E2448:
- movs r0, 0x3
- mov r8, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x6
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_LogOff
- movs r0, 0x21
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_080E247A:
- ldr r0, =0x000008ab
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E24B0
- ldr r2, =gText_LanettesPC
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _080E24C6
- .pool
-_080E24B0:
- ldr r2, =gText_SomeonesPC
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_080E24C6:
- ldr r4, =gStringVar4
- ldr r1, =gText_PlayersPC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r7, 0
- movs r3, 0x11
- bl PrintPlayerNameOnWindow
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0x1
- bl sub_80E1FBC
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreatePCMenu
-
- thumb_func_start ScriptMenu_DisplayPCStartupPrompt
-ScriptMenu_DisplayPCStartupPrompt: @ 80E2514
- push {lr}
- sub sp, 0x10
- movs r0, 0
- movs r1, 0x1
- bl sub_819786C
- ldr r2, =gUnknown_0827266F
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end ScriptMenu_DisplayPCStartupPrompt
-
- thumb_func_start sub_80E2548
-sub_80E2548: @ 80E2548
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2570
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_80E2578
- movs r0, 0x1
- b _080E2572
- .pool
-_080E2570:
- movs r0, 0
-_080E2572:
- pop {r1}
- bx r1
- thumb_func_end sub_80E2548
-
- thumb_func_start sub_80E2578
-sub_80E2578: @ 80E2578
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- movs r5, 0
- movs r4, 0
- ldr r3, =gUnknown_03001124
- movs r2, 0xFF
-_080E258A:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080E258A
- movs r0, 0x1
- movs r1, 0
- bl GetFontAttribute
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- cmp r1, 0
- bne _080E25D2
- ldr r4, =gUnknown_03001124
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xE8
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080E25D2
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E25D2:
- ldr r0, =0x00000113
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2630
- ldr r0, =0x000008b3
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2630
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2606
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2606:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E2630
- movs r4, 0xD7
- lsls r4, 1
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E2630
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E2630:
- movs r0, 0xB9
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2690
- movs r0, 0x8E
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2690
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2668
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x3
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2668:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E2690
- ldr r4, =0x000001db
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E2690
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x3
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E2690:
- ldr r0, =0x00000173
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E26EC
- ldr r0, =0x000008d5
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E26EC
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E26C4
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E26C4:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E26EC
- ldr r4, =0x000001af
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E26EC
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E26EC:
- movs r0, 0xBC
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E274C
- ldr r0, =0x000008d6
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E274C
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2722
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x5
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2722:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E274C
- movs r4, 0xD8
- lsls r4, 1
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E274C
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x5
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E274C:
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080E276E
- movs r0, 0xE8
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
-_080E276E:
- adds r7, r5, 0
- cmp r7, 0x7
- bne _080E27A4
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0xB
- strh r0, [r1]
- bl sub_813A128
- b _080E2860
- .pool
-_080E27A4:
- movs r1, 0
- movs r4, 0
- lsls r6, r7, 25
- subs r0, r7, 0x1
- mov r9, r0
- ldr r5, =gUnknown_0858BB80
-_080E27B0:
- ldr r0, =gUnknown_03001124
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080E27C6
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl display_text_and_get_width
- adds r1, r0, 0
-_080E27C6:
- adds r4, 0x1
- cmp r4, 0x6
- bls _080E27B0
- adds r0, r1, 0
- bl convert_pixel_width_to_tile_width
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1C
- subs r0, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x6
- subs r1, r7
- lsls r1, 25
- lsrs r1, 24
- lsrs r3, r6, 24
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r5, 0
- movs r4, 0
- ldr r0, =gUnknown_0858BB80
- mov r8, r0
-_080E2802:
- ldr r0, =gUnknown_03001124
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080E2834
- lsls r0, 2
- add r0, r8
- ldr r2, [r0]
- lsls r0, r5, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2834:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080E2802
- mov r0, r9
- lsls r2, r0, 24
- lsrs r2, 24
- adds r0, r6, 0
- adds r1, r7, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- adds r1, r7, 0
- adds r2, r6, 0
- movs r3, 0x8
- bl sub_80E1FBC
-_080E2860:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2578
-
- thumb_func_start sub_80E2878
-sub_80E2878: @ 80E2878
- push {lr}
- ldr r2, =gSpecialVar_Result
- ldrh r0, [r2]
- cmp r0, 0x7F
- beq _080E288C
- ldr r0, =gUnknown_03001124
- ldrh r1, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
-_080E288C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2878
-
- thumb_func_start task_picbox
-task_picbox: @ 80E2898
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080E28F8
- cmp r0, 0x1
- bgt _080E28C0
- cmp r0, 0
- beq _080E28DE
- b _080E28F8
- .pool
-_080E28C0:
- cmp r0, 0x2
- beq _080E28CA
- cmp r0, 0x3
- beq _080E28EC
- b _080E28F8
-_080E28CA:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl FreeResourcesAndDestroySprite
-_080E28DE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E28F8
- .pool
-_080E28EC:
- ldrb r0, [r4, 0x12]
- bl sub_80E2A78
- adds r0, r5, 0
- bl DestroyTask
-_080E28F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start ScriptMenu_ShowPokemonPic
-ScriptMenu_ShowPokemonPic: @ 80E2900
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r4, =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080E29B8
- lsls r1, r7, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r6, 19
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- movs r3, 0
- bl CreateMonSprite_PicBox
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- ldr r1, =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r3, 0x12]
- strh r1, [r3, 0x8]
- mov r0, r8
- strh r0, [r3, 0xA]
- strh r5, [r3, 0xC]
- ldr r4, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r0, [r3, 0x12]
- movs r1, 0x1
- bl SetStandardWindowBorderStyle
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- b _080E29BA
- .pool
-_080E29B8:
- movs r0, 0
-_080E29BA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_ShowPokemonPic
-
- thumb_func_start ScriptMenu_GetPicboxWaitFunc
-ScriptMenu_GetPicboxWaitFunc: @ 80E29C4
- push {lr}
- ldr r0, =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080E29F4
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, =sub_80E29FC
- b _080E29F6
- .pool
-_080E29F4:
- movs r0, 0
-_080E29F6:
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_GetPicboxWaitFunc
-
- thumb_func_start sub_80E29FC
-sub_80E29FC: @ 80E29FC
- push {lr}
- ldr r0, =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080E2A14
- movs r0, 0
- b _080E2A16
- .pool
-_080E2A14:
- movs r0, 0x1
-_080E2A16:
- pop {r1}
- bx r1
- thumb_func_end sub_80E29FC
-
- thumb_func_start CreateWindowFromRect
-CreateWindowFromRect: @ 80E2A1C
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl CreateWindowTemplate
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CreateWindowFromRect
-
- thumb_func_start sub_80E2A78
-sub_80E2A78: @ 80E2A78
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2A78
-
- thumb_func_start sub_80E2A94
-sub_80E2A94: @ 80E2A94
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x4A
- cmp r0, 0x5
- bhi _080E2B70
- lsls r0, 2
- ldr r1, =_080E2AB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E2AB0:
- .4byte _080E2B40
- .4byte _080E2B08
- .4byte _080E2AD8
- .4byte _080E2AC8
- .4byte _080E2AE8
- .4byte _080E2AF8
-_080E2AC8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBAC
- b _080E2B12
- .pool
-_080E2AD8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BB9C
- b _080E2B12
- .pool
-_080E2AE8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBBC
- b _080E2B12
- .pool
-_080E2AF8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBCC
- b _080E2B12
- .pool
-_080E2B08:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBEC
-_080E2B12:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
- b _080E2B70
- .pool
-_080E2B40:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBE0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
-_080E2B70:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2A94
-
- thumb_func_start sp106_CreateStartMenu
-sp106_CreateStartMenu: @ 80E2B7C
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2BA4
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl CreateStartMenu
- movs r0, 0x1
- b _080E2BA6
- .pool
-_080E2BA4:
- movs r0, 0
-_080E2BA6:
- pop {r1}
- bx r1
- thumb_func_end sp106_CreateStartMenu
-
- thumb_func_start CreateStartMenu
-CreateStartMenu: @ 80E2BAC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x12
- bl CreateWindowFromRect
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_MenuOptionPokedex
- movs r0, 0x9
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionPokemon
- movs r0, 0x19
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionBag
- movs r0, 0x29
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionPokenav
- movs r0, 0x39
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0x49
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionSave
- movs r0, 0x59
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionOption
- movs r0, 0x69
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionExit
- movs r0, 0x79
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x9
- bl sub_81983AC
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- movs r3, 0x56
- bl sub_80E2CC4
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateStartMenu
-
- thumb_func_start sub_80E2CC4
-sub_80E2CC4: @ 80E2CC4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, =gUnknown_02039F90
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, =sub_80E2058
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r5, [r1, 0x14]
- strh r6, [r1, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2CC4
-
- thumb_func_start display_text_and_get_width_internal
-display_text_and_get_width_internal: @ 80E2D10
- push {lr}
- sub sp, 0x40
- adds r1, r0, 0
- mov r0, sp
- bl StringExpandPlaceholders
- movs r0, 0x1
- mov r1, sp
- movs r2, 0
- bl GetStringWidth
- add sp, 0x40
- pop {r1}
- bx r1
- thumb_func_end display_text_and_get_width_internal
-
- thumb_func_start display_text_and_get_width
-display_text_and_get_width: @ 80E2D2C
- push {r4,lr}
- adds r4, r1, 0
- bl display_text_and_get_width_internal
- cmp r0, r4
- bge _080E2D3A
- adds r0, r4, 0
-_080E2D3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end display_text_and_get_width
-
- thumb_func_start convert_pixel_width_to_tile_width
-convert_pixel_width_to_tile_width: @ 80E2D40
- push {lr}
- adds r1, r0, 0
- adds r0, 0x9
- cmp r0, 0
- bge _080E2D4C
- adds r0, 0x7
-_080E2D4C:
- asrs r0, 3
- adds r0, 0x1
- cmp r0, 0x1C
- ble _080E2D56
- movs r0, 0x1C
-_080E2D56:
- pop {r1}
- bx r1
- thumb_func_end convert_pixel_width_to_tile_width
-
- thumb_func_start sub_80E2D5C
-sub_80E2D5C: @ 80E2D5C
- push {lr}
- adds r2, r0, 0
- adds r0, r2, r1
- cmp r0, 0x1C
- ble _080E2D70
- movs r0, 0x1C
- subs r2, r0, r1
- cmp r2, 0
- bge _080E2D70
- movs r2, 0
-_080E2D70:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80E2D5C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
deleted file mode 100644
index 1202473ee..000000000
--- a/asm/script_pokemon_util_80F87D8.s
+++ /dev/null
@@ -1,1667 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80F87D8
-sub_80F87D8: @ 80F87D8
- push {r4,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- ldr r1, =gContestMons
- ldrb r3, [r1, 0x15]
- ldr r4, =0x000013bc
- adds r0, r2, r4
- strh r3, [r0]
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r3, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r3, [r0]
- adds r1, 0x95
- ldrb r0, [r1]
- movs r1, 0x9E
- lsls r1, 5
- adds r2, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F87D8
-
- thumb_func_start sub_80F8814
-sub_80F8814: @ 80F8814
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080F883A
- cmp r0, 0x1
- bgt _080F8830
- cmp r0, 0
- beq _080F8836
- b _080F8842
- .pool
-_080F8830:
- cmp r1, 0x2
- beq _080F883E
- b _080F8842
-_080F8836:
- movs r1, 0x3
- b _080F8844
-_080F883A:
- movs r1, 0x4
- b _080F8844
-_080F883E:
- movs r1, 0x5
- b _080F8844
-_080F8842:
- movs r1, 0x64
-_080F8844:
- ldr r0, =gSpecialVar_0x8004
- strh r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8814
-
- thumb_func_start sub_80F8850
-sub_80F8850: @ 80F8850
- push {lr}
- bl sub_80F8264
- bl sub_80F8290
- bl sub_80F8438
- pop {r0}
- bx r0
- thumb_func_end sub_80F8850
-
- thumb_func_start sub_80F8864
-sub_80F8864: @ 80F8864
- push {lr}
- ldr r0, =gSpecialVar_ContestCategory
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080F88A4
- lsls r0, 2
- ldr r1, =_080F8880
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080F8880:
- .4byte _080F8894
- .4byte _080F8898
- .4byte _080F889C
- .4byte _080F88A0
- .4byte _080F88A4
-_080F8894:
- movs r1, 0x8
- b _080F88A6
-_080F8898:
- movs r1, 0x9
- b _080F88A6
-_080F889C:
- movs r1, 0xA
- b _080F88A6
-_080F88A0:
- movs r1, 0xB
- b _080F88A6
-_080F88A4:
- movs r1, 0xC
-_080F88A6:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- lsls r1, 5
- adds r0, r1
- ldr r1, =0x00002e98
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _080F88CC
- ldr r0, =gSpecialVar_0x8004
- strh r1, [r0]
- b _080F88D2
- .pool
-_080F88CC:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
-_080F88D2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8864
-
- thumb_func_start sub_80F88DC
-sub_80F88DC: @ 80F88DC
- push {lr}
- movs r0, 0xFF
- bl sub_80DEDA8
- pop {r0}
- bx r0
- thumb_func_end sub_80F88DC
-
- thumb_func_start sub_80F88E8
-sub_80F88E8: @ 80F88E8
- push {lr}
- ldr r0, =gContestFinalStandings
- ldr r1, =gContestPlayerMonIndex
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8930
- ldr r0, =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080F8930
- ldr r1, =gUnknown_02039F08
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, =0x0000031f
- cmp r1, r0
- ble _080F8930
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- b _080F8934
- .pool
-_080F8930:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0
-_080F8934:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F88E8
-
- thumb_func_start sub_80F8940
-sub_80F8940: @ 80F8940
- push {lr}
- movs r3, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00002f98
- adds r1, r0, r2
- movs r2, 0x4
-_080F894E:
- ldrh r0, [r1]
- cmp r0, 0
- beq _080F895A
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080F895A:
- adds r1, 0x20
- subs r2, 0x1
- cmp r2, 0
- bge _080F894E
- adds r0, r3, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80F8940
-
- thumb_func_start sub_80F8970
-sub_80F8970: @ 80F8970
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, =gContestMonConditions
- mov r12, r0
- ldr r1, =gSpecialVar_0x8006
- mov r9, r1
- ldr r2, =gContestMons + 2
- mov r10, r2
- mov r2, r12
- mov r1, sp
- movs r6, 0x3
-_080F898E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080F898E
- movs r6, 0
-_080F899E:
- movs r1, 0x3
- cmp r1, r6
- ble _080F89C8
-_080F89A4:
- subs r5, r1, 0x1
- lsls r0, r5, 1
- mov r4, sp
- adds r3, r4, r0
- lsls r0, r1, 1
- adds r2, r4, r0
- ldrh r4, [r3]
- movs r7, 0
- ldrsh r1, [r3, r7]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080F89C2
- strh r4, [r2]
- strh r0, [r3]
-_080F89C2:
- adds r1, r5, 0
- cmp r1, r6
- bgt _080F89A4
-_080F89C8:
- adds r6, 0x1
- cmp r6, 0x2
- ble _080F899E
- mov r2, r9
- ldrh r0, [r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- movs r2, 0
- mov r8, r2
- movs r6, 0
- lsls r0, 16
- asrs r4, r0, 16
- adds r3, r0, 0
- mov r1, sp
- mov r5, r9
-_080F89E8:
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r0, r4
- bne _080F8A02
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- ldrh r7, [r5]
- cmp r6, r7
- bne _080F8A02
- mov r8, r2
-_080F8A02:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080F89E8
- movs r6, 0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r1, r3, 16
- lsls r2, 24
- mov r9, r2
- cmp r0, r1
- beq _080F8A30
- adds r2, r1, 0
- mov r1, sp
-_080F8A20:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080F8A30
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, r2
- bne _080F8A20
-_080F8A30:
- lsls r0, r6, 24
- lsrs r7, r0, 24
- mov r2, r8
- movs r6, 0
- asrs r1, r3, 16
- mov r5, r12
- movs r4, 0
- ldrsh r0, [r5, r4]
- b _080F8A66
- .pool
-_080F8A50:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080F8A56:
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080F8A6E
- lsls r0, r6, 1
- add r0, r12
- asrs r1, r3, 16
- movs r5, 0
- ldrsh r0, [r0, r5]
-_080F8A66:
- cmp r1, r0
- bne _080F8A56
- cmp r2, 0x1
- bne _080F8A50
-_080F8A6E:
- lsls r4, r6, 6
- mov r0, r10
- adds r1, r4, r0
- ldr r0, =gStringVar1
- bl StringCopy
- ldr r5, =gStringVar2
- mov r0, r10
- adds r0, 0xB
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopy
- adds r0, r5, 0
- bl sub_81DB5AC
- mov r1, r9
- asrs r0, r1, 24
- cmp r0, 0x1
- beq _080F8A9C
- cmp r8, r0
- bne _080F8AB0
-_080F8A9C:
- ldr r0, =gSpecialVar_0x8006
- strh r7, [r0]
- b _080F8AB6
- .pool
-_080F8AB0:
- ldr r1, =gSpecialVar_0x8006
- adds r0, r7, 0x4
- strh r0, [r1]
-_080F8AB6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8970
-
- thumb_func_start sub_80F8ACC
-sub_80F8ACC: @ 80F8ACC
- push {lr}
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8ACC
-
- thumb_func_start ShowContestWinner
-ShowContestWinner: @ 80F8ADC
- push {lr}
- ldr r0, =sub_812FDEC
- bl SetMainCallback2
- ldr r1, =gMain
- ldr r0, =sub_80F8ACC
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ShowContestWinner
-
- thumb_func_start sub_80F8AFC
-sub_80F8AFC: @ 80F8AFC
- push {r4,r5,lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F8B7C
- movs r3, 0
- ldr r0, =gUnknown_02039F30
- adds r4, r0, 0
- ldr r5, =gContestMons
- ldrb r0, [r4]
- cmp r3, r0
- bge _080F8B50
- adds r2, r5, 0
- ldr r1, =gLinkPlayers
-_080F8B1C:
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r0, 0x1
- bhi _080F8B44
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _080F8B40
- movs r0, 0xEB
- b _080F8B42
- .pool
-_080F8B40:
- movs r0, 0xEC
-_080F8B42:
- strb r0, [r2, 0x15]
-_080F8B44:
- adds r2, 0x40
- adds r1, 0x1C
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _080F8B1C
-_080F8B50:
- ldr r0, =0x00004010
- ldrb r1, [r5, 0x15]
- bl VarSet
- ldr r0, =0x00004011
- adds r1, r5, 0
- adds r1, 0x55
- ldrb r1, [r1]
- bl VarSet
- ldr r0, =0x00004012
- adds r1, r5, 0
- adds r1, 0x95
- ldrb r1, [r1]
- bl VarSet
- ldr r0, =0x00004013
- adds r1, r5, 0
- adds r1, 0xD5
- ldrb r1, [r1]
- bl VarSet
-_080F8B7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8AFC
-
- thumb_func_start sub_80F8B94
-sub_80F8B94: @ 80F8B94
- push {r4-r7,lr}
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0xC
- strb r0, [r1]
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F8C6E
- movs r5, 0
- ldr r0, =gUnknown_02039F30
- ldrb r0, [r0]
- cmp r5, r0
- bge _080F8C6E
- movs r7, 0
- movs r6, 0x60
- movs r4, 0xB0
- lsls r4, 17
-_080F8BBA:
- ldr r0, =gUnknown_0858D8EC
- adds r0, r5, r0
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gEventObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r6
- strb r0, [r1, 0x5]
- ldr r0, =gLinkPlayers
- adds r1, r7, r0
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r0, 0x1
- bhi _080F8C38
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _080F8C2C
- lsrs r1, r4, 16
- ldr r0, =gEventObjectPalette33
- b _080F8C42
- .pool
-_080F8C2C:
- lsrs r1, r4, 16
- ldr r0, =gEventObjectPalette34
- b _080F8C42
- .pool
-_080F8C38:
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- bne _080F8C50
- lsrs r1, r4, 16
- ldr r0, =gEventObjectPalette8
-_080F8C42:
- movs r2, 0x20
- bl LoadPalette
- b _080F8C5A
- .pool
-_080F8C50:
- lsrs r1, r4, 16
- ldr r0, =gEventObjectPalette17
- movs r2, 0x20
- bl LoadPalette
-_080F8C5A:
- movs r0, 0x80
- lsls r0, 13
- adds r4, r0
- adds r7, 0x1C
- adds r6, 0x10
- adds r5, 0x1
- ldr r0, =gUnknown_02039F30
- ldrb r0, [r0]
- cmp r5, r0
- blt _080F8BBA
-_080F8C6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8B94
-
- thumb_func_start sub_80F8C7C
-sub_80F8C7C: @ 80F8C7C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, =gUnknown_02039F24
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x46
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0
- bne _080F8D18
- ldr r0, =gContestFinalStandings
- ldr r1, =gContestPlayerMonIndex
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8D18
- ldr r0, =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080F8D18
- ldr r1, =gUnknown_02039F08
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, =0x0000031f
- cmp r1, r0
- ble _080F8D18
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x46
- mov r2, sp
- bl SetMonData
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- bl GetRibbonCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080F8CF6
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x46
- bl sub_80EE4DC
-_080F8CF6:
- movs r0, 0x1
- b _080F8D1A
- .pool
-_080F8D18:
- movs r0, 0
-_080F8D1A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8C7C
-
- thumb_func_start sub_80F8D24
-sub_80F8D24: @ 80F8D24
- movs r0, 0
- bx lr
- thumb_func_end sub_80F8D24
-
- thumb_func_start sub_80F8D28
-sub_80F8D28: @ 80F8D28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, =sub_80F8EE8
- adds r0, r7, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080F8D44
- b _080F8E9C
-_080F8D44:
- bl AllocateMonSpritesGfx
- movs r0, 0xA
- mov r9, r0
- movs r1, 0x3
- mov r10, r1
- ldr r2, =gContestMons
- ldr r4, =gSpecialVar_0x8006
- ldrh r1, [r4]
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r5, [r0]
- adds r2, 0x3C
- adds r1, r2
- ldr r1, [r1]
- mov r8, r1
- adds r0, r7, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r6, [r0, 0xA]
- ldr r1, =gContestPlayerMonIndex
- ldrh r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080F8DC4
- lsls r0, r6, 3
- ldr r1, =gMonFrontPicTable
- adds r0, r1
- ldr r1, =gMonSpritesGfxPtr
- ldr r1, [r1]
- ldr r1, [r1, 0x8]
- adds r2, r6, 0
- adds r3, r5, 0
- bl HandleLoadSpecialPokePic_2
- b _080F8DD8
- .pool
-_080F8DC4:
- lsls r0, r6, 3
- ldr r1, =gMonFrontPicTable
- adds r0, r1
- ldr r1, =gMonSpritesGfxPtr
- ldr r1, [r1]
- ldr r1, [r1, 0x8]
- adds r2, r6, 0
- adds r3, r5, 0
- bl HandleLoadSpecialPokePic_DontHandleDeoxys
-_080F8DD8:
- adds r0, r6, 0
- mov r1, r8
- adds r2, r5, 0
- bl GetMonSpritePalStructFromOtIdPersonality
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl SetMultiuseSpriteTemplateToPokemon
- ldr r0, =gMultiuseSpriteTemplate
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- mov r1, r9
- adds r1, 0x1
- lsls r1, 19
- movs r2, 0x80
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- mov r3, r10
- lsls r2, r3, 19
- movs r3, 0xA0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F8E58
- movs r0, 0x4
- ands r0, r1
- lsls r4, r5, 4
- cmp r0, 0
- bne _080F8E6C
- adds r0, r4, r5
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl DoMonFrontSpriteAnimation
- b _080F8E6C
- .pool
-_080F8E58:
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl DoMonFrontSpriteAnimation
-_080F8E6C:
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xC]
- mov r1, r9
- strh r1, [r0, 0xE]
- mov r2, r10
- strh r2, [r0, 0x10]
- ldr r3, =gSprites
- adds r1, r4, r5
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
-_080F8E9C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8D28
-
- thumb_func_start sub_80F8EB8
-sub_80F8EB8: @ 80F8EB8
- push {lr}
- ldr r0, =sub_80F8EE8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080F8EDC
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- bl FreeMonSpritesGfx
-_080F8EDC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8EB8
-
- thumb_func_start sub_80F8EE8
-sub_80F8EE8: @ 80F8EE8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _080F8F98
- lsls r0, 2
- ldr r1, =_080F8F14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080F8F14:
- .4byte _080F8F78
- .4byte _080F8F28
- .4byte _080F8F98
- .4byte _080F8F42
- .4byte _080F8F84
-_080F8F28:
- movs r0, 0xA
- movs r1, 0x3
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- movs r1, 0x1
- bl SetStandardWindowBorderStyle
- b _080F8F78
-_080F8F42:
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _080F8F72
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080F8F72:
- adds r0, r4, 0
- bl DestroySprite
-_080F8F78:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080F8F98
- .pool
-_080F8F84:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x12]
- bl sub_80E2A78
- adds r0, r4, 0
- bl DestroyTask
-_080F8F98:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F8EE8
-
- thumb_func_start sub_80F8FA0
-sub_80F8FA0: @ 80F8FA0
- push {r4,lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F8FD8
- ldr r0, =gUnknown_02039F30
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080F8FD8
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F8FD8
- ldr r4, =gSpecialVar_Result
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _080F8FDE
- .pool
-_080F8FD8:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
- strh r0, [r1]
-_080F8FDE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8FA0
-
- thumb_func_start sub_80F8FE8
-sub_80F8FE8: @ 80F8FE8
- push {r4,lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F9020
- ldr r2, =gContestRngValue
- ldr r1, [r2]
- ldr r0, =0x41c64e6d
- muls r0, r1
- ldr r1, =0x00006073
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- ldr r4, =gSpecialVar_Result
- b _080F902A
- .pool
-_080F9020:
- ldr r4, =gSpecialVar_Result
- bl Random
- lsls r0, 16
- lsrs r0, 16
-_080F902A:
- ldrh r1, [r4]
- bl __umodsi3
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F8FE8
-
- thumb_func_start sub_80F903C
-sub_80F903C: @ 80F903C
- ldr r2, =gContestRngValue
- ldr r1, [r2]
- ldr r0, =0x41c64e6d
- muls r0, r1
- ldr r1, =0x00006073
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- bx lr
- .pool
- thumb_func_end sub_80F903C
-
- thumb_func_start sub_80F905C
-sub_80F905C: @ 80F905C
- push {lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F9074
- movs r0, 0
- b _080F907E
- .pool
-_080F9074:
- ldr r0, =sub_80F9088
- movs r1, 0x5
- bl CreateTask
- movs r0, 0x1
-_080F907E:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80F905C
-
- thumb_func_start sub_80F9088
-sub_80F9088: @ 80F9088
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080F90C0
- cmp r0, 0x1
- beq _080F90CE
- bl sub_800A520
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F90D4
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080F90D4
- .pool
-_080F90C0:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080F90D4
- bl sub_800ADF8
-_080F90CE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080F90D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F9088
-
- thumb_func_start sub_80F90DC
-sub_80F90DC: @ 80F90DC
- push {lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080F90FE
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F90FE
- bl sub_800E0E8
- movs r0, 0x8
- movs r1, 0x8
- bl CreateWirelessStatusIndicatorSprite
-_080F90FE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F90DC
-
- thumb_func_start sub_80F910C
-sub_80F910C: @ 80F910C
- push {lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080F9126
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F9126
- bl sub_800E084
-_080F9126:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F910C
-
- thumb_func_start sub_80F9134
-sub_80F9134: @ 80F9134
- push {lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080F914C
- movs r0, 0
- b _080F914E
- .pool
-_080F914C:
- movs r0, 0x1
-_080F914E:
- pop {r1}
- bx r1
- thumb_func_end sub_80F9134
-
- thumb_func_start sub_80F9154
-sub_80F9154: @ 80F9154
- ldr r1, =gIsLinkContest
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_80F9154
-
- thumb_func_start sub_80F9160
-sub_80F9160: @ 80F9160
- push {lr}
- ldr r0, =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080F9178
- movs r0, 0
- b _080F917A
- .pool
-_080F9178:
- movs r0, 0x1
-_080F917A:
- pop {r1}
- bx r1
- thumb_func_end sub_80F9160
-
- thumb_func_start HealPlayerParty
-HealPlayerParty: @ 80F9180
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r8, r0
- bcs _080F922C
- ldr r1, =gPlayerParty
- mov r10, r1
- mov r6, sp
-_080F919E:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r1, r0, 16
- strb r0, [r6]
- lsrs r1, 24
- strb r1, [r6, 0x1]
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_080F91D4:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- adds r2, r5, 0
- bl CalculatePPWithBonus
- strb r0, [r6]
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080F91D4
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strb r0, [r6, 0x2]
- strb r0, [r6, 0x3]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- add r0, r10
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080F919E
-_080F922C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HealPlayerParty
-
- thumb_func_start ScriptGiveMon
-@ void ScriptGiveMon(s16 species_num, u8 level, int held_item)
-ScriptGiveMon: @ 80F9244
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x78
- adds r5, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r0, r4, 16
- mov r8, r0
- add r6, sp, 0x14
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r3, 0
- movs r3, 0x20
- bl CreateMon
- add r0, sp, 0x10
- mov r1, r8
- strb r1, [r0]
- lsrs r4, 24
- strb r4, [r0, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r6, 0
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0x1
- bgt _080F92B8
- cmp r4, 0
- blt _080F92B8
- adds r0, r5, 0
- movs r1, 0x2
- bl GetSetPokedexFlag
- adds r0, r5, 0
- movs r1, 0x3
- bl GetSetPokedexFlag
-_080F92B8:
- adds r0, r4, 0
- add sp, 0x78
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScriptGiveMon
-
- thumb_func_start ScriptGiveEgg
-ScriptGiveEgg: @ 80F92C8
- push {lr}
- sub sp, 0x68
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0x1
- bl CreateEgg
- add r2, sp, 0x64
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- mov r0, sp
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x68
- pop {r1}
- bx r1
- thumb_func_end ScriptGiveEgg
-
- thumb_func_start HasEnoughMonsForDoubleBattle
-HasEnoughMonsForDoubleBattle: @ 80F92F8
- push {lr}
- bl GetMonsStateToDoubles
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- beq _080F9314
- cmp r1, 0x1
- bgt _080F9310
- cmp r1, 0
- beq _080F9314
- b _080F9318
-_080F9310:
- cmp r1, 0x2
- bne _080F9318
-_080F9314:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080F9318:
- pop {r0}
- bx r0
- .pool
- thumb_func_end HasEnoughMonsForDoubleBattle
-
- thumb_func_start sub_80F9320
-sub_80F9320: @ 80F9320
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- movs r7, 0xCE
- lsls r7, 1
-_080F932C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080F9360
- cmp r0, r7
- beq _080F9360
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, r6
- bne _080F9360
- movs r0, 0x1
- b _080F9368
- .pool
-_080F9360:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080F932C
- movs r0, 0
-_080F9368:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9320
-
- thumb_func_start sub_80F9370
-sub_80F9370: @ 80F9370
- push {r4,lr}
- movs r0, 0xAF
- bl sub_80F9320
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x1
- bne _080F9392
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gStringVar1
- bl GetBerryNameByBerryType
-_080F9392:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80F9370
-
- thumb_func_start CreateScriptedWildMon
-CreateScriptedWildMon: @ 80F93A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r7, r2, 16
- lsrs r6, r7, 16
- bl ZeroEnemyPartyMons
- ldr r0, =gEnemyParty
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x20
- bl CreateMon
- cmp r6, 0
- beq _080F93EE
- add r0, sp, 0x10
- strb r6, [r0]
- adds r1, r0, 0
- lsrs r0, r7, 24
- strb r0, [r1, 0x1]
- mov r0, r8
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_080F93EE:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateScriptedWildMon
-
- thumb_func_start ScriptSetMonMoveSlot
-ScriptSetMonMoveSlot: @ 80F9400
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r3, 0x6
- bls _080F941C
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080F941C:
- movs r0, 0x64
- muls r0, r3
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl SetMonMoveSlot
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ScriptSetMonMoveSlot
-
- thumb_func_start sub_80F9438
-sub_80F9438: @ 80F9438
- push {lr}
- ldr r0, =gMain
- ldr r1, =sub_80F9460
- str r1, [r0, 0x8]
- ldr r0, =0x000040cf
- movs r1, 0x9
- bl VarSet
- movs r0, 0
- bl sub_81B8518
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F9438
-
- thumb_func_start sub_80F9460
-sub_80F9460: @ 80F9460
- push {lr}
- ldr r0, =gUnknown_0203CEF8
- ldrb r1, [r0]
- cmp r1, 0
- bne _080F9478
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
- b _080F947E
- .pool
-_080F9478:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_080F947E:
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F9460
-
- thumb_func_start sub_80F9490
-sub_80F9490: @ 80F9490
- push {lr}
- ldr r1, =gMain
- ldr r0, =sub_80F94B8
- str r0, [r1, 0x8]
- ldr r0, =gSpecialVar_0x8004
- ldrb r0, [r0]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81B8518
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F9490
-
- thumb_func_start sub_80F94B8
-sub_80F94B8: @ 80F94B8
- push {lr}
- ldr r0, =gUnknown_0203CEF8
- ldrb r1, [r0]
- cmp r1, 0
- bne _080F94D0
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
- b _080F94D6
- .pool
-_080F94D0:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_080F94D6:
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80F94B8
-
- thumb_func_start ReducePlayerPartyToThree
-ReducePlayerPartyToThree: @ 80F94E8
- push {r4-r7,lr}
- sub sp, 0x198
- add r0, sp, 0x190
- movs r1, 0
- str r1, [r0]
- ldr r2, =0x05000064
- mov r1, sp
- bl CpuSet
- movs r5, 0
- movs r7, 0x64
- ldr r6, =gPlayerParty
- mov r4, sp
-_080F9502:
- ldr r0, =gUnknown_0203CEF8
- adds r1, r5, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F951C
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r7
- adds r1, r6
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
-_080F951C:
- adds r4, 0x64
- adds r5, 0x1
- cmp r5, 0x3
- ble _080F9502
- add r0, sp, 0x194
- movs r1, 0
- str r1, [r0]
- ldr r4, =gPlayerParty
- ldr r2, =0x05000096
- adds r1, r4, 0
- bl CpuSet
- mov r5, sp
- add r6, sp, 0x12C
-_080F9538:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- cmp r5, r6
- ble _080F9538
- bl CalculatePlayerPartyCount
- add sp, 0x198
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ReducePlayerPartyToThree
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/shop.s b/asm/shop.s
deleted file mode 100644
index 56658c4ff..000000000
--- a/asm/shop.s
+++ /dev/null
@@ -1,1821 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start BuyMenuDrawMapMetatile
-@ void BuyMenuDrawMapMetatile(u16 x, u16 y, u16 *src, u8 metatileLayerType)
-BuyMenuDrawMapMetatile: @ 80E0670
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r3, 24
- lsrs r3, 24
- adds r2, r3, 0
- lsls r0, 17
- lsrs r5, r0, 16
- lsls r1, 22
- lsrs r1, 16
- cmp r3, 0x1
- beq _080E06C0
- cmp r3, 0x1
- bgt _080E0690
- cmp r3, 0
- beq _080E0696
- b _080E0728
-_080E0690:
- cmp r2, 0x2
- beq _080E06F8
- b _080E0728
-_080E0696:
- ldr r6, =gShopDataPtr
- ldr r0, [r6]
- movs r2, 0xC0
- lsls r2, 5
- adds r0, r2
- lsls r5, 16
- asrs r5, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, [r6]
- movs r1, 0x80
- lsls r1, 4
- b _080E06E2
- .pool
-_080E06C0:
- ldr r6, =gShopDataPtr
- ldr r0, [r6]
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2
- lsls r5, 16
- asrs r5, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, [r6]
- movs r1, 0xC0
- lsls r1, 5
-_080E06E2:
- adds r0, r1
- adds r3, r7, 0
- adds r3, 0x8
- adds r1, r5, 0
- adds r2, r4, 0
- bl BuyMenuDrawMapMetatileLayer
- b _080E0728
- .pool
-_080E06F8:
- ldr r6, =gShopDataPtr
- ldr r0, [r6]
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2
- lsls r5, 16
- asrs r5, 16
- lsls r4, r1, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r7, 0
- bl BuyMenuDrawMapMetatileLayer
- ldr r0, [r6]
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1
- adds r3, r7, 0
- adds r3, 0x8
- adds r1, r5, 0
- adds r2, r4, 0
- bl BuyMenuDrawMapMetatileLayer
-_080E0728:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDrawMapMetatile
-
- thumb_func_start BuyMenuDrawMapMetatileLayer
-@ int BuyMenuDrawMapMetatileLayer(void *tilemapBuffer, s16 xOffset, s16 yOffset, u16 *src)
-BuyMenuDrawMapMetatileLayer: @ 80E0734
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r3]
- strh r0, [r1]
- ldrh r0, [r3, 0x2]
- strh r0, [r1, 0x2]
- adds r2, r1, 0
- adds r2, 0x40
- ldrh r0, [r3, 0x4]
- strh r0, [r2]
- adds r1, 0x42
- ldrh r0, [r3, 0x6]
- strh r0, [r1]
- bx lr
- thumb_func_end BuyMenuDrawMapMetatileLayer
-
- thumb_func_start BuyMenuCollectEventObjectData
-@ void BuyMenuCollectEventObjectData()
-BuyMenuCollectEventObjectData: @ 80E075C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r8, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r7, 0
- ldr r5, =gShopDataPtr
- ldr r3, =0x00002010
- movs r2, 0x10
-_080E0780:
- ldr r1, [r5]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 1
- adds r1, r3
- adds r1, r0
- strh r2, [r1]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080E0780
- movs r7, 0
- str r4, [sp, 0x8]
- ldr r1, =gShopDataPtr
- mov r9, r1
- mov r2, sp
- str r2, [sp, 0x4]
-_080E07A4:
- movs r3, 0
- adds r4, r7, 0x1
- str r4, [sp, 0xC]
-_080E07AA:
- ldr r1, =0x0000fffc
- adds r0, r3, r1
- ldr r2, [sp, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- ldr r4, =0x0000fffe
- adds r1, r7, r4
- ldr r2, [sp, 0x8]
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- str r3, [sp, 0x10]
- bl GetEventObjectIdByXY
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x10]
- cmp r6, 0x10
- beq _080E08C2
- mov r4, r9
- ldr r1, [r4]
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r5, r0, 1
- ldr r2, =0x00002010
- adds r0, r1, r2
- adds r0, r5
- movs r2, 0
- mov r10, r2
- strh r6, [r0]
- ldr r2, =0x00002012
- adds r0, r1, r2
- adds r0, r5
- strh r3, [r0]
- ldr r0, =0x00002014
- adds r1, r0
- adds r1, r5
- strh r7, [r1]
- ldr r1, [sp, 0x4]
- movs r2, 0
- ldrsh r0, [r1, r2]
- subs r1, r3, 0x4
- adds r0, r1
- ldr r1, [sp, 0x8]
- movs r2, 0
- ldrsh r1, [r1, r2]
- mov r12, r1
- subs r1, r7, 0x2
- add r1, r12
- str r3, [sp, 0x10]
- bl MapGridGetMetatileLayerTypeAt
- mov r1, r9
- ldr r2, [r1]
- ldr r1, =0x00002018
- adds r1, r2
- mov r12, r1
- add r12, r5
- lsls r0, 24
- lsrs r0, 24
- mov r1, r12
- strh r0, [r1]
- ldr r1, =gEventObjects
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- ldr r3, [sp, 0x10]
- cmp r0, 0x2
- beq _080E0884
- cmp r0, 0x2
- bgt _080E0870
- cmp r0, 0x1
- beq _080E0876
- b _080E08A4
- .pool
-_080E0870:
- cmp r0, 0x3
- beq _080E0894
- b _080E08A4
-_080E0876:
- ldr r4, =0x00002016
- adds r0, r2, r4
- adds r0, r5
- mov r1, r10
- b _080E08B6
- .pool
-_080E0884:
- ldr r4, =0x00002016
- adds r0, r2, r4
- adds r0, r5
- movs r1, 0x1
- b _080E08B6
- .pool
-_080E0894:
- ldr r1, =0x00002016
- adds r0, r2, r1
- adds r0, r5
- movs r1, 0x2
- b _080E08B6
- .pool
-_080E08A4:
- mov r2, r9
- ldr r0, [r2]
- mov r2, r8
- adds r1, r4, r2
- lsls r1, 1
- ldr r4, =0x00002016
- adds r0, r4
- adds r0, r1
- movs r1, 0x3
-_080E08B6:
- strh r1, [r0]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080E08C2:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bhi _080E08CE
- b _080E07AA
-_080E08CE:
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bhi _080E08DA
- b _080E07A4
-_080E08DA:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuCollectEventObjectData
-
- thumb_func_start BuyMenuDrawEventObjects
-@ void BuyMenuDrawEventObjects()
-BuyMenuDrawEventObjects: @ 80E08F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- ldr r0, =gShopDataPtr
- mov r8, r0
- ldr r1, =gEventObjects
- mov r10, r1
- ldr r2, =gSprites
- mov r9, r2
-_080E090A:
- mov r3, r8
- ldr r0, [r3]
- lsls r1, r7, 2
- adds r1, r7
- lsls r5, r1, 1
- ldr r4, =0x00002010
- adds r0, r4
- adds r1, r0, r5
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x10
- beq _080E09D8
- adds r1, r0, 0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r4, r8
- ldr r3, [r4]
- ldr r2, =0x00002010
- adds r1, r3, r2
- adds r1, r5
- movs r4, 0
- ldrsh r2, [r1, r4]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- add r1, r10
- ldrb r4, [r1, 0x5]
- ldr r2, =0x00002012
- adds r1, r3, r2
- adds r1, r5
- ldrh r2, [r1]
- lsls r2, 4
- adds r2, 0x8
- lsls r2, 16
- asrs r2, 16
- ldr r1, =0x00002014
- adds r3, r1
- adds r3, r5
- ldrh r3, [r3]
- lsls r3, 4
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0x30
- subs r3, r0
- lsls r3, 16
- asrs r3, 16
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- ldr r1, =SpriteCallbackDummy
- bl AddPseudoEventObject
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r2, =0x00002010
- adds r1, r5, r2
- mov r3, r8
- ldr r0, [r3]
- adds r0, r1
- bl BuyMenuCheckIfEventObjectOverlapsMenuBg
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E09C0
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- add r2, r9
- adds r2, 0x42
- ldrb r0, [r2]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
-_080E09C0:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r9
- mov r2, r8
- ldr r1, [r2]
- ldr r3, =0x00002016
- adds r1, r3
- adds r1, r5
- ldrb r1, [r1]
- bl StartSpriteAnim
-_080E09D8:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080E090A
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDrawEventObjects
-
- thumb_func_start BuyMenuCheckIfEventObjectOverlapsMenuBg
-BuyMenuCheckIfEventObjectOverlapsMenuBg: @ 80E0A14
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- adds r1, 0x2
- bl BuyMenuCheckForOverlapWithMenuBg
- lsls r0, 24
- cmp r0, 0
- bne _080E0A38
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080E0A38
- movs r0, 0x1
- b _080E0A3A
-_080E0A38:
- movs r0, 0
-_080E0A3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end BuyMenuCheckIfEventObjectOverlapsMenuBg
-
- thumb_func_start BuyMenuCopyMenuBgToBg1TilemapBuffer
-@ void BuyMenuCopyMenuBgToBg1TilemapBuffer()
-BuyMenuCopyMenuBgToBg1TilemapBuffer: @ 80E0A40
- push {r4-r6,lr}
- ldr r0, =gShopDataPtr
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 4
- adds r4, r0, r1
- adds r3, r0, 0
- movs r1, 0
- ldr r0, =0x0000c3e3
- adds r6, r0, 0
- ldr r5, =0x000003ff
-_080E0A56:
- lsls r0, r1, 16
- asrs r2, r0, 16
- lsls r1, r2, 1
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080E0A6A
- adds r1, r4
- adds r0, r6
- strh r0, [r1]
-_080E0A6A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, r5
- ble _080E0A56
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuCopyMenuBgToBg1TilemapBuffer
-
- thumb_func_start BuyMenuCheckForOverlapWithMenuBg
-@ bool8 BuyMenuCheckForOverlapWithMenuBg(u16 x, u16 y)
-BuyMenuCheckForOverlapWithMenuBg: @ 80E0A88
- push {lr}
- ldr r2, =gShopDataPtr
- ldr r2, [r2]
- lsls r0, 1
- lsls r1, 6
- adds r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080E0AC0
- adds r0, r1, 0
- adds r0, 0x40
- ldrh r0, [r0]
- cmp r0, 0
- bne _080E0AC0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080E0AC0
- adds r0, r1, 0
- adds r0, 0x42
- ldrh r0, [r0]
- cmp r0, 0
- bne _080E0AC0
- movs r0, 0x1
- b _080E0AC2
- .pool
-_080E0AC0:
- movs r0, 0
-_080E0AC2:
- pop {r1}
- bx r1
- thumb_func_end BuyMenuCheckForOverlapWithMenuBg
-
- thumb_func_start Task_BuyMenu
-@ void Task_BuyMenu(u8 taskId)
-Task_BuyMenu: @ 80E0AC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E0AEA
- b _080E0C8E
-_080E0AEA:
- ldrb r0, [r4, 0xE]
- bl ListMenuHandleInputGetItemId
- adds r5, r0, 0
- ldrb r0, [r4, 0xE]
- ldr r7, =gShopDataPtr
- ldr r2, [r7]
- ldr r3, =0x00002008
- adds r1, r2, r3
- subs r3, 0x2
- adds r2, r3
- bl ListMenuGetScrollAndRow
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _080E0B24
- adds r0, 0x1
- cmp r5, r0
- bne _080E0B32
- b _080E0C8E
- .pool
-_080E0B24:
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- bl ExitBuyMenu
- b _080E0C8E
-_080E0B32:
- movs r0, 0x5
- bl PlaySE
- strh r5, [r4, 0xA]
- movs r0, 0x2
- bl ClearWindowTilemap
- bl BuyMenuRemoveScrollIndicatorArrows
- ldrb r0, [r4, 0xE]
- movs r1, 0x2
- bl BuyMenuPrintCursor
- ldr r0, =gMartInfo
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E0B80
- lsls r0, r5, 16
- lsrs r0, 16
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- ldr r1, [r7]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- str r4, [r1]
- b _080E0B92
- .pool
-_080E0B80:
- ldr r1, [r7]
- movs r3, 0x80
- lsls r3, 6
- adds r1, r3
- ldr r2, =gDecorations
- lsls r0, r5, 5
- adds r0, r2
- ldrh r0, [r0, 0x14]
- str r0, [r1]
-_080E0B92:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r2, =gShopDataPtr
- mov r8, r2
- ldr r1, [r2]
- movs r7, 0x80
- lsls r7, 6
- adds r1, r7
- ldr r1, [r1]
- bl IsEnoughMoney
- lsls r0, 24
- cmp r0, 0
- bne _080E0BD0
- ldr r1, =gText_YouDontHaveMoney
- ldr r2, =BuyMenuReturnToItemList
- b _080E0C28
- .pool
-_080E0BD0:
- ldr r4, =gMartInfo
- ldrb r0, [r4, 0xF]
- cmp r0, 0
- bne _080E0C38
- lsls r0, r5, 16
- lsrs r5, r0, 16
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl CopyItemName
- adds r0, r5, 0
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080E0C24
- ldr r4, =gStringVar2
- adds r0, r5, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, =gText_Var1CertainlyHowMany2
- b _080E0C26
- .pool
-_080E0C24:
- ldr r1, =gText_Var1CertainlyHowMany
-_080E0C26:
- ldr r2, =Task_BuyHowManyDialogueInit
-_080E0C28:
- adds r0, r6, 0
- bl BuyMenuDisplayMessage
- b _080E0C8E
- .pool
-_080E0C38:
- ldr r0, =gStringVar1
- lsls r1, r5, 5
- ldr r2, =gDecorations + 1
- adds r1, r2
- bl StringCopy
- ldr r0, =gStringVar2
- mov r3, r8
- ldr r1, [r3]
- adds r1, r7
- ldr r1, [r1]
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldrb r0, [r4, 0xF]
- cmp r0, 0x1
- bne _080E0C7C
- ldr r0, =gStringVar4
- ldr r1, =gText_Var1IsItThatllBeVar2
- bl StringExpandPlaceholders
- b _080E0C84
- .pool
-_080E0C7C:
- ldr r0, =gStringVar4
- ldr r1, =gText_YouWantedVar1ThatllBeVar2
- bl StringExpandPlaceholders
-_080E0C84:
- ldr r1, =gStringVar4
- ldr r2, =BuyMenuConfirmPurchase
- adds r0, r6, 0
- bl BuyMenuDisplayMessage
-_080E0C8E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_BuyMenu
-
- thumb_func_start Task_BuyHowManyDialogueInit
-@ void Task_BuyHowManyDialogueInit(u8 taskId)
-Task_BuyHowManyDialogueInit: @ 80E0CA4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, =gTasks + 0x8
- adds r5, r0
- ldrh r0, [r5, 0xA]
- bl CountTotalItemQuantityInBag
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x3
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xD
- bl SetWindowBorderStyle
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_InBagVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x3
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl BuyMenuPrint
- movs r0, 0x1
- strh r0, [r5, 0x2]
- movs r0, 0x4
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xD
- bl SetWindowBorderStyle
- adds r0, r6, 0
- bl BuyMenuPrintItemQuantityAndPrice
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- bl GetMoney
- ldr r1, =gShopDataPtr
- ldr r4, [r1]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r4, r2
- ldr r1, [r1]
- bl __udivsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x63
- bls _080E0D60
- ldr r0, =0x0000200a
- adds r1, r4, r0
- movs r0, 0x63
- strb r0, [r1]
- b _080E0D66
- .pool
-_080E0D60:
- ldr r2, =0x0000200a
- adds r0, r4, r2
- strb r1, [r0]
-_080E0D66:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =Task_BuyHowManyDialogueHandleInput
- str r0, [r1]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_BuyHowManyDialogueInit
-
- thumb_func_start Task_BuyHowManyDialogueHandleInput
-@ void Task_BuyHowManyDialogueHandleInput(u8 taskId)
-Task_BuyHowManyDialogueHandleInput: @ 80E0D88
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r6, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- adds r0, r5, 0x2
- ldr r7, =gShopDataPtr
- ldr r1, [r7]
- ldr r2, =0x0000200a
- adds r1, r2
- ldrb r1, [r1]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0DF0
- ldrh r0, [r5, 0xA]
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- ldr r1, [r7]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r2
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- muls r0, r4
- str r0, [r1]
- adds r0, r6, 0
- bl BuyMenuPrintItemQuantityAndPrice
- b _080E0EA4
- .pool
-_080E0DF0:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0E74
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x4
- movs r1, 0
- bl sub_8198070
- movs r0, 0x3
- movs r1, 0
- bl sub_8198070
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- ldrh r0, [r5, 0xA]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar2
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar3
- ldr r1, [r7]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_Var1AndYouWantedVar2
- ldr r2, =BuyMenuConfirmPurchase
- adds r0, r6, 0
- bl BuyMenuDisplayMessage
- b _080E0EA4
- .pool
-_080E0E74:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E0EA4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x4
- movs r1, 0
- bl sub_8198070
- movs r0, 0x3
- movs r1, 0
- bl sub_8198070
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0x3
- bl ClearWindowTilemap
- adds r0, r4, 0
- bl BuyMenuReturnToItemList
-_080E0EA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_BuyHowManyDialogueHandleInput
-
- thumb_func_start BuyMenuConfirmPurchase
-@ void BuyMenuConfirmPurchase(u8 taskId)
-BuyMenuConfirmPurchase: @ 80E0EAC
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_08589AA8
- movs r2, 0
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0xD
- str r2, [sp, 0x8]
- ldr r2, =gUnknown_08589A08
- str r2, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0
- bl CreateYesNoMenuWithCallbacks
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuConfirmPurchase
-
- thumb_func_start BuyMenuTryMakePurchase
-@ void BuyMenuTryMakePurchase(u8 taskId)
-BuyMenuTryMakePurchase: @ 80E0EDC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r6, =gMartInfo
- ldrb r0, [r6, 0xF]
- cmp r0, 0
- bne _080E0F40
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x2]
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0F30
- ldr r1, =gText_HereYouGoThankYou
- ldr r2, =BuyMenuSubtractMoney
- adds r0, r5, 0
- bl BuyMenuDisplayMessage
- adds r0, r5, 0
- bl RecordItemPurchase
- b _080E0F7A
- .pool
-_080E0F30:
- ldr r1, =gText_NoMoreRoomForThis
- ldr r2, =BuyMenuReturnToItemList
- b _080E0F60
- .pool
-_080E0F40:
- ldrb r0, [r4, 0xA]
- bl DecorationAdd
- lsls r0, 24
- cmp r0, 0
- beq _080E0F70
- ldrb r0, [r6, 0xF]
- cmp r0, 0x1
- bne _080E0F5C
- ldr r1, =gText_ThankYouIllSendItHome
- b _080E0F5E
- .pool
-_080E0F5C:
- ldr r1, =gText_ThanksIllSendItHome
-_080E0F5E:
- ldr r2, =BuyMenuSubtractMoney
-_080E0F60:
- adds r0, r5, 0
- bl BuyMenuDisplayMessage
- b _080E0F7A
- .pool
-_080E0F70:
- ldr r1, =gText_SpaceForVar1Full
- ldr r2, =BuyMenuReturnToItemList
- adds r0, r7, 0
- bl BuyMenuDisplayMessage
-_080E0F7A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuTryMakePurchase
-
- thumb_func_start BuyMenuSubtractMoney
-@ void BuyMenuSubtractMoney(u8 taskId)
-BuyMenuSubtractMoney: @ 80E0F88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x26
- bl IncrementGameStat
- ldr r5, =gSaveBlock1Ptr
- ldr r0, [r5]
- movs r4, 0x92
- lsls r4, 3
- adds r0, r4
- ldr r1, =gShopDataPtr
- ldr r1, [r1]
- movs r2, 0x80
- lsls r2, 6
- adds r1, r2
- ldr r1, [r1]
- bl RemoveMoney
- movs r0, 0x5F
- bl PlaySE
- ldr r0, [r5]
- adds r0, r4
- bl GetMoney
- adds r1, r0, 0
- movs r0, 0
- movs r2, 0
- bl PrintMoneyAmountInMoneyBox
- ldr r0, =gMartInfo
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E0FF0
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =Task_ReturnToItemListAfterItemPurchase
- b _080E0FFC
- .pool
-_080E0FF0:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =Task_ReturnToItemListAfterDecorationPurchase
-_080E0FFC:
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuSubtractMoney
-
- thumb_func_start Task_ReturnToItemListAfterItemPurchase
-@ void Task_ReturnToItemListAfterItemPurchase(u8 taskId)
-Task_ReturnToItemListAfterItemPurchase: @ 80E100C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E1072
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bne _080E106C
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x9
- ble _080E106C
- movs r0, 0xC
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E106C
- ldr r1, =gText_ThrowInPremierBall
- ldr r2, =BuyMenuReturnToItemList
- adds r0, r4, 0
- bl BuyMenuDisplayMessage
- b _080E1072
- .pool
-_080E106C:
- adds r0, r4, 0
- bl BuyMenuReturnToItemList
-_080E1072:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Task_ReturnToItemListAfterItemPurchase
-
- thumb_func_start Task_ReturnToItemListAfterDecorationPurchase
-@ void Task_ReturnToItemListAfterDecorationPurchase(u8 taskId)
-Task_ReturnToItemListAfterDecorationPurchase: @ 80E1078
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E1096
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl BuyMenuReturnToItemList
-_080E1096:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ReturnToItemListAfterDecorationPurchase
-
- thumb_func_start BuyMenuReturnToItemList
-@ void BuyMenuReturnToItemList(u8 taskId)
-BuyMenuReturnToItemList: @ 80E10A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r6, r4, r5
- movs r0, 0x5
- movs r1, 0
- bl sub_8197DF8
- ldrb r0, [r6, 0xE]
- movs r1, 0x1
- bl BuyMenuPrintCursor
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl BuyMenuAddScrollIndicatorArrows
- subs r5, 0x8
- adds r4, r5
- ldr r0, =Task_BuyMenu
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuReturnToItemList
-
- thumb_func_start BuyMenuPrintItemQuantityAndPrice
-@ void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
-BuyMenuPrintItemQuantityAndPrice: @ 80E10EC
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- movs r0, 0x4
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gShopDataPtr
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1
- ldr r3, [r0]
- movs r0, 0xFF
- str r0, [sp]
- movs r0, 0x4
- movs r1, 0x26
- movs r2, 0x1
- bl PrintMoneyAmount
- ldr r0, =gStringVar1
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_xVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x4
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl BuyMenuPrint
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintItemQuantityAndPrice
-
- thumb_func_start ExitBuyMenu
-@ void ExitBuyMenu(u8 taskId)
-ExitBuyMenu: @ 80E1168
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gFieldCallback
- ldr r0, =MapPostLoadHook_ExitBuyOrSellMenu
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =Task_ExitBuyMenu
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ExitBuyMenu
-
- thumb_func_start Task_ExitBuyMenu
-@ void Task_ExitBuyMenu(u8 taskId)
-Task_ExitBuyMenu: @ 80E11B0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E11D6
- bl RemoveMoneyLabelObject
- bl BuyMenuFreeMemory
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080E11D6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ExitBuyMenu
-
- thumb_func_start ClearItemPurchases
-@ void ClearItemPurchases()
-ClearItemPurchases: @ 80E11E4
- push {lr}
- ldr r0, =gUnknown_02039F7C
- movs r1, 0
- strb r1, [r0]
- ldr r0, =gUnknown_02039F80
- movs r1, 0
- movs r2, 0xC
- bl memset
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearItemPurchases
-
- thumb_func_start RecordItemPurchase
-@ void RecordItemPurchase(u8 taskId)
-RecordItemPurchase: @ 80E1204
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldr r5, =gUnknown_02039F80
- adds r6, r5, 0
-_080E121A:
- lsls r0, r3, 2
- adds r2, r0, r6
- ldrh r1, [r2]
- movs r7, 0xA
- ldrsh r0, [r4, r7]
- cmp r1, r0
- bne _080E1250
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- beq _080E1250
- adds r1, r0, 0
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- adds r0, r1, r0
- cmp r0, 0xFF
- ble _080E1248
- movs r0, 0xFF
- strh r0, [r2, 0x2]
- b _080E127A
- .pool
-_080E1248:
- ldrh r0, [r4, 0x2]
- adds r0, r1, r0
- strh r0, [r2, 0x2]
- b _080E127A
-_080E1250:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E121A
- ldr r2, =gUnknown_02039F7C
- ldrb r0, [r2]
- cmp r0, 0x2
- bhi _080E127A
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0x2]
- strh r1, [r0, 0x2]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_080E127A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RecordItemPurchase
-
- thumb_func_start CreatePokemartMenu
-@ void CreatePokemartMenu(u16 *itemsForSale)
-CreatePokemartMenu: @ 80E1284
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- bl ClearItemPurchases
- ldr r0, =EnableBothScriptContexts
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreatePokemartMenu
-
- thumb_func_start CreateDecorationShop1Menu
-@ void CreateDecorationShop1Menu(u16 *itemsForSale)
-CreateDecorationShop1Menu: @ 80E12A8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- ldr r0, =EnableBothScriptContexts
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateDecorationShop1Menu
-
- thumb_func_start CreateDecorationShop2Menu
-@ void CreateDecorationShop2Menu(u16 *itemsForSale)
-CreateDecorationShop2Menu: @ 80E12C8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl CreateShopMenu
- adds r0, r4, 0
- bl SetShopItemsForSale
- ldr r0, =EnableBothScriptContexts
- bl SetShopMenuCallback
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateDecorationShop2Menu
-
- thumb_func_start sub_80E12E8
-sub_80E12E8: @ 80E12E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r9, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x10]
- subs r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r4, [r1, 0xA]
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080E13AC
- movs r2, 0
- lsls r5, 16
- str r5, [sp, 0xC]
- lsls r0, r3, 16
- lsls r1, r4, 16
- asrs r0, 16
- str r0, [sp]
- asrs r1, 16
- str r1, [sp, 0x4]
- lsls r0, r1, 1
- mov r1, r9
- adds r7, r0, r1
-_080E133C:
- movs r4, 0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- ldr r2, [sp]
- adds r6, r2, r0
-_080E1348:
- ldr r0, [sp, 0xC]
- asrs r1, r0, 16
- lsls r4, 16
- asrs r0, r4, 16
- adds r5, r1, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridGetMetatileIdAt
- movs r2, 0
- ldrsh r1, [r7, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _080E1390
- ldr r0, [sp, 0x4]
- cmp r0, 0x2
- beq _080E1380
- ldrh r0, [r7, 0x2]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- b _080E1390
- .pool
-_080E1380:
- mov r1, r9
- ldrh r0, [r1]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
-_080E1390:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r4, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E1348
- adds r0, r2, 0
- add r0, r8
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E133C
- b _080E1434
-_080E13AC:
- movs r2, 0
- lsls r5, 16
- str r5, [sp, 0xC]
- lsls r0, r3, 16
- lsls r1, r4, 16
- asrs r0, 16
- str r0, [sp, 0x8]
- asrs r7, r1, 16
-_080E13BC:
- movs r4, 0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- ldr r1, [sp, 0x8]
- adds r6, r1, r0
-_080E13C8:
- ldr r2, [sp, 0xC]
- asrs r1, r2, 16
- lsls r4, 16
- asrs r0, r4, 16
- adds r5, r1, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x2
- subs r1, r7
- lsls r1, 1
- add r1, r9
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _080E141A
- cmp r7, 0x2
- beq _080E140A
- movs r0, 0x1
- subs r0, r7
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- b _080E141A
-_080E140A:
- mov r1, r9
- ldrh r0, [r1, 0x4]
- mov r2, r10
- orrs r2, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
-_080E141A:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r4, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E13C8
- adds r0, r2, 0
- add r0, r8
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E13BC
-_080E1434:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E12E8
-
- thumb_func_start sub_80E1444
-sub_80E1444: @ 80E1444
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bhi _080E14DE
- lsls r0, 2
- ldr r1, =_080E1474
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E1474:
- .4byte _080E1490
- .4byte _080E1498
- .4byte _080E14A0
- .4byte _080E14A8
- .4byte _080E14B0
- .4byte _080E14C4
- .4byte _080E14D4
-_080E1490:
- ldr r1, =gUnknown_08589ABA
- b _080E14C6
- .pool
-_080E1498:
- ldr r1, =gUnknown_08589AC0
- b _080E14C6
- .pool
-_080E14A0:
- ldr r1, =gUnknown_08589AC6
- b _080E14B2
- .pool
-_080E14A8:
- ldr r1, =gUnknown_08589ACC
- b _080E14C6
- .pool
-_080E14B0:
- ldr r1, =gUnknown_08589AD2
-_080E14B2:
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r3, 0
- bl sub_80E12E8
- b _080E14DE
- .pool
-_080E14C4:
- ldr r1, =gUnknown_08589AD8
-_080E14C6:
- adds r0, r3, 0
- movs r2, 0
- bl sub_80E12E8
- b _080E14DE
- .pool
-_080E14D4:
- ldr r1, =gUnknown_08589ADE
- adds r0, r3, 0
- movs r2, 0
- bl sub_80E12E8
-_080E14DE:
- ldrh r0, [r4]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r4]
- adds r5, r0, 0
- cmp r5, 0
- bne _080E1502
- bl DrawWholeMapView
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- strh r0, [r4, 0x2]
- strh r5, [r4, 0x6]
-_080E1502:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E1444
-
- thumb_func_start sub_80E150C
-sub_80E150C: @ 80E150C
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r6, =sub_80E1444
- adds r0, r6, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- adds r0, r7, 0
- adds r0, 0x8
- adds r1, r7, 0
- adds r1, 0xA
- bl PlayerGetDestCoords
- movs r0, 0
- strh r0, [r7]
- strh r0, [r7, 0x2]
- strh r5, [r7, 0x4]
- adds r0, r4, 0
- bl _call_via_r6
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80E150C
-
- thumb_func_start sub_80E1558
-sub_80E1558: @ 80E1558
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80E150C
- ldr r1, =gUnknown_02039F8C
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E1558
-
- thumb_func_start sub_80E1570
-sub_80E1570: @ 80E1570
- push {lr}
- ldr r0, =gUnknown_02039F8C
- ldrb r0, [r0]
- bl DestroyTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E1570
-
- thumb_func_start sub_80E1584
-sub_80E1584: @ 80E1584
- push {lr}
- ldr r2, =gTasks
- ldr r0, =gUnknown_02039F8C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080E15B0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- bne _080E15B0
- movs r0, 0
- b _080E15B2
- .pool
-_080E15B0:
- movs r0, 0x1
-_080E15B2:
- pop {r1}
- bx r1
- thumb_func_end sub_80E1584
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index f81d8c6b2..341aa0869 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -3349,7 +3349,7 @@ sub_8078EF8: @ 8078EF8
sub_8078F50: @ 8078F50
push {lr}
sub sp, 0x4
- bl Menu_ProcessInputNoWrapAround
+ bl Menu_ProcessInputNoWrap
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@@ -3695,7 +3695,7 @@ _0807920E:
thumb_func_start sub_8079218
sub_8079218: @ 8079218
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3797,7 +3797,7 @@ _080792D8:
thumb_func_start sub_80792E4
sub_80792E4: @ 80792E4
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
index e04dedd9e..d294a2fae 100644
--- a/asm/use_pokeblock.s
+++ b/asm/use_pokeblock.s
@@ -900,7 +900,7 @@ sub_8166D44: @ 8166D44
thumb_func_start sub_8166DE4
sub_8166DE4: @ 8166DE4
push {r4,lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
lsrs r4, r0, 24
asrs r1, r0, 24
diff --git a/asm/water.s b/asm/water.s
new file mode 100644
index 000000000..6965d6371
--- /dev/null
+++ b/asm/water.s
@@ -0,0 +1,3607 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start AnimTask_CreateRaindrops
+AnimTask_CreateRaindrops: @ 8107188
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _081071B0
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0xE]
+_081071B0:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl __modsi3
+ cmp r0, 0x1
+ bne _081071F8
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x50
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08595020
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl CreateSprite
+_081071F8:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _0810720A
+ adds r0, r6, 0
+ bl DestroyAnimVisualTask
+_0810720A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_CreateRaindrops
+
+ thumb_func_start sub_810721C
+sub_810721C: @ 810721C
+ ldr r1, =sub_8107228
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_810721C
+
+ thumb_func_start sub_8107228
+sub_8107228: @ 8107228
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _08107246
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x4
+ strh r0, [r2, 0x26]
+_08107246:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0810725A
+ adds r0, r2, 0
+ bl DestroySprite
+_0810725A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107228
+
+ thumb_func_start sub_8107260
+sub_8107260: @ 8107260
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08107290
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =gBattleAnimArgs
+ ldrh r1, [r4]
+ subs r0, r1
+ b _081072A2
+ .pool
+_08107290:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ ldr r4, =gBattleAnimArgs
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+_081072A2:
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ adds r2, r6, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _081072D8
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_081072D8:
+ ldr r5, =gBattleAnimArgs
+ ldrh r0, [r5, 0xC]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =SpriteCallbackDummy
+ bl CreateInvisibleSpriteWithCallback
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ strh r4, [r6, 0x38]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r6, 0x20]
+ subs r1, r0
+ strh r1, [r6, 0x20]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ ldrh r1, [r6, 0x22]
+ subs r1, r0
+ strh r1, [r6, 0x22]
+ ldr r0, =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r1, 0x32]
+ ldrb r0, [r5, 0x8]
+ lsls r0, 8
+ strh r0, [r1, 0x34]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x36]
+ ldr r1, =sub_8107380
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107260
+
+ thumb_func_start sub_8107380
+sub_8107380: @ 8107380
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r7, r0, r2
+ ldrh r4, [r7, 0x36]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r7, 0x34]
+ mov r8, r0
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl TranslateAnimLinear
+ mov r1, r8
+ lsrs r6, r1, 8
+ movs r0, 0x2E
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Sin
+ ldrh r1, [r5, 0x24]
+ adds r0, r1
+ strh r0, [r5, 0x24]
+ movs r0, 0x30
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Cos
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r0, [r7, 0x32]
+ mov r1, r8
+ adds r1, r0
+ strh r1, [r7, 0x34]
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r4, 0
+ beq _081073EC
+ strh r4, [r7, 0x36]
+ b _081073F6
+ .pool
+_081073EC:
+ ldr r0, =sub_8107408
+ str r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl DestroySprite
+_081073F6:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107380
+
+ thumb_func_start sub_8107408
+sub_8107408: @ 8107408
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r2, [r3]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldr r1, =sub_80A67D8
+ str r1, [r0, 0x1C]
+ ldr r1, =sub_8107430
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107408
+
+ thumb_func_start sub_8107430
+sub_8107430: @ 8107430
+ push {lr}
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ ldr r1, =WaitAnimForDuration
+ str r1, [r0, 0x1C]
+ ldr r1, =move_anim_8074EE0
+ bl StoreSpriteCallbackInData6
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107430
+
+ thumb_func_start sub_810744C
+sub_810744C: @ 810744C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810747C
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r1, 0
+ b _08107482
+ .pool
+_0810747C:
+ ldr r0, =gBattleAnimArgs
+ ldrh r6, [r0, 0x4]
+ adds r7, r0, 0
+_08107482:
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7, 0x6]
+ adds r0, r7
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ ldr r0, =sub_81074E4
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810744C
+
+ thumb_func_start sub_81074E4
+sub_81074E4: @ 81074E4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _08107506
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+_08107506:
+ adds r0, r4, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _08107518
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08107518:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81074E4
+
+ thumb_func_start sub_8107528
+sub_8107528: @ 8107528
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0]
+ strh r0, [r4, 0x8]
+ ldr r0, =0x0000279c
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, =sub_810756C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107528
+
+ thumb_func_start sub_810756C
+sub_810756C: @ 810756C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0x3
+ bne _081075BE
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, =gPlttBufferFaded
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ adds r7, r1, 0
+ adds r3, r0, 0x2
+ movs r1, 0x6
+ adds r2, r0, 0
+_081075A8:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081075A8
+ adds r0, r5, 0x7
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+_081075BE:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x1E]
+ adds r1, 0x1
+ strh r1, [r0, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _081075DE
+ adds r0, r4, 0
+ bl DestroyAnimVisualTask
+_081075DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810756C
+
+ thumb_func_start sub_81075EC
+sub_81075EC: @ 81075EC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl InitAnimLinearTranslation
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r0, 0xD2
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldr r0, =gBattleAnimArgs
+ ldrh r2, [r0, 0x6]
+ strh r2, [r5, 0x3C]
+ ldrh r1, [r0, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7F
+ ble _0810765C
+ adds r0, r1, 0
+ subs r0, 0x7F
+ lsls r0, 8
+ strh r0, [r5, 0x3A]
+ negs r0, r2
+ strh r0, [r5, 0x3C]
+ b _08107660
+ .pool
+_0810765C:
+ lsls r0, r1, 8
+ strh r0, [r5, 0x3A]
+_08107660:
+ ldr r1, =sub_8107674
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81075EC
+
+ thumb_func_start sub_8107674
+sub_8107674: @ 8107674
+ push {r4,lr}
+ adds r4, r0, 0
+ bl TranslateAnimLinear
+ lsls r0, 24
+ cmp r0, 0
+ beq _08107688
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08107688:
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ asrs r0, 8
+ cmp r0, 0x7F
+ ble _081076B8
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ b _081076C0
+_081076B8:
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x3A]
+ adds r0, r1
+ strh r0, [r4, 0x3A]
+_081076C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107674
+
+ thumb_func_start sub_81076C8
+sub_81076C8: @ 81076C8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, =gBattleAnimArgs
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r3, 0xE]
+ ldr r0, =sub_81076F4
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81076C8
+
+ thumb_func_start sub_81076F4
+sub_81076F4: @ 81076F4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gBattleAnimArgs
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0xE]
+ ldr r1, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _08107722
+ adds r0, r3, 0
+ bl DestroyAnimVisualTask
+_08107722:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81076F4
+
+ thumb_func_start sub_8107730
+sub_8107730: @ 8107730
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r7, =gBattleAnimAttacker
+ ldrb r0, [r7]
+ movs r1, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r6, =0x0000fff6
+ strh r6, [r4, 0x26]
+ ldrb r0, [r7]
+ bl sub_80A82E4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810778A
+ ldrb r0, [r7]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08107784
+ movs r0, 0xA
+ strh r0, [r4, 0x24]
+ b _0810778C
+ .pool
+_08107784:
+ strh r6, [r4, 0x24]
+ subs r0, r5, 0x2
+ b _0810778E
+_0810778A:
+ strh r6, [r4, 0x24]
+_0810778C:
+ adds r0, r5, 0x2
+_0810778E:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r0, =sub_81077A4
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107730
+
+ thumb_func_start sub_81077A4
+sub_81077A4: @ 81077A4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081077BA
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_081077BA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81077A4
+
+ thumb_func_start sub_81077C0
+sub_81077C0: @ 81077C0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r5, =gBattleAnimAttacker
+ ldrb r0, [r5]
+ bl GetBattlerSide
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimTarget
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _0810780A
+ ldr r4, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ cmp r0, 0
+ beq _08107802
+ ldrb r0, [r5]
+ bl GetBattlerPosition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810780A
+_08107802:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+_0810780A:
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _0810781E
+ movs r1, 0x1
+_0810781E:
+ ldrb r0, [r5, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _08107828
+ movs r7, 0x3
+_08107828:
+ adds r0, r6, 0
+ bl InitAnimSpritePos
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ beq _08107842
+ ldrh r0, [r5, 0x4]
+ negs r0, r0
+ strh r0, [r5, 0x4]
+_08107842:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r4, =gBattleAnimTarget
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r6, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r6, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r6, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81077C0
+
+ thumb_func_start sub_8107894
+sub_8107894: @ 8107894
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ ldr r0, =gBattleAnimArgs
+ ldrh r1, [r0, 0x8]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ ldr r0, =StartAnimLinearTranslation
+ str r0, [r4, 0x1C]
+ ldr r1, =DestroyAnimSprite
+ adds r0, r4, 0
+ bl StoreSpriteCallbackInData6
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107894
+
+ thumb_func_start sub_81078D0
+sub_81078D0: @ 81078D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _081078EC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ b _081078F4
+ .pool
+_081078EC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+_081078F4:
+ ldr r0, =gBattleAnimArgs
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, =sub_810790C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81078D0
+
+ thumb_func_start sub_810790C
+sub_810790C: @ 810790C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0810794C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_0810794C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810790C
+
+ thumb_func_start AnimTask_CreateSurfWave
+AnimTask_CreateSurfWave: @ 8107954
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, =0x00003f42
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r1, 0x80
+ lsls r1, 5
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x1
+ movs r1, 0x4
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ mov r0, sp
+ bl sub_80A6B30
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _081079E0
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0x1
+ bl SetAnimBgAttribute
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081079D0
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08D95E00
+ bl sub_80A6D48
+ b _081079EA
+ .pool
+_081079D0:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gUnknown_08D960D0
+ bl sub_80A6D48
+ b _081079EA
+ .pool
+_081079E0:
+ ldr r1, =gUnknown_08D963A4
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_80A6D60
+_081079EA:
+ mov r0, sp
+ ldrb r0, [r0, 0x9]
+ ldr r1, =gBattleAnimBackgroundImage_Surf
+ mov r2, sp
+ ldrh r2, [r2, 0xA]
+ bl sub_80A6CC0
+ ldr r0, =gBattleAnimArgs
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08107A24
+ ldr r0, =gBattleAnimBackgroundPalette_Surf
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _08107A32
+ .pool
+_08107A24:
+ ldr r0, =gBattleAnimBackgroundImageMuddyWater_Pal
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_08107A32:
+ ldr r0, =sub_8107D58
+ ldr r4, =gTasks
+ mov r2, r10
+ lsls r5, r2, 2
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r6, r1, r4
+ ldrb r1, [r6, 0x7]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ mov r9, r0
+ mov r1, r8
+ strh r1, [r6, 0x26]
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r7, r0, r4
+ mov r0, r9
+ strh r0, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r7, 0xA]
+ strh r0, [r7, 0xC]
+ bl IsContest
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08107AB4
+ ldr r1, =0x0000ffb0
+ adds r0, r1, 0
+ ldr r2, =gBattle_BG1_X
+ strh r0, [r2]
+ adds r1, 0x20
+ adds r0, r1, 0
+ ldr r2, =gBattle_BG1_Y
+ strh r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ mov r0, r9
+ strh r0, [r7, 0xE]
+ b _08107B0E
+ .pool
+_08107AB4:
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _08107AF8
+ ldr r2, =0x0000ff20
+ adds r0, r2, 0
+ ldr r2, =gBattle_BG1_X
+ strh r0, [r2]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldr r2, =gBattle_BG1_Y
+ strh r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ ldr r0, =0x0000ffff
+ strh r0, [r6, 0xA]
+ strh r1, [r7, 0xE]
+ b _08107B0E
+ .pool
+_08107AF8:
+ ldr r0, =gBattle_BG1_X
+ strh r4, [r0]
+ ldr r1, =0x0000ffd0
+ adds r0, r1, 0
+ ldr r2, =gBattle_BG1_Y
+ strh r0, [r2]
+ ldr r0, =0x0000fffe
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r7, 0xE]
+_08107B0E:
+ ldr r0, =gBattle_BG1_X
+ ldrh r1, [r0]
+ movs r0, 0x14
+ bl SetGpuReg
+ ldr r2, =gBattle_BG1_Y
+ ldrh r1, [r2]
+ movs r0, 0x16
+ bl SetGpuReg
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08107B54
+ movs r0, 0x30
+ strh r0, [r1, 0x10]
+ movs r0, 0x70
+ b _08107B58
+ .pool
+_08107B54:
+ movs r0, 0
+ strh r0, [r1, 0x10]
+_08107B58:
+ strh r0, [r1, 0x12]
+ ldr r1, =gTasks
+ mov r2, r10
+ adds r0, r5, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ ldr r1, =sub_8107B84
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AnimTask_CreateSurfWave
+
+ thumb_func_start sub_8107B84
+sub_8107B84: @ 8107B84
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gBattle_BG1_X
+ ldr r2, =gBattle_BG1_Y
+ ldr r0, =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ ldrh r3, [r1]
+ adds r0, r3
+ strh r0, [r1]
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ bl sub_80A6B30
+ ldrh r0, [r4, 0xA]
+ ldrh r3, [r4, 0xC]
+ adds r0, r3
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _08107C18
+ ldr r1, =gPlttBufferFaded
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r2, 0x6
+ adds r7, r1, 0
+ adds r3, r7, 0
+ mov r4, sp
+_08107BDE:
+ ldrb r0, [r4, 0x8]
+ lsls r0, 4
+ adds r1, r2, 0x1
+ adds r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _08107BDE
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_08107C18:
+ ldr r1, =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x14]
+ adds r0, 0x1
+ strh r0, [r3, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r1, 0
+ adds r6, r2, 0
+ cmp r0, 0x1
+ ble _08107C86
+ movs r0, 0
+ strh r0, [r3, 0x14]
+ ldrh r0, [r3, 0xE]
+ adds r2, r0, 0x1
+ strh r2, [r3, 0xE]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _08107C62
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+_08107C62:
+ movs r1, 0xE
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x36
+ ble _08107C86
+ ldrh r2, [r3, 0x10]
+ subs r2, 0x1
+ strh r2, [r3, 0x10]
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+_08107C86:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrh r0, [r0, 0xA]
+ movs r3, 0x1F
+ ands r3, r0
+ cmp r3, 0
+ bne _08107CA8
+ strh r3, [r2, 0x8]
+ ldr r0, =sub_8107CC4
+ str r0, [r2]
+_08107CA8:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107B84
+
+ thumb_func_start sub_8107CC4
+sub_8107CC4: @ 8107CC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r7, =gBattle_BG1_X
+ ldr r0, =gBattle_BG1_Y
+ mov r8, r0
+ ldr r6, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08107D08
+ movs r0, 0x1
+ bl sub_80A6C68
+ movs r0, 0x2
+ bl sub_80A6C68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08107D4A
+ .pool
+_08107D08:
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ bne _08107D1C
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl SetAnimBgAttribute
+_08107D1C:
+ movs r0, 0
+ strh r0, [r7]
+ mov r1, r8
+ strh r0, [r1]
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl DestroyAnimVisualTask
+_08107D4A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107CC4
+
+ thumb_func_start sub_8107D58
+sub_8107D58: @ 8107D58
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08107D74
+ b _08107EAC
+_08107D74:
+ cmp r0, 0x1
+ bgt _08107D84
+ cmp r0, 0
+ beq _08107D8C
+ b _08108022
+ .pool
+_08107D84:
+ cmp r0, 0x2
+ bne _08107D8A
+ b _08107F78
+_08107D8A:
+ b _08108022
+_08107D8C:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, =gScanlineEffectRegBuffers
+ mov r12, r1
+ cmp r3, r0
+ bge _08107DCA
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, =0x0000ffff
+_08107DA4:
+ lsls r2, r3, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r7
+ adds r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _08107DA4
+_08107DCA:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _08107E04
+ ldr r5, =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, =0x0000ffff
+_08107DE2:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _08107DE2
+_08107E04:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _08107E3A
+ ldr r5, =gScanlineEffectRegBuffers
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, =0x0000ffff
+_08107E18:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ ble _08107E18
+_08107E3A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08107E64
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r3, r12
+ adds r2, r0, r3
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xA]
+ b _08107E7A
+ .pool
+_08107E64:
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r1, r12
+ adds r2, r0, r1
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xC]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xC]
+_08107E7A:
+ strh r0, [r2]
+ ldr r0, =0x04000052
+ str r0, [sp]
+ ldr r0, =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl ScanlineEffect_SetParams
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08108022
+ .pool
+_08107EAC:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _08107EC4
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08107ED8
+ strh r1, [r4, 0x10]
+ b _08107ED2
+_08107EC4:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _08107ED8
+_08107ED2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08107ED8:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _08107F0C
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
+_08107EE6:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _08107EE6
+_08107F0C:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _08107F40
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
+_08107F1E:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _08107F1E
+_08107F40:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _08108022
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
+_08107F4E:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _08107F4E
+ b _08108022
+ .pool
+_08107F78:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _08107FAC
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
+_08107F86:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _08107F86
+_08107FAC:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _08107FE0
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
+_08107FBE:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _08107FBE
+_08107FE0:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _0810800C
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
+_08107FEE:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _08107FEE
+_0810800C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08108022
+ bl ScanlineEffect_Stop
+ adds r0, r7, 0
+ bl DestroyTask
+_08108022:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8107D58
+
+ thumb_func_start sub_8108034
+sub_8108034: @ 8108034
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A6980
+ bl Random2
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random2
+ ldr r1, =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _0810807A
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_0810807A:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, =sub_8108098
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108034
+
+ thumb_func_start sub_8108098
+sub_8108098: @ 8108098
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _081080BC
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _081080C0
+_081080BC:
+ lsls r0, r3, 16
+ asrs r0, 24
+_081080C0:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _081080DE
+ adds r0, r2, 0
+ bl DestroyAnimSprite
+_081080DE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108098
+
+ thumb_func_start sub_81080E4
+sub_81080E4: @ 81080E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl GetAnimBattlerSpriteId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x12]
+ bl sub_8108384
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80A7270
+ ldr r0, =sub_8108140
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81080E4
+
+ thumb_func_start sub_8108140
+sub_8108140: @ 8108140
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _0810815C
+ b _0810837A
+_0810815C:
+ lsls r0, 2
+ ldr r1, =_08108170
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08108170:
+ .4byte _08108190
+ .4byte _081081B6
+ .4byte _08108248
+ .4byte _0810827E
+ .4byte _08108292
+ .4byte _081082A0
+ .4byte _08108320
+ .4byte _0810836C
+_08108190:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_80A805C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_081081B6:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08108212
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08108200
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+ b _08108212
+ .pool
+_08108200:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, =0x0000fffd
+ strh r1, [r0, 0x24]
+_08108212:
+ adds r0, r4, 0
+ bl sub_80A80C8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _08108222
+ b _0810837A
+_08108222:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7E6C
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xE]
+ b _0810835C
+ .pool
+_08108248:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _08108258
+ b _0810837A
+_08108258:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xE0
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_80A805C
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _0810835E
+_0810827E:
+ adds r0, r4, 0
+ bl sub_80A80C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0810837A
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _0810835E
+_08108292:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_8108408
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_081082A0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0810837A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081082D8
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x2
+ b _081082EA
+ .pool
+_081082D8:
+ ldr r2, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+_081082EA:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _0810837A
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xE0
+ bl sub_80A805C
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _0810835E
+ .pool
+_08108320:
+ ldr r6, =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_80A80C8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0810837A
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80A7344
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x22]
+_0810835C:
+ strh r5, [r4, 0x10]
+_0810835E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0810837A
+ .pool
+_0810836C:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810837A
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_0810837A:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108140
+
+ thumb_func_start sub_8108384
+sub_8108384: @ 8108384
+ push {r4,r5,lr}
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _081083B8
+ ldr r1, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ b _081083C8
+ .pool
+_081083B4:
+ adds r0, r2, 0
+ b _081083FA
+_081083B8:
+ ldr r1, =gBattlerPartyIndexes
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+_081083C8:
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsrs r4, 18
+ movs r2, 0
+_081083E6:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _081083B4
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _081083E6
+ movs r0, 0x3
+_081083FA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8108384
+
+ thumb_func_start sub_8108408
+sub_8108408: @ 8108408
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_80A82E4
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldrh r1, [r7, 0xA]
+ movs r0, 0x4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bgt _08108458
+ movs r1, 0x1
+_08108458:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r1, 16
+ mov r10, r8
+ mov r9, r6
+ mov r1, r10
+ lsls r1, 4
+ str r1, [sp, 0xC]
+ mov r1, r9
+ lsls r1, 4
+ str r1, [sp, 0x10]
+ asrs r0, 16
+ mov r8, r0
+_08108472:
+ ldr r0, =gUnknown_08595268
+ mov r1, r10
+ mov r2, r9
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r6, r5, 16
+ cmp r2, 0x40
+ beq _081084DA
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r5, 0x32]
+ mov r0, sp
+ ldrh r0, [r0, 0x10]
+ strh r0, [r5, 0x34]
+ asrs r4, r6, 16
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Cos
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Sin
+ strh r0, [r5, 0x38]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r5, 0x3A]
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+ ldrh r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081084D4
+ adds r0, r5, 0
+ bl sub_810851C
+_081084D4:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_081084DA:
+ mov r1, r8
+ lsls r0, r1, 1
+ asrs r1, r6, 16
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ str r1, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _08108472
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108408
+
+ thumb_func_start sub_810851C
+sub_810851C: @ 810851C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810852E
+ cmp r0, 0x1
+ beq _08108564
+ b _081085BE
+_0810852E:
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08108564:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r2, r1, 20
+ strh r2, [r4, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0810859A
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _0810859A
+ cmp r1, 0x78
+ ble _081085BE
+_0810859A:
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_081085BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810851C
+
+ thumb_func_start sub_81085C8
+sub_81085C8: @ 81085C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ bl sub_8108384
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl GetBattlerSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08108600
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _08108606
+ .pool
+_08108600:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_08108606:
+ strh r0, [r4, 0x14]
+ movs r0, 0x62
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x31
+ strh r0, [r4, 0x16]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x5
+ strh r0, [r4, 0x20]
+ ldr r0, =sub_810862C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81085C8
+
+ thumb_func_start sub_810862C
+sub_810862C: @ 810862C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r7, =gTasks
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _08108654
+ cmp r2, 0x1
+ beq _08108704
+ b _08108712
+ .pool
+_08108654:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0810866A
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_810871C
+_0810866A:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081086E4
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081086E4
+ ldr r5, =gBattleAnimArgs
+ movs r1, 0x1
+ mov r8, r1
+ mov r2, r8
+ strh r2, [r5]
+ strh r0, [r5, 0x2]
+ movs r0, 0xC
+ strh r0, [r5, 0x4]
+ ldr r6, =sub_81152DC
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _081086B4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081086B4:
+ movs r0, 0x3
+ strh r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _081086E0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, =gAnimVisualTaskCount
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081086E0:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_081086E4:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _08108712
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08108712
+ .pool
+_08108704:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _08108712
+ adds r0, r1, 0
+ bl DestroyAnimVisualTask
+_08108712:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810862C
+
+ thumb_func_start sub_810871C
+sub_810871C: @ 810871C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, =gSineTable
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x3
+ asrs r0, 4
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gUnknown_08595268
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08108776
+ ldr r3, =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, =sub_81087C0
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x38]
+ strh r6, [r0, 0x3A]
+ movs r1, 0x9
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+_08108776:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x27
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ ldr r0, =0x41c64e6d
+ muls r0, r1
+ ldr r1, =0x00003039
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ ldrh r1, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810871C
+
+ thumb_func_start sub_81087C0
+sub_81087C0: @ 81087C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08108856
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _08108856
+ ldr r2, =gTasks
+ movs r3, 0x3A
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x1C]
+ ldr r0, =gUnknown_08597388
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ cmp r0, 0x40
+ beq _08108850
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r3, 0x30
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3C]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, =sub_810886C
+ str r1, [r0]
+_08108850:
+ adds r0, r5, 0
+ bl DestroySprite
+_08108856:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81087C0
+
+ thumb_func_start sub_810886C
+sub_810886C: @ 810886C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081088D8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ 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]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _081088D8
+ ldr r3, =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_081088D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_810886C
+
+ thumb_func_start sub_81088E4
+sub_81088E4: @ 81088E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r5, r1, r0
+ ldr r4, =gBattleAnimAttacker
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ bl GetBattlerSide
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _08108928
+ movs r1, 0x1
+_08108928:
+ strh r1, [r5, 0x16]
+ bl IsContest
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810893C
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_0810893C:
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0x12]
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ ldrh r0, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r5, 0x14]
+ ldr r0, =0x0000ffe0
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, =sub_8108978
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81088E4
+
+ thumb_func_start sub_8108978
+sub_8108978: @ 8108978
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _08108992
+ b _08108AB2
+_08108992:
+ lsls r0, 2
+ ldr r1, =_081089A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081089A4:
+ .4byte _081089C0
+ .4byte _081089D0
+ .4byte _081089EA
+ .4byte _08108A2C
+ .4byte _08108A4E
+ .4byte _08108A7C
+ .4byte _08108AA2
+_081089C0:
+ adds r0, r4, 0
+ bl sub_8108AC0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08108AB8
+ b _08108AAA
+_081089D0:
+ adds r0, r4, 0
+ bl sub_8108AC0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _08108AB8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08108AAA
+_081089EA:
+ adds r0, r4, 0
+ bl sub_8108AC0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ adds r1, r0
+ movs r2, 0
+ strh r1, [r4, 0x12]
+ adds r1, 0x10
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bls _08108AB8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08108A28
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _08108AB8
+_08108A28:
+ strh r2, [r4, 0xA]
+ b _08108AAA
+_08108A2C:
+ adds r0, r4, 0
+ bl sub_8108AC0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08108AB8
+ b _08108AAA
+_08108A4E:
+ adds r0, r4, 0
+ bl sub_8108AC0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x12]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _08108AB8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08108AAA
+_08108A7C:
+ adds r0, r4, 0
+ bl sub_8108AC0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08108AB8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _08108AB8
+_08108AA2:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08108AB8
+_08108AAA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08108AB8
+_08108AB2:
+ adds r0, r2, 0
+ bl DestroyAnimVisualTask
+_08108AB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108978
+
+ thumb_func_start sub_8108AC0
+sub_8108AC0: @ 8108AC0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08108B1A
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, =gUnknown_08595268
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ movs r3, 0x10
+ ldrsh r2, [r6, r3]
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08108B1A
+ ldr r5, =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r6, 0x12]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r6, 0x1A]
+ strh r1, [r0, 0x38]
+ bl InitAnimArcTranslation
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, =sub_8108B2C
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_08108B1A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108AC0
+
+ thumb_func_start sub_8108B2C
+sub_8108B2C: @ 8108B2C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _08108B86
+ ldrh r0, [r6, 0x24]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrh r0, [r6, 0x26]
+ ldrh r1, [r6, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ movs r0, 0x6
+ strh r0, [r6, 0x2E]
+ bl Random2
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, =0x0000fff0
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random2
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random2
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl InitAnimArcTranslation
+ ldr r0, =sub_8108B94
+ str r0, [r6, 0x1C]
+_08108B86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108B2C
+
+ thumb_func_start sub_8108B94
+sub_8108B94: @ 8108B94
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl TranslateAnimArc
+ lsls r0, 24
+ cmp r0, 0
+ beq _08108BD0
+ movs r4, 0
+ ldr r6, =gTasks
+_08108BA6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, =sub_8108978
+ cmp r1, r0
+ bne _08108BC6
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_08108BC6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08108BA6
+_08108BD0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108B94
+
+ thumb_func_start sub_8108BE0
+sub_8108BE0: @ 8108BE0
+ ldr r2, =gBattleAnimArgs
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0x30]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x34]
+ ldr r1, =sub_8108C08
+ str r1, [r0, 0x1C]
+ bx lr
+ .pool
+ thumb_func_end sub_8108BE0
+
+ thumb_func_start sub_8108C08
+sub_8108C08: @ 8108C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08108C4C
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08108C4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108C08
+
+ thumb_func_start sub_8108C54
+sub_8108C54: @ 8108C54
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08108C8C
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08108C8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108C54
+
+ thumb_func_start sub_8108C94
+sub_8108C94: @ 8108C94
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl InitAnimSpritePos
+ ldr r5, =gBattleAnimTarget
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl GetBattlerSpriteCoord
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, =gBattleAnimArgs
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, =sub_8108CDC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8108C94
+
+ thumb_func_start sub_8108CDC
+sub_8108CDC: @ 8108CDC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ subs r6, r1, r0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ subs r5, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r5
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _08108D34
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_8108D54
+_08108D34:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08108D46
+ adds r0, r4, 0
+ bl DestroyAnimSprite
+_08108D46:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108CDC
+
+ thumb_func_start sub_8108D54
+sub_8108D54: @ 8108D54
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ lsls r1, 15
+ lsrs r1, 16
+ str r1, [sp]
+ ldrh r1, [r0, 0x24]
+ ldrh r3, [r0, 0x20]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, r5, r0
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl Random2
+ negs r4, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0
+ subs r4, 0x5
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r6, 0
+ mov r0, r8
+ lsls r0, 16
+ mov r8, r0
+ mov r1, r10
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ ldr r2, [sp]
+ lsls r2, 16
+ str r2, [sp, 0x10]
+ asrs r1, 16
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ str r0, [sp, 0x14]
+ negs r3, r5
+ str r3, [sp, 0x4]
+ asrs r0, r2, 16
+ adds r1, r0
+ lsls r1, 16
+ mov r10, r1
+_08108DE2:
+ ldr r0, =gUnknown_08595310
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _08108E30
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _08108E32
+ .pool
+_08108E30:
+ strh r7, [r4, 0x32]
+_08108E32:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _08108DE2
+ movs r6, 0
+ ldr r3, [sp, 0xC]
+ asrs r1, r3, 16
+ ldr r0, [sp, 0x14]
+ asrs r5, r0, 16
+ negs r2, r5
+ str r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ asrs r0, r3, 16
+ subs r1, r0
+ lsls r1, 16
+ mov r10, r1
+_08108E58:
+ ldr r0, =gUnknown_08595310
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, =gBattleAnimAttacker
+ ldrb r0, [r0]
+ bl sub_80A82E4
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _08108EA8
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _08108EAA
+ .pool
+_08108EA8:
+ strh r7, [r4, 0x32]
+_08108EAA:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _08108E58
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108D54
+
+ .align 2, 0