summaryrefslogtreecommitdiff
path: root/asm/battle_setup.s
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-11-01 10:08:48 -0700
committerYamaArashi <shadow962@live.com>2016-11-01 10:16:34 -0700
commit6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch)
treedcea69ec49430f004c17ff71b77587cafd78c69a /asm/battle_setup.s
parentfef81187dce23adc635d7f4b7fd82298eab09ec2 (diff)
split asm files
Diffstat (limited to 'asm/battle_setup.s')
-rw-r--r--asm/battle_setup.s3550
1 files changed, 3550 insertions, 0 deletions
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
new file mode 100644
index 000000000..b9a19f664
--- /dev/null
+++ b/asm/battle_setup.s
@@ -0,0 +1,3550 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start task01_battle_start
+task01_battle_start: @ 80B05F0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080B0614
+ cmp r0, 0x1
+ beq _080B062E
+ b _080B0652
+ .pool
+_080B0614:
+ bl c3_80A0DD8_is_running
+ cmp r0, 0
+ bne _080B0652
+ ldrb r0, [r4, 0x2]
+ bl sub_8145EF4
+ bl sub_81BE72C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080B0652
+_080B062E:
+ bl sub_8145F20
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B0652
+ bl overworld_free_bg_tilemaps
+ ldr r0, =sub_8036760
+ bl SetMainCallback2
+ bl prev_quest_postbuffer_cursor_backup_reset
+ bl overworld_poison_timer_set
+ adds r0, r5, 0
+ bl DestroyTask
+_080B0652:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task01_battle_start
+
+ thumb_func_start task_add_01_battle_start
+task_add_01_battle_start: @ 80B065C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, =task01_battle_start
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005e00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ adds r0, r5, 0
+ bl current_map_music_set__default_for_battle
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_add_01_battle_start
+
+ thumb_func_start sub_80B0698
+sub_80B0698: @ 80B0698
+ push {lr}
+ bl GetSafariZoneFlag
+ cmp r0, 0
+ beq _080B06A8
+ bl sub_80B077C
+ b _080B06AC
+_080B06A8:
+ bl sub_80B06BC
+_080B06AC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0698
+
+ thumb_func_start sub_80B06B0
+sub_80B06B0: @ 80B06B0
+ push {lr}
+ bl sub_80B07B4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B06B0
+
+ thumb_func_start sub_80B06BC
+sub_80B06BC: @ 80B06BC
+ push {r4,lr}
+ bl script_env_2_enable
+ bl player_bitmagic
+ bl sub_808BCF4
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0AF8
+ str r0, [r1, 0x8]
+ ldr r4, =0x02022fec
+ movs r0, 0
+ str r0, [r4]
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B06F2
+ ldr r0, =0x0000400e
+ movs r1, 0
+ bl VarSet
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 14
+ orrs r0, r1
+ str r0, [r4]
+_080B06F2:
+ bl sub_80B0EC8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B06BC
+
+ thumb_func_start sub_80B072C
+sub_80B072C: @ 80B072C
+ push {lr}
+ bl script_env_2_enable
+ bl player_bitmagic
+ bl sub_808BCF4
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0AF8
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0x80
+ lsls r0, 3
+ str r0, [r1]
+ bl sub_80B0EC8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B072C
+
+ thumb_func_start sub_80B077C
+sub_80B077C: @ 80B077C
+ push {lr}
+ bl script_env_2_enable
+ bl player_bitmagic
+ bl sub_808BCF4
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80FC190
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0x80
+ str r0, [r1]
+ bl sub_80B0EC8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B077C
+
+ thumb_func_start sub_80B07B4
+sub_80B07B4: @ 80B07B4
+ push {lr}
+ bl script_env_2_enable
+ bl player_bitmagic
+ bl sub_808BCF4
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0AF8
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0x80
+ lsls r0, 13
+ str r0, [r1]
+ bl sub_80B0EC8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B07B4
+
+ thumb_func_start task_add_01_battle_start_with_music_and_stats
+task_add_01_battle_start_with_music_and_stats: @ 80B0804
+ push {lr}
+ bl reads_trainer_data_byte1_byte0x18
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x9
+ bl sav12_xor_increment
+ bl sub_80B1234
+ pop {r0}
+ bx r0
+ thumb_func_end task_add_01_battle_start_with_music_and_stats
+
+ thumb_func_start sub_80B0828
+sub_80B0828: @ 80B0828
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0846
+ movs r0, 0xA
+ bl sub_80B100C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ b _080B0856
+_080B0846:
+ movs r0, 0xB
+ bl sub_80B100C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+_080B0856:
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x9
+ bl sav12_xor_increment
+ bl sub_80B1234
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0828
+
+ thumb_func_start sub_80B086C
+sub_80B086C: @ 80B086C
+ push {lr}
+ ldr r0, =0x02024744
+ movs r1, 0xC4
+ lsls r1, 1
+ movs r2, 0x5
+ bl sub_8067FF8
+ bl script_env_2_enable
+ ldr r1, =0x030022c0
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [r1]
+ movs r0, 0x8
+ movs r1, 0
+ bl task_add_01_battle_start
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B086C
+
+ thumb_func_start sub_80B08A8
+sub_80B08A8: @ 80B08A8
+ push {lr}
+ bl script_env_2_enable
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0B6C
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0
+ str r0, [r1]
+ bl sub_80B0EC8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B08A8
+
+ thumb_func_start sub_80B08EC
+sub_80B08EC: @ 80B08EC
+ push {lr}
+ bl script_env_2_enable
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0B6C
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0x80
+ lsls r0, 6
+ str r0, [r1]
+ bl sub_80B0EC8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B08EC
+
+ thumb_func_start sub_80B0934
+sub_80B0934: @ 80B0934
+ push {r4,lr}
+ bl script_env_2_enable
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0B6C
+ str r0, [r1, 0x8]
+ ldr r4, =0x02022fec
+ movs r0, 0x80
+ lsls r0, 6
+ str r0, [r4]
+ ldr r0, =0x02024744
+ movs r1, 0xB
+ movs r2, 0
+ bl pokemon_getattr
+ adds r1, r0, 0
+ movs r0, 0xCA
+ lsls r0, 1
+ cmp r1, r0
+ beq _080B09B8
+ cmp r1, r0
+ bhi _080B0988
+ cmp r1, 0x97
+ beq _080B09F4
+ cmp r1, 0x97
+ bcc _080B099A
+ cmp r1, 0xFA
+ bhi _080B099A
+ cmp r1, 0xF9
+ bcc _080B099A
+ ldr r1, =0x00000229
+ b _080B09E6
+ .pool
+_080B0988:
+ movs r0, 0xCB
+ lsls r0, 1
+ cmp r1, r0
+ beq _080B09CE
+ cmp r1, r0
+ bcc _080B099A
+ adds r0, 0x4
+ cmp r1, r0
+ beq _080B09E4
+_080B099A:
+ ldr r2, =0x02022fec
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 21
+ orrs r0, r1
+ str r0, [r2]
+ movs r1, 0xF0
+ lsls r1, 1
+ movs r0, 0x17
+ bl task_add_01_battle_start
+ b _080B09FE
+ .pool
+_080B09B8:
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 22
+ orrs r0, r1
+ str r0, [r4]
+ movs r1, 0xF0
+ lsls r1, 1
+ movs r0, 0x16
+ bl task_add_01_battle_start
+ b _080B09FE
+_080B09CE:
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 23
+ orrs r0, r1
+ str r0, [r4]
+ movs r1, 0xEB
+ lsls r1, 1
+ movs r0, 0x18
+ bl task_add_01_battle_start
+ b _080B09FE
+_080B09E4:
+ ldr r1, =0x00000227
+_080B09E6:
+ movs r0, 0
+ bl task_add_01_battle_start
+ b _080B09FE
+ .pool
+_080B09F4:
+ movs r1, 0xEC
+ lsls r1, 1
+ movs r0, 0xA
+ bl task_add_01_battle_start
+_080B09FE:
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0934
+
+ thumb_func_start sub_80B0A18
+sub_80B0A18: @ 80B0A18
+ push {lr}
+ bl script_env_2_enable
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0B6C
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0xC0
+ lsls r0, 6
+ str r0, [r1]
+ ldr r0, =gUnknown_82E9530
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080B0A50
+ movs r1, 0xF0
+ lsls r1, 1
+ movs r0, 0xB
+ bl task_add_01_battle_start
+ b _080B0A5A
+ .pool
+_080B0A50:
+ movs r1, 0xF0
+ lsls r1, 1
+ movs r0, 0x6
+ bl task_add_01_battle_start
+_080B0A5A:
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B0A18
+
+ thumb_func_start sub_80B0A74
+sub_80B0A74: @ 80B0A74
+ push {lr}
+ bl script_env_2_enable
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B0B6C
+ str r0, [r1, 0x8]
+ ldr r1, =0x02022fec
+ movs r0, 0xC0
+ lsls r0, 7
+ str r0, [r1]
+ ldr r0, =0x02024744
+ movs r1, 0xB
+ bl pokemon_getattr
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ movs r0, 0xC9
+ lsls r0, 1
+ cmp r1, r0
+ beq _080B0ACC
+ cmp r1, r0
+ bgt _080B0ABC
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080B0AC8
+ b _080B0AD4
+ .pool
+_080B0ABC:
+ ldr r0, =0x00000193
+ cmp r2, r0
+ beq _080B0AD0
+ b _080B0AD4
+ .pool
+_080B0AC8:
+ movs r0, 0x15
+ b _080B0AD6
+_080B0ACC:
+ movs r0, 0x13
+ b _080B0AD6
+_080B0AD0:
+ movs r0, 0x14
+ b _080B0AD6
+_080B0AD4:
+ movs r0, 0xA
+_080B0AD6:
+ ldr r1, =0x000001df
+ bl task_add_01_battle_start
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B0A74
+
+ thumb_func_start sub_80B0AF8
+sub_80B0AF8: @ 80B0AF8
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r2, =0x01000100
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0
+ movs r1, 0x80
+ bl ResetSpriteRange
+ ldr r0, =0x0202433a
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _080B0B4C
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0B4C
+ bl InBattlePike
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0B4C
+ ldr r0, =c2_whiteout
+ bl SetMainCallback2
+ b _080B0B58
+ .pool
+_080B0B4C:
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ ldr r1, =0x03005dac
+ ldr r0, =sub_80AF6F0
+ str r0, [r1]
+_080B0B58:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B0AF8
+
+ thumb_func_start sub_80B0B6C
+sub_80B0B6C: @ 80B0B6C
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r2, =0x01000100
+ mov r0, sp
+ bl CpuSet
+ movs r0, 0
+ movs r1, 0x80
+ bl ResetSpriteRange
+ ldr r0, =0x0202433a
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _080B0BC0
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0BB4
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ b _080B0BC6
+ .pool
+_080B0BB4:
+ ldr r0, =c2_whiteout
+ bl SetMainCallback2
+ b _080B0BC6
+ .pool
+_080B0BC0:
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_080B0BC6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B0B6C
+
+ thumb_func_start sub_80B0BD0
+sub_80B0BD0: @ 80B0BD0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsTallGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0C06
+ movs r0, 0
+ b _080B0D1A
+_080B0C06:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsLongGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0C16
+ movs r0, 0x1
+ b _080B0D1A
+_080B0C16:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSandOrDeepSand
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0D18
+ ldr r0, =0x02037318
+ ldrb r0, [r0, 0x17]
+ subs r0, 0x1
+ cmp r0, 0x8
+ bhi _080B0C9C
+ lsls r0, 2
+ ldr r1, =_080B0C40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080B0C40:
+ .4byte _080B0C9C
+ .4byte _080B0C9C
+ .4byte _080B0C9C
+ .4byte _080B0C64
+ .4byte _080B0C88
+ .4byte _080B0C8C
+ .4byte _080B0C9C
+ .4byte _080B0C74
+ .4byte _080B0C74
+_080B0C64:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8089588
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0C78
+_080B0C74:
+ movs r0, 0x8
+ b _080B0D1A
+_080B0C78:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0CE0
+ movs r0, 0x7
+ b _080B0D1A
+_080B0C88:
+ movs r0, 0x3
+ b _080B0D1A
+_080B0C8C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0CF2
+ b _080B0D10
+_080B0C9C:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_808962C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0CF2
+ adds r0, r4, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0CE0
+ adds r0, r4, 0
+ bl sub_808959C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0CC8
+ movs r0, 0x6
+ b _080B0D1A
+_080B0CC8:
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0CF6
+ adds r0, r4, 0
+ bl sub_80894D4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0CE4
+_080B0CE0:
+ movs r0, 0x5
+ b _080B0D1A
+_080B0CE4:
+ adds r0, r4, 0
+ bl sub_80894AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B0CF6
+_080B0CF2:
+ movs r0, 0x4
+ b _080B0D1A
+_080B0CF6:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xE0
+ lsls r0, 5
+ cmp r1, r0
+ beq _080B0D18
+ bl sav1_get_weather_probably
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ beq _080B0D18
+_080B0D10:
+ movs r0, 0x9
+ b _080B0D1A
+ .pool
+_080B0D18:
+ movs r0, 0x2
+_080B0D1A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B0BD0
+
+ thumb_func_start sub_80B0D24
+sub_80B0D24: @ 80B0D24
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sav1_get_flash_used_on_map
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0D54
+ movs r0, 0x2
+ b _080B0D7E
+_080B0D54:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0D7C
+ ldr r0, =0x02037318
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x4
+ beq _080B0D78
+ cmp r0, 0x5
+ beq _080B0D7C
+ movs r0, 0
+ b _080B0D7E
+ .pool
+_080B0D78:
+ movs r0, 0x1
+ b _080B0D7E
+_080B0D7C:
+ movs r0, 0x3
+_080B0D7E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B0D24
+
+ thumb_func_start sub_80B0D88
+sub_80B0D88: @ 80B0D88
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ movs r6, 0
+_080B0D92:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, =0x020244ec
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl pokemon_getattr
+ adds r1, r0, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ beq _080B0DD6
+ cmp r1, 0
+ beq _080B0DD6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl pokemon_getattr
+ cmp r0, 0
+ beq _080B0DD6
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl pokemon_getattr
+ adds r0, r7, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080B0DDC
+_080B0DD6:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _080B0D92
+_080B0DDC:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B0D88
+
+ thumb_func_start reads_trainer_data_byte0
+reads_trainer_data_byte0: @ 80B0DE8
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r5, =gTrainers
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r5
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r4
+ bcs _080B0E08
+ adds r4, r0, 0
+_080B0E08:
+ movs r3, 0
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ beq _080B0E50
+ cmp r0, 0x1
+ bgt _080B0E20
+ cmp r0, 0
+ beq _080B0E2A
+ b _080B0EC0
+ .pool
+_080B0E20:
+ cmp r0, 0x2
+ beq _080B0E76
+ cmp r0, 0x3
+ beq _080B0E9C
+ b _080B0EC0
+_080B0E2A:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _080B0EC0
+_080B0E38:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _080B0E38
+ b _080B0EC0
+_080B0E50:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _080B0EC0
+_080B0E5E:
+ lsls r0, r2, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _080B0E5E
+ b _080B0EC0
+_080B0E76:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _080B0EC0
+_080B0E84:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _080B0E84
+ b _080B0EC0
+_080B0E9C:
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r1, [r0]
+ movs r2, 0
+ cmp r3, r4
+ bcs _080B0EC0
+_080B0EAA:
+ lsls r0, r2, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ adds r0, r3, r0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcc _080B0EAA
+_080B0EC0:
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end reads_trainer_data_byte0
+
+ thumb_func_start sub_80B0EC8
+sub_80B0EC8: @ 80B0EC8
+ push {r4-r6,lr}
+ bl sub_80B0D24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, =0x02024744
+ movs r1, 0x38
+ bl pokemon_getattr
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_80B0D88
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _080B0F10
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B0F04
+ movs r0, 0
+ b _080B0F2E
+ .pool
+_080B0F04:
+ ldr r0, =gUnknown_0854FE88
+ lsls r1, r5, 1
+ b _080B0F20
+ .pool
+_080B0F10:
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B0F2C
+ ldr r0, =gUnknown_0854FE88
+ lsls r1, r6, 1
+ adds r0, 0x1
+_080B0F20:
+ adds r1, r0
+ ldrb r0, [r1]
+ b _080B0F2E
+ .pool
+_080B0F2C:
+ movs r0, 0xA
+_080B0F2E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B0EC8
+
+ thumb_func_start reads_trainer_data_byte1_byte0x18
+reads_trainer_data_byte1_byte0x18: @ 80B0F34
+ push {r4-r6,lr}
+ ldr r4, =0x02038bca
+ ldrh r1, [r4]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _080B0F98
+ ldr r1, =gTrainers
+ ldrh r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ cmp r1, 0x1F
+ bne _080B0F94
+ adds r1, r2, 0
+ ldr r0, =0x00000105
+ cmp r1, r0
+ bne _080B0F6C
+ movs r0, 0xC
+ b _080B1000
+ .pool
+_080B0F6C:
+ movs r0, 0x83
+ lsls r0, 1
+ cmp r1, r0
+ bne _080B0F78
+ movs r0, 0xD
+ b _080B1000
+_080B0F78:
+ ldr r0, =0x00000107
+ cmp r1, r0
+ bne _080B0F88
+ movs r0, 0xE
+ b _080B1000
+ .pool
+_080B0F88:
+ movs r0, 0x84
+ lsls r0, 1
+ cmp r1, r0
+ bne _080B0F98
+ movs r0, 0xF
+ b _080B1000
+_080B0F94:
+ cmp r1, 0x26
+ bne _080B0F9C
+_080B0F98:
+ movs r0, 0x10
+ b _080B1000
+_080B0F9C:
+ cmp r1, 0x9
+ beq _080B0FA8
+ cmp r1, 0x35
+ beq _080B0FA8
+ cmp r1, 0x31
+ bne _080B0FAC
+_080B0FA8:
+ movs r0, 0x12
+ b _080B1000
+_080B0FAC:
+ cmp r1, 0x3
+ beq _080B0FB8
+ cmp r1, 0xD
+ beq _080B0FB8
+ cmp r1, 0xB
+ bne _080B0FBC
+_080B0FB8:
+ movs r0, 0x11
+ b _080B1000
+_080B0FBC:
+ ldrb r0, [r0, 0x18]
+ movs r5, 0x1
+ cmp r0, 0x1
+ bne _080B0FC6
+ movs r5, 0x2
+_080B0FC6:
+ bl sub_80B0D24
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4]
+ adds r1, r5, 0
+ bl reads_trainer_data_byte0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80B0D88
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _080B0FF8
+ ldr r0, =gUnknown_0854FE90
+ lsls r1, r6, 1
+ adds r0, 0x1
+ b _080B0FFC
+ .pool
+_080B0FF8:
+ ldr r0, =gUnknown_0854FE90
+ lsls r1, r6, 1
+_080B0FFC:
+ adds r1, r0
+ ldrb r0, [r1]
+_080B1000:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end reads_trainer_data_byte1_byte0x18
+
+ thumb_func_start sub_80B100C
+sub_80B100C: @ 80B100C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =0x02024744
+ movs r1, 0x38
+ bl pokemon_getattr
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl sub_80B0D88
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _080B1090
+ cmp r5, 0xA
+ beq _080B1048
+ cmp r5, 0xA
+ bgt _080B1040
+ cmp r5, 0x3
+ beq _080B105C
+ b _080B106C
+ .pool
+_080B1040:
+ cmp r5, 0xD
+ bgt _080B106C
+ movs r0, 0x4
+ b _080B1120
+_080B1048:
+ ldr r4, =gUnknown_0854FEA4
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ b _080B1114
+ .pool
+_080B105C:
+ ldr r4, =gUnknown_0854FEA7
+ bl GenerateRandomNumber
+ ands r5, r0
+ lsls r0, r5, 16
+ b _080B111A
+ .pool
+_080B106C:
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ beq _080B10EC
+ ldr r4, =gUnknown_0854FE98
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ b _080B1112
+ .pool
+_080B1090:
+ cmp r5, 0xA
+ beq _080B10A6
+ cmp r5, 0xA
+ bgt _080B109E
+ cmp r5, 0x3
+ beq _080B10B8
+ b _080B10C8
+_080B109E:
+ cmp r5, 0xD
+ bgt _080B10C8
+ movs r0, 0x3
+ b _080B1120
+_080B10A6:
+ ldr r4, =gUnknown_0854FEA4
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ b _080B1114
+ .pool
+_080B10B8:
+ ldr r4, =gUnknown_0854FEA7
+ bl GenerateRandomNumber
+ ands r5, r0
+ lsls r0, r5, 16
+ b _080B111A
+ .pool
+_080B10C8:
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ beq _080B10EC
+ ldr r4, =gUnknown_0854FE98
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ b _080B1112
+ .pool
+_080B10EC:
+ ldr r0, =0x03005d90
+ ldr r1, [r0]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ lsls r2, r0, 2
+ ldr r3, =0x00000cb4
+ adds r1, r3
+ adds r2, r1, r2
+ lsls r0, 1
+ adds r0, 0x1
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrh r2, [r2]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, =gUnknown_0854FE98
+_080B1112:
+ movs r1, 0xC
+_080B1114:
+ bl __umodsi3
+ lsls r0, 16
+_080B111A:
+ lsrs r0, 16
+ adds r0, r4
+ ldrb r0, [r0]
+_080B1120:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B100C
+
+ thumb_func_start sub_80B1138
+sub_80B1138: @ 80B1138
+ push {lr}
+ ldr r0, =set_256color_bg_bg0
+ bl SetMainCallback2
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B1158
+ str r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1138
+
+ thumb_func_start sub_80B1158
+sub_80B1158: @ 80B1158
+ push {lr}
+ sub sp, 0x8
+ ldr r0, =0x00004023
+ bl GetVarPointer
+ ldr r2, =0x020375f0
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl sub_8133EDC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x5
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F9244
+ bl ResetTasks
+ bl sub_806E64C
+ ldr r0, =sub_80B11A8
+ bl SetMainCallback2
+ movs r0, 0
+ bl sub_8145F10
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1158
+
+ thumb_func_start sub_80B11A8
+sub_80B11A8: @ 80B11A8
+ push {lr}
+ bl fade_and_return_progress_probably
+ bl RunTasks
+ bl sub_8145F20
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B11F0
+ ldr r1, =0x02022fec
+ movs r0, 0x10
+ str r0, [r1]
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B1204
+ str r0, [r1, 0x8]
+ bl FreeAllWindowBuffers
+ ldr r0, =sub_8036760
+ bl SetMainCallback2
+ bl prev_quest_postbuffer_cursor_backup_reset
+ bl overworld_poison_timer_set
+ movs r0, 0x7
+ bl sav12_xor_increment
+ movs r0, 0x8
+ bl sav12_xor_increment
+ bl sub_80EECC8
+ bl sub_80B1218
+_080B11F0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B11A8
+
+ thumb_func_start sub_80B1204
+sub_80B1204: @ 80B1204
+ push {lr}
+ bl sav1_reset_battle_music_maybe
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1204
+
+ thumb_func_start sub_80B1218
+sub_80B1218: @ 80B1218
+ push {lr}
+ movs r0, 0x8
+ bl sub_80847F8
+ movs r1, 0x3C
+ bl __umodsi3
+ cmp r0, 0
+ bne _080B122E
+ bl sub_81DA57C
+_080B122E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1218
+
+ thumb_func_start sub_80B1234
+sub_80B1234: @ 80B1234
+ push {lr}
+ movs r0, 0x9
+ bl sub_80847F8
+ movs r1, 0x14
+ bl __umodsi3
+ cmp r0, 0
+ bne _080B124A
+ bl sub_81DA57C
+_080B124A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1234
+
+ thumb_func_start TrainerBattleLoadArg32
+@ u32 TrainerBattleLoadArg32(u8 *arg)
+TrainerBattleLoadArg32: @ 80B1250
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0x3]
+ lsls r1, 24
+ orrs r0, r1
+ bx lr
+ thumb_func_end TrainerBattleLoadArg32
+
+ thumb_func_start TrainerBattleLoadArg16
+@ u16 TrainerBattleLoadArg16(u8 *arg)
+TrainerBattleLoadArg16: @ 80B1268
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ bx lr
+ thumb_func_end TrainerBattleLoadArg16
+
+ thumb_func_start TrainerBattleLoadArg8
+@ u8 TrainerBattleLoadArg8(u8 *arg)
+TrainerBattleLoadArg8: @ 80B1274
+ ldrb r0, [r0]
+ bx lr
+ thumb_func_end TrainerBattleLoadArg8
+
+ thumb_func_start trainerflag_opponent
+trainerflag_opponent: @ 80B1278
+ ldr r1, =0x02038bca
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end trainerflag_opponent
+
+ thumb_func_start sub_80B1290
+sub_80B1290: @ 80B1290
+ ldr r1, =0x02038bcc
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_80B1290
+
+ thumb_func_start battle_exit_is_player_defeat
+battle_exit_is_player_defeat: @ 80B12A8
+ push {lr}
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080B12E0
+ lsls r0, 2
+ ldr r1, =_080B12C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080B12C0:
+ .4byte _080B12E0
+ .4byte _080B12DC
+ .4byte _080B12DC
+ .4byte _080B12E0
+ .4byte _080B12E0
+ .4byte _080B12E0
+ .4byte _080B12E0
+_080B12DC:
+ movs r0, 0x1
+ b _080B12E2
+_080B12E0:
+ movs r0, 0
+_080B12E2:
+ pop {r1}
+ bx r1
+ thumb_func_end battle_exit_is_player_defeat
+
+ thumb_func_start ResetTrainerOpponentIds
+ResetTrainerOpponentIds: @ 80B12E8
+ ldr r0, =0x02038bca
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =0x02038bcc
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end ResetTrainerOpponentIds
+
+ thumb_func_start InitTrainerBattleVariables
+@ void InitTrainerBattleVariables()
+InitTrainerBattleVariables: @ 80B12FC
+ push {lr}
+ ldr r0, =0x02038bc8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =0x02038bfc
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080B132C
+ ldr r0, =0x02038bd4
+ str r1, [r0]
+ ldr r0, =0x02038bdc
+ str r1, [r0]
+ ldr r0, =0x02038bf0
+ b _080B1338
+ .pool
+_080B132C:
+ ldr r0, =0x02038bd8
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =0x02038be0
+ str r1, [r0]
+ ldr r0, =0x02038bf4
+_080B1338:
+ str r1, [r0]
+ ldr r1, =0x02038bd0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, =0x02038be4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =0x02038be8
+ str r1, [r0]
+ ldr r0, =0x02038bec
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end InitTrainerBattleVariables
+
+ thumb_func_start TrainerBattleLoadArgs
+@ void TrainerBattleLoadArgs(struct TrainerBattleArgSpec *argSpecs, u8 *args)
+TrainerBattleLoadArgs: @ 80B1370
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+_080B1376:
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x6
+ bhi _080B13E8
+ lsls r0, 2
+ ldr r1, =_080B138C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080B138C:
+ .4byte _080B13A8
+ .4byte _080B13B6
+ .4byte _080B13C4
+ .4byte _080B13D2
+ .4byte _080B13DA
+ .4byte _080B13E2
+ .4byte _080B13EC
+_080B13A8:
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg8
+ ldr r1, [r4]
+ strb r0, [r1]
+ adds r5, 0x1
+ b _080B13E8
+_080B13B6:
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg16
+ ldr r1, [r4]
+ strh r0, [r1]
+ adds r5, 0x2
+ b _080B13E8
+_080B13C4:
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg32
+ ldr r1, [r4]
+ str r0, [r1]
+ adds r5, 0x4
+ b _080B13E8
+_080B13D2:
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1]
+ b _080B13E8
+_080B13DA:
+ ldr r1, [r4]
+ movs r0, 0
+ strh r0, [r1]
+ b _080B13E8
+_080B13E2:
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+_080B13E8:
+ adds r4, 0x8
+ b _080B1376
+_080B13EC:
+ ldr r0, [r4]
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end TrainerBattleLoadArgs
+
+ thumb_func_start battle_80801F0
+battle_80801F0: @ 80B13F8
+ push {lr}
+ ldr r0, =0x02038bd0
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _080B141A
+ ldr r0, =0x020375f2
+ strh r1, [r0]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ ldr r1, =0x03005d8c
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl GetFieldObjectIdByLocalIdAndMap
+ ldr r1, =0x03005df0
+ strb r0, [r1]
+_080B141A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end battle_80801F0
+
+ thumb_func_start TrainerBattleConfigure
+@ u8 *TrainerBattleConfigure(u8 *args)
+TrainerBattleConfigure: @ 80B1430
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl InitTrainerBattleVariables
+ ldr r4, =0x02038bc8
+ adds r0, r5, 0
+ bl TrainerBattleLoadArg8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ cmp r0, 0xB
+ bls _080B1450
+ b _080B15F4
+_080B1450:
+ lsls r0, 2
+ ldr r1, =_080B1464
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080B1464:
+ .4byte _080B14CC
+ .4byte _080B14B0
+ .4byte _080B1494
+ .4byte _080B14A8
+ .4byte _080B1514
+ .4byte _080B14D4
+ .4byte _080B14EC
+ .4byte _080B14D4
+ .4byte _080B153C
+ .4byte _080B1590
+ .4byte _080B1598
+ .4byte _080B15A8
+_080B1494:
+ ldr r0, =gUnknown_0854FF84
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ ldr r0, =gUnknown_082713C2
+ b _080B161E
+ .pool
+_080B14A8:
+ ldr r0, =gUnknown_0854FF3C
+ b _080B14D6
+ .pool
+_080B14B0:
+ ldr r0, =0x02038bfc
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B14C4
+ ldr r0, =gUnknown_0854FEF4
+ b _080B15FE
+ .pool
+_080B14C4:
+ ldr r0, =gUnknown_0855005C
+ b _080B1616
+ .pool
+_080B14CC:
+ ldr r0, =gUnknown_0854FEF4
+ b _080B15FE
+ .pool
+_080B14D4:
+ ldr r0, =gUnknown_0854FFCC
+_080B14D6:
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r0, =gUnknown_0827138A
+ b _080B161E
+ .pool
+_080B14EC:
+ ldr r0, =gUnknown_0854FF3C
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r4, =0x02038bca
+ ldrh r0, [r4]
+ bl sub_80B2234
+ strh r0, [r4]
+ ldr r0, =gUnknown_082713F8
+ b _080B161E
+ .pool
+_080B1514:
+ ldr r0, =gUnknown_0854FEAC
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r4, =0x02038bca
+ ldrh r0, [r4]
+ bl sub_80B2234
+ strh r0, [r4]
+ ldr r0, =gUnknown_082713D1
+ b _080B161E
+ .pool
+_080B153C:
+ ldr r0, =0x02038bfc
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B156C
+ ldr r0, =gUnknown_0854FEAC
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r0, =0x020375f2
+ ldrb r0, [r0]
+ bl sub_81A9AA8
+ ldr r1, =0x02038bca
+ b _080B157E
+ .pool
+_080B156C:
+ ldr r0, =gUnknown_08550014
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ ldr r0, =0x020375f2
+ ldrb r0, [r0]
+ bl sub_81A9AA8
+_080B157C:
+ ldr r1, =0x02038bcc
+_080B157E:
+ strh r0, [r1]
+ b _080B161C
+ .pool
+_080B1590:
+ ldr r0, =gUnknown_0854FEAC
+ b _080B159A
+ .pool
+_080B1598:
+ ldr r0, =gUnknown_08550014
+_080B159A:
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ movs r0, 0
+ b _080B161E
+ .pool
+_080B15A8:
+ ldr r0, =0x02038bfc
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B15D8
+ ldr r0, =gUnknown_0854FEAC
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ ldr r0, =0x020375f2
+ ldrb r0, [r0]
+ bl battle_init
+ ldr r1, =0x02038bca
+ b _080B157E
+ .pool
+_080B15D8:
+ ldr r0, =gUnknown_08550014
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ ldr r0, =0x020375f2
+ ldrb r0, [r0]
+ bl battle_init
+ b _080B157C
+ .pool
+_080B15F4:
+ ldr r0, =0x02038bfc
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B1614
+ ldr r0, =gUnknown_0854FEAC
+_080B15FE:
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+ bl battle_80801F0
+ b _080B161C
+ .pool
+_080B1614:
+ ldr r0, =gUnknown_08550014
+_080B1616:
+ adds r1, r5, 0
+ bl TrainerBattleLoadArgs
+_080B161C:
+ ldr r0, =gUnknown_08271362
+_080B161E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end TrainerBattleConfigure
+
+ thumb_func_start SingleTrainerWantsBattle
+@ void SingleTrainerWantsBattle(u8 trainerFieldObjectId, u8 *trainerScript)
+SingleTrainerWantsBattle: @ 80B162C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005df0
+ strb r0, [r2]
+ ldr r4, =0x020375f2
+ ldr r3, =0x02037350
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ bl TrainerBattleConfigure
+ ldr r0, =gUnknown_08271354
+ bl script_env_1_execute_new_script
+ bl script_env_2_enable
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SingleTrainerWantsBattle
+
+ thumb_func_start TwoTrainersWantBattle
+@ void TwoTrainersWantBattle(u8 trainerFieldObjectId, u8 *trainerScript)
+TwoTrainersWantBattle: @ 80B1670
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005df0
+ strb r0, [r2]
+ ldr r4, =0x020375f2
+ ldr r3, =0x02037350
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ bl TrainerBattleConfigure
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end TwoTrainersWantBattle
+
+ thumb_func_start TwoTrainersWantBattleExecuteScript
+@ void TwoTrainersWantBattleExecuteScript()
+TwoTrainersWantBattleExecuteScript: @ 80B16A4
+ push {lr}
+ ldr r0, =gUnknown_08271354
+ bl script_env_1_execute_new_script
+ bl script_env_2_enable
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end TwoTrainersWantBattleExecuteScript
+
+ thumb_func_start GetTrainerFlagFromScriptPointer
+@ u8 GetTrainerFlagFromScriptPointer(u8 *scriptPointer)
+GetTrainerFlagFromScriptPointer: @ 80B16B8
+ push {lr}
+ adds r0, 0x2
+ bl TrainerBattleLoadArg16
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end GetTrainerFlagFromScriptPointer
+
+ thumb_func_start sub_80B16D8
+sub_80B16D8: @ 80B16D8
+ push {r4,lr}
+ ldr r0, =0x03005df0
+ ldrb r0, [r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, =0x02037350
+ adds r4, r0
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl npc_running_behaviour_by_direction
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl npc_set_running_behaviour_etc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B16D8
+
+ thumb_func_start sub_80B170C
+sub_80B170C: @ 80B170C
+ ldr r0, =0x02038bc8
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80B170C
+
+ thumb_func_start check_trainer_flag
+@ pokescrcmd
+check_trainer_flag: @ 80B1718
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1734
+ ldr r0, =0x03005df0
+ ldrb r0, [r0]
+ bl GetBattlePyramidTrainerFlag
+ b _080B1752
+ .pool
+_080B1734:
+ bl InTrainerHill
+ cmp r0, 0
+ bne _080B174A
+ bl trainerflag_opponent
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ b _080B1752
+_080B174A:
+ ldr r0, =0x03005df0
+ ldrb r0, [r0]
+ bl GetTrainerHillTrainerFlag
+_080B1752:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end check_trainer_flag
+
+ thumb_func_start rom_npc_set_flag_for_script_id
+rom_npc_set_flag_for_script_id: @ 80B1760
+ push {lr}
+ ldr r0, =0x02038bcc
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080B1776
+ bl sub_80B1290
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+_080B1776:
+ bl trainerflag_opponent
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end rom_npc_set_flag_for_script_id
+
+ thumb_func_start sub_80B178C
+sub_80B178C: @ 80B178C
+ push {lr}
+ bl trainerflag_opponent
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B178C
+
+ thumb_func_start trainer_flag_check
+trainer_flag_check: @ 80B17A0
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end trainer_flag_check
+
+ thumb_func_start trainer_flag_set
+trainer_flag_set: @ 80B17B8
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagSet
+ pop {r0}
+ bx r0
+ thumb_func_end trainer_flag_set
+
+ thumb_func_start trainer_flag_clear
+trainer_flag_clear: @ 80B17CC
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagReset
+ pop {r0}
+ bx r0
+ thumb_func_end trainer_flag_clear
+
+ thumb_func_start sub_80B17E0
+sub_80B17E0: @ 80B17E0
+ push {r4,lr}
+ ldr r0, =0x030060a8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080B17FC
+ ldr r1, =0x02022fec
+ ldr r0, =0x00008009
+ b _080B1800
+ .pool
+_080B17FC:
+ ldr r1, =0x02022fec
+ movs r0, 0x8
+_080B1800:
+ str r0, [r1]
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1884
+ ldr r0, =0x0000400e
+ movs r1, 0
+ bl VarSet
+ ldr r2, =0x02022fec
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 14
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, =0x030060a8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080B1864
+ movs r0, 0x1
+ bl sub_816306C
+ ldr r4, =0x020247a8
+ adds r0, r4, 0
+ bl zero_pokemon_struct
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl zero_pokemon_struct
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r4, r1
+ bl zero_pokemon_struct
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, r1
+ bl zero_pokemon_struct
+ b _080B187A
+ .pool
+_080B1864:
+ movs r0, 0x1
+ bl sub_8163048
+ ldr r4, =0x020247a8
+ adds r0, r4, 0
+ bl zero_pokemon_struct
+ adds r4, 0x64
+ adds r0, r4, 0
+ bl zero_pokemon_struct
+_080B187A:
+ bl sub_81A9B04
+ b _080B18B8
+ .pool
+_080B1884:
+ bl sub_81D5C18
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B18B8
+ ldr r2, =0x02022fec
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, =0x030060a8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080B18B0
+ bl sub_81D639C
+ b _080B18B4
+ .pool
+_080B18B0:
+ bl sub_81D6384
+_080B18B4:
+ bl sub_81D61E8
+_080B18B8:
+ ldr r1, =0x02038bf9
+ ldr r2, =0x030060a8
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r1, 0
+ strb r1, [r2]
+ ldr r0, =0x02038bf8
+ strb r1, [r0]
+ ldr r1, =0x03006080
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B1918
+ str r0, [r1, 0x8]
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B18E8
+ bl sub_81D5C18
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1908
+_080B18E8:
+ bl sub_80B0828
+ b _080B190C
+ .pool
+_080B1908:
+ bl task_add_01_battle_start_with_music_and_stats
+_080B190C:
+ bl script_env_2_set_ctx_paused
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B17E0
+
+ thumb_func_start sub_80B1918
+sub_80B1918: @ 80B1918
+ push {lr}
+ ldr r0, =0x02038bca
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _080B1946
+ ldr r0, =0x0202433a
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _080B1968
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B1946
+ bl sub_81D5C18
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B195C
+_080B1946:
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ b _080B198A
+ .pool
+_080B195C:
+ ldr r0, =c2_whiteout
+ bl SetMainCallback2
+ b _080B198A
+ .pool
+_080B1968:
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B198A
+ bl sub_81D5C18
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B198A
+ bl sub_80B20BC
+ bl rom_npc_set_flag_for_script_id
+_080B198A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1918
+
+ thumb_func_start sub_80B1994
+sub_80B1994: @ 80B1994
+ push {lr}
+ ldr r0, =0x02038bca
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _080B19B4
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ b _080B19E2
+ .pool
+_080B19B4:
+ ldr r0, =0x0202433a
+ ldrb r0, [r0]
+ bl battle_exit_is_player_defeat
+ cmp r0, 0x1
+ bne _080B19D0
+ ldr r0, =c2_whiteout
+ bl SetMainCallback2
+ b _080B19E2
+ .pool
+_080B19D0:
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ bl sub_80B20BC
+ bl rom_npc_set_flag_for_script_id
+ bl sub_80B22BC
+_080B19E2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1994
+
+ thumb_func_start sub_80B19EC
+sub_80B19EC: @ 80B19EC
+ push {lr}
+ ldr r1, =0x02022fec
+ movs r0, 0x8
+ str r0, [r1]
+ ldr r1, =0x030022c0
+ ldr r0, =sub_80B1994
+ str r0, [r1, 0x8]
+ bl task_add_01_battle_start_with_music_and_stats
+ bl script_env_2_set_ctx_paused
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B19EC
+
+ thumb_func_start sub_80B1A14
+sub_80B1A14: @ 80B1A14
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1A7C
+ ldr r0, =0x030060a8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080B1A44
+ ldr r0, =0x020375f2
+ ldrb r0, [r0]
+ bl sub_81A9AA8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_81A9EDC
+ b _080B1AD8
+ .pool
+_080B1A44:
+ ldr r3, =0x02037350
+ ldr r2, =0x03006090
+ ldr r0, =0x02038bfc
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x8]
+ bl sub_81A9AA8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_81A9EDC
+ b _080B1AD8
+ .pool
+_080B1A7C:
+ bl sub_81D5C18
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1AEC
+ ldr r0, =0x030060a8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080B1AAC
+ ldr r0, =0x020375f2
+ ldrb r0, [r0]
+ bl battle_init
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x2
+ bl sub_81D572C
+ b _080B1AD8
+ .pool
+_080B1AAC:
+ ldr r3, =0x02037350
+ ldr r2, =0x03006090
+ ldr r0, =0x02038bfc
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x8]
+ bl battle_init
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x2
+ bl sub_81D572C
+_080B1AD8:
+ bl sub_80982B8
+ b _080B1AF4
+ .pool
+_080B1AEC:
+ bl sub_80B1C7C
+ bl box_related_two__2
+_080B1AF4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B1A14
+
+ thumb_func_start sub_80B1AF8
+sub_80B1AF8: @ 80B1AF8
+ push {lr}
+ ldr r0, =0x02038bec
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080B1B04
+ ldr r0, =gUnknown_082C8436
+_080B1B04:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1AF8
+
+ thumb_func_start sub_80B1B10
+sub_80B1B10: @ 80B1B10
+ push {lr}
+ ldr r1, =0x02038bf8
+ ldrb r2, [r1]
+ cmp r2, 0
+ beq _080B1B3C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, =0x02038bf4
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _080B1B54
+ ldr r1, =0x03006080
+ movs r0, 0x1
+ strh r0, [r1]
+ adds r0, r2, 0
+ b _080B1B56
+ .pool
+_080B1B3C:
+ ldr r0, =0x02038bf0
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080B1B54
+ ldr r0, =0x03006080
+ strh r2, [r0]
+ adds r0, r1, 0
+ b _080B1B56
+ .pool
+_080B1B54:
+ ldr r0, =gUnknown_082742E6
+_080B1B56:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1B10
+
+ thumb_func_start special_trainer_unable_to_battle
+special_trainer_unable_to_battle: @ 80B1B60
+ push {lr}
+ bl sub_80B1D18
+ bl box_related_two__2
+ pop {r0}
+ bx r0
+ thumb_func_end special_trainer_unable_to_battle
+
+ thumb_func_start SetUpTrainerEncounterMusic
+@ void SetUpTrainerEncounterMusic()
+SetUpTrainerEncounterMusic: @ 80B1B70
+ push {lr}
+ ldr r0, =0x02038bfc
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B1B88
+ ldr r0, =0x02038bca
+ b _080B1B8A
+ .pool
+_080B1B88:
+ ldr r0, =0x02038bcc
+_080B1B8A:
+ ldrh r1, [r0]
+ ldr r0, =0x02038bc8
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080B1C62
+ cmp r0, 0x8
+ beq _080B1C62
+ adds r0, r1, 0
+ bl GetTrainerEncounterMusicId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bhi _080B1C5C
+ lsls r0, 2
+ ldr r1, =_080B1BBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080B1BBC:
+ .4byte _080B1BF4
+ .4byte _080B1BFA
+ .4byte _080B1C04
+ .4byte _080B1C5C
+ .4byte _080B1C0C
+ .4byte _080B1C12
+ .4byte _080B1C1C
+ .4byte _080B1C24
+ .4byte _080B1C2C
+ .4byte _080B1C34
+ .4byte _080B1C3C
+ .4byte _080B1C42
+ .4byte _080B1C4C
+ .4byte _080B1C54
+_080B1BF4:
+ movs r0, 0xBE
+ lsls r0, 1
+ b _080B1C5E
+_080B1BFA:
+ ldr r0, =0x00000197
+ b _080B1C5E
+ .pool
+_080B1C04:
+ ldr r0, =0x0000017b
+ b _080B1C5E
+ .pool
+_080B1C0C:
+ movs r0, 0xD0
+ lsls r0, 1
+ b _080B1C5E
+_080B1C12:
+ ldr r0, =0x000001a1
+ b _080B1C5E
+ .pool
+_080B1C1C:
+ ldr r0, =0x000001a3
+ b _080B1C5E
+ .pool
+_080B1C24:
+ ldr r0, =0x000001b9
+ b _080B1C5E
+ .pool
+_080B1C2C:
+ ldr r0, =0x00000181
+ b _080B1C5E
+ .pool
+_080B1C34:
+ ldr r0, =0x000001c1
+ b _080B1C5E
+ .pool
+_080B1C3C:
+ movs r0, 0xE1
+ lsls r0, 1
+ b _080B1C5E
+_080B1C42:
+ ldr r0, =0x000001c3
+ b _080B1C5E
+ .pool
+_080B1C4C:
+ ldr r0, =0x000001c5
+ b _080B1C5E
+ .pool
+_080B1C54:
+ ldr r0, =0x0000018d
+ b _080B1C5E
+ .pool
+_080B1C5C:
+ ldr r0, =0x000001a7
+_080B1C5E:
+ bl current_map_music_set
+_080B1C62:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetUpTrainerEncounterMusic
+
+ thumb_func_start ReturnEmptyStringIfNull
+@ u8 *ReturnEmptyStringIfNull(u8 *str)
+ReturnEmptyStringIfNull: @ 80B1C6C
+ push {lr}
+ cmp r0, 0
+ bne _080B1C74
+ ldr r0, =gUnknown_085E8D03
+_080B1C74:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ReturnEmptyStringIfNull
+
+ thumb_func_start sub_80B1C7C
+sub_80B1C7C: @ 80B1C7C
+ push {lr}
+ ldr r0, =0x02038bfc
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B1C94
+ ldr r0, =0x02038bd8
+ b _080B1C96
+ .pool
+_080B1C94:
+ ldr r0, =0x02038bd4
+_080B1C96:
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1C7C
+
+ thumb_func_start sub_80B1CA4
+sub_80B1CA4: @ 80B1CA4
+ push {r4,lr}
+ ldr r0, =0x02038bca
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _080B1CBC
+ bl sub_80EA250
+ b _080B1CC0
+ .pool
+_080B1CBC:
+ ldr r0, =0x02038bdc
+ ldr r0, [r0]
+_080B1CC0:
+ ldr r4, =0x02021fc4
+ bl ReturnEmptyStringIfNull
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ExpandStringRefs
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1CA4
+
+ thumb_func_start sub_80B1CE0
+sub_80B1CE0: @ 80B1CE0
+ push {r4,lr}
+ ldr r4, =0x02021fc4
+ ldr r0, =0x02038be0
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl ExpandStringRefs
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1CE0
+
+ thumb_func_start sub_80B1D04
+sub_80B1D04: @ 80B1D04
+ push {lr}
+ ldr r0, =0x02038be4
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1D04
+
+ thumb_func_start sub_80B1D18
+sub_80B1D18: @ 80B1D18
+ push {lr}
+ ldr r0, =0x02038be8
+ ldr r0, [r0]
+ bl ReturnEmptyStringIfNull
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1D18
+
+ thumb_func_start sub_80B1D2C
+sub_80B1D2C: @ 80B1D2C
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0
+ adds r2, r0, 0
+_080B1D36:
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080B1D40
+ adds r0, r3, 0
+ b _080B1D4C
+_080B1D40:
+ adds r2, 0x10
+ adds r3, 0x1
+ cmp r3, 0x4D
+ ble _080B1D36
+ movs r0, 0x1
+ negs r0, r0
+_080B1D4C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1D2C
+
+ thumb_func_start sub_80B1D50
+sub_80B1D50: @ 80B1D50
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+ adds r2, r0, 0
+_080B1D5A:
+ movs r1, 0
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _080B1D80
+ movs r3, 0
+_080B1D64:
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _080B1D70
+ adds r0, r4, 0
+ b _080B1D8C
+_080B1D70:
+ adds r3, 0x2
+ adds r1, 0x1
+ cmp r1, 0x4
+ bgt _080B1D80
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080B1D64
+_080B1D80:
+ adds r2, 0x10
+ adds r4, 0x1
+ cmp r4, 0x4D
+ ble _080B1D5A
+ movs r0, 0x1
+ negs r0, r0
+_080B1D8C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1D50
+
+ thumb_func_start sub_80B1D94
+sub_80B1D94: @ 80B1D94
+ push {lr}
+ cmp r0, 0x48
+ ble _080B1D9E
+ movs r0, 0x1
+ b _080B1DB8
+_080B1D9E:
+ cmp r0, 0x40
+ bne _080B1DB6
+ movs r0, 0x7E
+ bl FlagGet
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B1DB2
+ movs r1, 0x1
+_080B1DB2:
+ adds r0, r1, 0
+ b _080B1DB8
+_080B1DB6:
+ movs r0, 0
+_080B1DB8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1D94
+
+ thumb_func_start sub_80B1DBC
+sub_80B1DBC: @ 80B1DBC
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ movs r5, 0x1
+ lsls r1, r6, 4
+ adds r1, r0
+ adds r4, r1, 0x2
+ b _080B1DCE
+_080B1DCA:
+ adds r4, 0x2
+ adds r5, 0x1
+_080B1DCE:
+ cmp r5, 0x4
+ bgt _080B1DE2
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080B1DE2
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B1DCA
+_080B1DE2:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r6
+ strb r5, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1DBC
+
+ thumb_func_start sub_80B1DFC
+sub_80B1DFC: @ 80B1DFC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ movs r7, 0
+ movs r5, 0
+ adds r4, r6, 0
+ adds r4, 0xA
+_080B1E1A:
+ ldrh r0, [r4]
+ cmp r0, r9
+ bne _080B1E74
+ ldrh r0, [r4, 0x2]
+ cmp r0, r8
+ bne _080B1E74
+ adds r0, r5, 0
+ bl sub_80B1D94
+ cmp r0, 0
+ bne _080B1E74
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x000009ca
+ adds r0, r1
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B1E72
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r5, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1E74
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bhi _080B1E74
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80B1DBC
+_080B1E72:
+ movs r7, 0x1
+_080B1E74:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x40
+ ble _080B1E1A
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B1DFC
+
+ thumb_func_start sub_80B1E94
+sub_80B1E94: @ 80B1E94
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, =gUnknown_085500A4
+ lsls r0, r4, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ bl trainer_flag_check
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B1EB4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80B1DBC
+_080B1EB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B1E94
+
+ thumb_func_start sub_80B1EC0
+sub_80B1EC0: @ 80B1EC0
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ adds r3, r0, 0
+ adds r3, 0xA
+ ldr r5, =0x03005d8c
+_080B1ED2:
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _080B1EF8
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ bne _080B1EF8
+ ldr r0, [r5]
+ ldr r6, =0x000009ca
+ adds r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B1EF8
+ movs r0, 0x1
+ b _080B1F02
+ .pool
+_080B1EF8:
+ adds r3, 0x10
+ adds r1, 0x1
+ cmp r1, 0x4D
+ ble _080B1ED2
+ movs r0, 0
+_080B1F02:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1EC0
+
+ thumb_func_start sub_80B1F08
+sub_80B1F08: @ 80B1F08
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ adds r3, r0, 0
+ adds r3, 0xA
+_080B1F18:
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _080B1F28
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ bne _080B1F28
+ movs r0, 0x1
+ b _080B1F32
+_080B1F28:
+ adds r3, 0x10
+ adds r1, 0x1
+ cmp r1, 0x4D
+ ble _080B1F18
+ movs r0, 0
+_080B1F32:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1F08
+
+ thumb_func_start sub_80B1F38
+sub_80B1F38: @ 80B1F38
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80B1D2C
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B1F6C
+ cmp r1, 0x63
+ bgt _080B1F6C
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x000009ca
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B1F6C
+ movs r0, 0x1
+ b _080B1F6E
+ .pool
+_080B1F6C:
+ movs r0, 0
+_080B1F6E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1F38
+
+ thumb_func_start sub_80B1F74
+sub_80B1F74: @ 80B1F74
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80B1D50
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B1FA8
+ cmp r1, 0x63
+ bgt _080B1FA8
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x000009ca
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B1FA8
+ movs r0, 0x1
+ b _080B1FAA
+ .pool
+_080B1FA8:
+ movs r0, 0
+_080B1FAA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1F74
+
+ thumb_func_start sub_80B1FB0
+sub_80B1FB0: @ 80B1FB0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80B1D2C
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080B1FD8
+ movs r0, 0
+ b _080B1FFE
+_080B1FCA:
+ subs r0, r6, 0x1
+ lsls r0, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ b _080B1FFE
+_080B1FD4:
+ ldrh r0, [r5]
+ b _080B1FFE
+_080B1FD8:
+ lsls r0, r1, 4
+ adds r7, r4, r0
+ movs r6, 0x1
+ adds r5, r7, 0x2
+ adds r4, r5, 0
+_080B1FE2:
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080B1FCA
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B1FD4
+ adds r4, 0x2
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _080B1FE2
+ ldrh r0, [r7, 0x8]
+_080B1FFE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B1FB0
+
+ thumb_func_start sub_80B2004
+sub_80B2004: @ 80B2004
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80B1D2C
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080B2032
+ movs r0, 0
+ b _080B2054
+_080B201E:
+ subs r0, r5, 0x1
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ b _080B2054
+_080B2028:
+ subs r0, r5, 0x1
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ b _080B2054
+_080B2032:
+ lsls r0, r1, 4
+ adds r6, r4, r0
+ movs r5, 0x1
+ adds r4, r6, 0x2
+_080B203A:
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080B201E
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2028
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080B203A
+ ldrh r0, [r6, 0x8]
+_080B2054:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2004
+
+ thumb_func_start sub_80B205C
+sub_80B205C: @ 80B205C
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80B1D50
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B207E
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x000009ca
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080B207E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B205C
+
+ thumb_func_start sub_80B208C
+sub_80B208C: @ 80B208C
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ movs r4, 0xAE
+ lsls r4, 1
+ ldr r2, =gUnknown_085500A4
+_080B2098:
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _080B20A8
+ adds r0, r1, r4
+ b _080B20B2
+ .pool
+_080B20A8:
+ adds r2, 0x10
+ adds r1, 0x1
+ cmp r1, 0x4D
+ ble _080B2098
+ ldr r0, =0x0000ffff
+_080B20B2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B208C
+
+ thumb_func_start sub_80B20BC
+sub_80B20BC: @ 80B20BC
+ push {lr}
+ ldr r0, =0x0000012f
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B20E2
+ ldr r0, =0x02038bca
+ ldrh r0, [r0]
+ bl sub_80B208C
+ adds r1, r0, 0
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _080B20E2
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl FlagSet
+_080B20E2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B20BC
+
+ thumb_func_start sub_80B20F4
+sub_80B20F4: @ 80B20F4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80B1D2C
+ adds r1, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080B211E
+ lsls r0, r1, 4
+ adds r0, r4
+ ldrh r0, [r0, 0x2]
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B211E
+ movs r0, 0x1
+ b _080B2120
+_080B211E:
+ movs r0, 0
+_080B2120:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B20F4
+
+ thumb_func_start sub_80B2128
+sub_80B2128: @ 80B2128
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ ldr r4, =gUnknown_08550584
+_080B2130:
+ ldrh r0, [r4]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B214C
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _080B214C
+ movs r0, 0x1
+ b _080B2156
+ .pool
+_080B214C:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x7
+ bls _080B2130
+ movs r0, 0
+_080B2156:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2128
+
+ thumb_func_start sub_80B215C
+sub_80B215C: @ 80B215C
+ push {lr}
+ bl sub_80B2128
+ cmp r0, 0
+ beq _080B2184
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x000009c8
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ cmp r0, 0xFE
+ bls _080B2180
+ movs r0, 0xFF
+ b _080B2182
+ .pool
+_080B2180:
+ adds r0, 0x1
+_080B2182:
+ strh r0, [r1]
+_080B2184:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B215C
+
+ thumb_func_start sub_80B2188
+sub_80B2188: @ 80B2188
+ push {lr}
+ bl sub_80B2128
+ cmp r0, 0
+ beq _080B21AC
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x000009c8
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xFE
+ bls _080B21AC
+ movs r0, 0x1
+ b _080B21AE
+ .pool
+_080B21AC:
+ movs r0, 0
+_080B21AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2188
+
+ thumb_func_start sub_80B21B4
+sub_80B21B4: @ 80B21B4
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_80B2188
+ cmp r0, 0
+ beq _080B21E0
+ ldr r0, =gUnknown_085500A4
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_80B1DFC
+ cmp r0, 0x1
+ bne _080B21E0
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x000009c8
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+_080B21E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B21B4
+
+ thumb_func_start sub_80B21F4
+sub_80B21F4: @ 80B21F4
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, =gUnknown_085500A4
+ adds r1, r3, 0
+ bl sub_80B1EC0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B21F4
+
+ thumb_func_start sub_80B2214
+sub_80B2214: @ 80B2214
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, =gUnknown_085500A4
+ adds r1, r3, 0
+ bl sub_80B1F08
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B2214
+
+ thumb_func_start sub_80B2234
+sub_80B2234: @ 80B2234
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =gUnknown_085500A4
+ bl sub_80B1FB0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B2234
+
+ thumb_func_start sub_80B2250
+sub_80B2250: @ 80B2250
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =gUnknown_085500A4
+ bl sub_80B2004
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B2250
+
+ thumb_func_start sub_80B226C
+sub_80B226C: @ 80B226C
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_085500A4
+ ldr r4, =0x02038bca
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ bl sub_80B1F38
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B2298
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ bl sub_80B20F4
+ lsls r0, 24
+ lsrs r0, 24
+ b _080B229A
+ .pool
+_080B2298:
+ movs r0, 0x1
+_080B229A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B226C
+
+ thumb_func_start sub_80B22A0
+sub_80B22A0: @ 80B22A0
+ push {lr}
+ ldr r0, =gUnknown_085500A4
+ ldr r1, =0x02038bca
+ ldrh r1, [r1]
+ bl sub_80B1F74
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_80B22A0
+
+ thumb_func_start sub_80B22BC
+sub_80B22BC: @ 80B22BC
+ push {lr}
+ ldr r0, =gUnknown_085500A4
+ ldr r1, =0x02038bca
+ ldrh r1, [r1]
+ bl sub_80B205C
+ bl rom_npc_set_flag_for_script_id
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80B22BC
+
+ thumb_func_start CheckIfMultipleTrainersWantBattle
+CheckIfMultipleTrainersWantBattle: @ 80B22D8
+ push {lr}
+ ldr r1, =0x02038bf9
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _080B2300
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, =0x02038bf8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, =0x020375f0
+ movs r0, 0x1
+ b _080B230A
+ .pool
+_080B2300:
+ ldr r1, =0x02038bf8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, =0x020375f0
+ movs r0, 0
+_080B230A:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CheckIfMultipleTrainersWantBattle
+
+ thumb_func_start sub_80B2318
+sub_80B2318: @ 80B2318
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r7, =gUnknown_085500A4
+ lsrs r4, r0, 12
+ adds r6, r4, r7
+ ldrh r0, [r6]
+ bl trainer_flag_check
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080B2338
+ movs r0, 0
+ b _080B2364
+ .pool
+_080B2338:
+ movs r5, 0x1
+ adds r0, r4, 0x2
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080B2360
+ adds r4, r6, 0x2
+_080B2346:
+ ldrh r0, [r4]
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B2360
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x4
+ bgt _080B2360
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _080B2346
+_080B2360:
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080B2364:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B2318
+
+ .align 2, 0 @ Don't pad with nop.