summaryrefslogtreecommitdiff
path: root/asm/battle_tower.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_tower.s')
-rw-r--r--asm/battle_tower.s3663
1 files changed, 3663 insertions, 0 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
new file mode 100644
index 000000000..15cb95854
--- /dev/null
+++ b/asm/battle_tower.s
@@ -0,0 +1,3663 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8134548
+sub_8134548: @ 8134548
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_0813454E:
+ ldr r0, _08134568 @ =gSaveBlock2
+ ldr r1, _0813456C @ =0x00000556
+ adds r0, r1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _08134590
+ lsls r0, 2
+ ldr r1, _08134570 @ =_08134574
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08134568: .4byte gSaveBlock2
+_0813456C: .4byte 0x00000556
+_08134570: .4byte _08134574
+ .align 2, 0
+_08134574:
+ .4byte _08134590
+ .4byte _081345A8
+ .4byte _081345C8
+ .4byte _081345D8
+ .4byte _081345B8
+ .4byte _081345C0
+ .4byte _081345D8
+_08134590:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ cmp r4, 0
+ bne _081345D8
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+ b _081345D8
+_081345A8:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ b _081345CE
+_081345B8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x2
+ b _081345CE
+_081345C0:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x3
+ b _081345CE
+_081345C8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x4
+_081345CE:
+ bl VarSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081345D8:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _0813454E
+ ldr r1, _08134610 @ =gSaveBlock2
+ ldr r2, _08134614 @ =0x00000556
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345EE
+ cmp r0, 0x6
+ bne _08134606
+_081345EE:
+ ldr r2, _08134618 @ =0x00000557
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345FC
+ cmp r0, 0x6
+ bne _08134606
+_081345FC:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+_08134606:
+ bl sub_8135C44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134610: .4byte gSaveBlock2
+_08134614: .4byte 0x00000556
+_08134618: .4byte 0x00000557
+ thumb_func_end sub_8134548
+
+ thumb_func_start sub_813461C
+sub_813461C: @ 813461C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08134644 @ =gSaveBlock2
+ ldr r2, _08134648 @ =0x00000556
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0
+ strb r2, [r1]
+ lsls r0, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0x1
+ strh r2, [r1]
+ ldr r1, _0813464C @ =0x0000055c
+ adds r3, r1
+ adds r0, r3
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_08134644: .4byte gSaveBlock2
+_08134648: .4byte 0x00000556
+_0813464C: .4byte 0x0000055c
+ thumb_func_end sub_813461C
+
+ thumb_func_start sub_8134650
+sub_8134650: @ 8134650
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ add r4, sp, 0x28
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_813601C
+ ldr r0, _08134684 @ =gScriptResult
+ ldrh r0, [r0]
+ adds r7, r4, 0
+ cmp r0, 0
+ bne _08134680
+ ldr r1, _08134688 @ =gSaveBlock2
+ ldr r2, _0813468C @ =0x0000049a
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _08134690
+_08134680:
+ movs r0, 0
+ b _081346E2
+ .align 2, 0
+_08134684: .4byte gScriptResult
+_08134688: .4byte gSaveBlock2
+_0813468C: .4byte 0x0000049a
+_08134690:
+ movs r6, 0x32
+ cmp r5, 0
+ beq _08134698
+ movs r6, 0x64
+_08134698:
+ movs r4, 0
+ mov r8, r1
+_0813469C:
+ movs r0, 0x2C
+ muls r0, r4
+ mov r3, r8
+ adds r1, r0, r3
+ movs r2, 0x9B
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ cmp r2, r6
+ bne _08134680
+ ldr r3, _081346F0 @ =0x000004cc
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r3, 0x2
+ adds r1, r3
+ ldrh r1, [r1]
+ str r2, [sp]
+ add r2, sp, 0x10
+ str r2, [sp, 0x4]
+ add r2, sp, 0x1C
+ str r2, [sp, 0x8]
+ str r7, [sp, 0xC]
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl CheckMonBattleTowerBanlist
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _0813469C
+ movs r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0x3
+ bne _081346E0
+ movs r1, 0x1
+_081346E0:
+ adds r0, r1, 0
+_081346E2:
+ add sp, 0x2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081346F0: .4byte 0x000004cc
+ thumb_func_end sub_8134650
+
+ thumb_func_start sub_81346F4
+sub_81346F4: @ 81346F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r9, r0
+ ldr r4, _08134738 @ =gSaveBlock2
+ ldr r1, _0813473C @ =0x00000554
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ adds r0, r7, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8134650
+ lsls r0, 24
+ adds r1, r4, 0
+ cmp r0, 0
+ beq _08134744
+ ldr r2, _08134740 @ =0x00000564
+ adds r1, r2
+ movs r0, 0xC8
+ strb r0, [r1]
+ b _081347DE
+ .align 2, 0
+_08134738: .4byte gSaveBlock2
+_0813473C: .4byte 0x00000554
+_08134740: .4byte 0x00000564
+_08134744:
+ movs r5, 0
+ movs r3, 0xA4
+ mov r12, r3
+ mov r10, sp
+_0813474C:
+ mov r0, r12
+ muls r0, r5
+ movs r4, 0
+ movs r1, 0
+ movs r2, 0
+ adds r6, r5, 0x1
+ str r6, [sp, 0x14]
+ ldr r6, _081347B4 @ =gSaveBlock2 + 0x14C
+ adds r3, r0, r6
+_0813475E:
+ ldm r3!, {r0}
+ orrs r4, r0
+ adds r1, r0
+ adds r2, 0x1
+ cmp r2, 0x27
+ bls _0813475E
+ mov r3, r12
+ muls r3, r5
+ ldr r0, _081347B8 @ =gSaveBlock2
+ adds r2, r3, r0
+ movs r6, 0xA7
+ lsls r6, 1
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _081347A4
+ subs r6, 0x2
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _081347A4
+ cmp r4, 0
+ beq _081347A4
+ ldr r2, _081347BC @ =gSaveBlock2 + 0x1EC
+ adds r0, r3, r2
+ ldr r0, [r0]
+ cmp r0, r1
+ bne _081347A4
+ mov r3, r10
+ adds r3, 0x4
+ mov r10, r3
+ subs r3, 0x4
+ stm r3!, {r5}
+ movs r6, 0x1
+ add r9, r6
+_081347A4:
+ ldr r5, [sp, 0x14]
+ cmp r5, 0x4
+ ble _0813474C
+ mov r0, r9
+ cmp r0, 0
+ bne _081347C0
+ movs r0, 0
+ b _081347E0
+ .align 2, 0
+_081347B4: .4byte gSaveBlock2 + 0x14C
+_081347B8: .4byte gSaveBlock2
+_081347BC: .4byte gSaveBlock2 + 0x1EC
+_081347C0:
+ bl Random
+ ldr r4, _081347F0 @ =gSaveBlock2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r9
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ adds r0, 0x64
+ ldr r1, _081347F4 @ =0x00000564
+ adds r4, r1
+ strb r0, [r4]
+_081347DE:
+ movs r0, 0x1
+_081347E0:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081347F0: .4byte gSaveBlock2
+_081347F4: .4byte 0x00000564
+ thumb_func_end sub_81346F4
+
+ thumb_func_start sub_81347F8
+sub_81347F8: @ 81347F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r5, _08134838 @ =gSaveBlock2
+ ldr r1, _0813483C @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ bl sub_81346F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08134848
+ ldr r2, _08134840 @ =0x00000564
+ adds r4, r5, r2
+ ldrb r0, [r4]
+ bl sub_81349FC
+ lsls r0, r6, 1
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, r5, r0
+ ldr r1, _08134844 @ =0x00000569
+ adds r0, r1
+ ldrb r1, [r4]
+ b _081349DC
+ .align 2, 0
+_08134838: .4byte gSaveBlock2
+_0813483C: .4byte 0x00000554
+_08134840: .4byte 0x00000564
+_08134844: .4byte 0x00000569
+_08134848:
+ lsls r0, r6, 1
+ ldr r2, _081348D8 @ =0x0000055c
+ adds r1, r5, r2
+ adds r1, r0, r1
+ ldrh r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x7
+ bls _0813485A
+ b _0813495C
+_0813485A:
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r5, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x7
+ bne _081348E4
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r0, _081348DC @ =0x0000056a
+ adds r0, r6
+ mov r10, r0
+ mov r8, r5
+_08134876:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r2, r1, 2
+ adds r2, r1
+ ldr r1, _081348D8 @ =0x0000055c
+ adds r4, r6, r1
+ mov r3, r9
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x14
+ lsrs r2, 7
+ adds r2, r0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081348C8
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081348C8
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_081348BA:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081348C8
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081348BA
+_081348C8:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _081348E0 @ =gSaveBlock2
+ cmp r1, r0
+ bne _08134876
+ b _081349B6
+ .align 2, 0
+_081348D8: .4byte 0x0000055c
+_081348DC: .4byte 0x0000056a
+_081348E0: .4byte gSaveBlock2
+_081348E4:
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r2, _08134950 @ =0x0000056a
+ adds r2, r6
+ mov r10, r2
+ mov r8, r5
+_081348F2:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsrs r2, r0, 6
+ ldr r3, _08134954 @ =0x0000055c
+ adds r4, r6, r3
+ mov r1, r9
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08134942
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08134942
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_08134934:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _08134942
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08134934
+_08134942:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _08134958 @ =gSaveBlock2
+ cmp r1, r0
+ bne _081348F2
+ b _081349B6
+ .align 2, 0
+_08134950: .4byte 0x0000056a
+_08134954: .4byte 0x0000055c
+_08134958: .4byte gSaveBlock2
+_0813495C:
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ adds r6, r7, r0
+ ldr r3, _081349EC @ =0x0000056a
+ adds r3, r5
+ mov r8, r3
+ adds r5, r6, 0
+_0813496C:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ asrs r0, 8
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r6]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081349AC
+ mov r3, r8
+ ldrb r0, [r3]
+ ldr r4, _081349F0 @ =gSaveBlock2
+ cmp r0, r2
+ beq _081349AC
+ ldrh r0, [r5]
+ subs r3, r0, 0x1
+ ldr r0, _081349EC @ =0x0000056a
+ adds r4, r0
+_0813499E:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081349AC
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0813499E
+_081349AC:
+ ldrh r0, [r6]
+ subs r0, 0x1
+ ldr r4, _081349F0 @ =gSaveBlock2
+ cmp r1, r0
+ bne _0813496C
+_081349B6:
+ ldr r1, _081349F4 @ =0x00000564
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r2, _081349F4 @ =0x00000564
+ adds r5, r4, r2
+ ldrb r0, [r5]
+ bl sub_81349FC
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r4, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x6
+ bhi _081349DE
+ adds r0, r4, r0
+ ldr r1, _081349F8 @ =0x00000569
+ adds r0, r1
+ ldrb r1, [r5]
+_081349DC:
+ strb r1, [r0]
+_081349DE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081349EC: .4byte 0x0000056a
+_081349F0: .4byte gSaveBlock2
+_081349F4: .4byte 0x00000564
+_081349F8: .4byte 0x00000569
+ thumb_func_end sub_81347F8
+
+ thumb_func_start sub_81349FC
+sub_81349FC: @ 81349FC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, r2, 0
+ cmp r2, 0x63
+ bhi _08134A18
+ ldr r1, _08134A14 @ =gBattleTowerTrainers
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ b _08134A38
+ .align 2, 0
+_08134A14: .4byte gBattleTowerTrainers
+_08134A18:
+ cmp r1, 0xC7
+ bhi _08134A34
+ ldr r2, _08134A2C @ =gSaveBlock2
+ subs r1, 0x64
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ ldr r1, _08134A30 @ =0x0000014d
+ b _08134A38
+ .align 2, 0
+_08134A2C: .4byte gSaveBlock2
+_08134A30: .4byte 0x0000014d
+_08134A34:
+ ldr r0, _08134A5C @ =gSaveBlock2
+ ldr r1, _08134A60 @ =0x00000499
+_08134A38:
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0
+ ldr r3, _08134A64 @ =gUnknown_08405E60
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A54
+_08134A46:
+ adds r2, 0x1
+ cmp r2, 0x1D
+ bhi _08134A54
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A46
+_08134A54:
+ cmp r2, 0x1E
+ beq _08134A6C
+ ldr r0, _08134A68 @ =gUnknown_08405E92
+ b _08134A8A
+ .align 2, 0
+_08134A5C: .4byte gSaveBlock2
+_08134A60: .4byte 0x00000499
+_08134A64: .4byte gUnknown_08405E60
+_08134A68: .4byte gUnknown_08405E92
+_08134A6C:
+ movs r2, 0
+ ldr r3, _08134A98 @ =gUnknown_08405E7E
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A84
+_08134A76:
+ adds r2, 0x1
+ cmp r2, 0x13
+ bhi _08134A84
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A76
+_08134A84:
+ cmp r2, 0x14
+ beq _08134AA4
+ ldr r0, _08134A9C @ =gUnknown_08405EB0
+_08134A8A:
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r0, _08134AA0 @ =0x00004010
+ bl VarSet
+ b _08134AAC
+ .align 2, 0
+_08134A98: .4byte gUnknown_08405E7E
+_08134A9C: .4byte gUnknown_08405EB0
+_08134AA0: .4byte 0x00004010
+_08134AA4:
+ ldr r0, _08134AB0 @ =0x00004010
+ movs r1, 0x7
+ bl VarSet
+_08134AAC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134AB0: .4byte 0x00004010
+ thumb_func_end sub_81349FC
+
+ thumb_func_start sub_8134AB4
+sub_8134AB4: @ 8134AB4
+ push {lr}
+ movs r0, 0xC8
+ bl sub_81349FC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8134AB4
+
+ thumb_func_start sub_8134AC0
+sub_8134AC0: @ 8134AC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r7, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _08134B3C @ =gSaveBlock2
+ mov r12, r0
+ mov r1, r8
+ ldrb r1, [r1, 0xC]
+ str r1, [sp, 0x18]
+ movs r2, 0xAA
+ lsls r2, 1
+ add r2, r12
+ mov r10, r2
+ mov r9, r5
+_08134AE6:
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08134B40 @ =gSaveBlock2 + 0x158
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bne _08134B14
+ movs r0, 0xA4
+ muls r0, r5
+ ldr r1, _08134B40 @ =gSaveBlock2 + 0x158
+ adds r2, r0, r1
+ mov r4, r8
+ adds r4, 0xC
+_08134B02:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08134B14
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08134B02
+_08134B14:
+ cmp r3, 0x4
+ bne _08134B54
+ movs r6, 0
+ mov r2, r10
+ ldrb r0, [r2]
+ mov r3, r8
+ ldrb r3, [r3, 0x8]
+ cmp r0, r3
+ bne _08134B54
+ adds r1, r0, 0
+ movs r0, 0xA4
+ muls r0, r5
+ adds r0, 0x4
+ ldr r3, _08134B44 @ =gSaveBlock2 + 0x150
+ adds r2, r0, r3
+_08134B32:
+ cmp r1, 0xFF
+ bne _08134B48
+ movs r6, 0x7
+ b _08134B54
+ .align 2, 0
+_08134B3C: .4byte gSaveBlock2
+_08134B40: .4byte gSaveBlock2 + 0x158
+_08134B44: .4byte gSaveBlock2 + 0x150
+_08134B48:
+ adds r6, 0x1
+ cmp r6, 0x6
+ bgt _08134B54
+ ldrb r0, [r2]
+ cmp r0, r1
+ beq _08134B32
+_08134B54:
+ cmp r6, 0x7
+ beq _08134B64
+ movs r0, 0xA4
+ add r10, r0
+ add r9, r0
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08134AE6
+_08134B64:
+ cmp r5, 0x4
+ bgt _08134B76
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ b _08134B9E
+_08134B76:
+ movs r5, 0
+ movs r1, 0xA7
+ lsls r1, 1
+ add r1, r12
+ b _08134B88
+_08134B80:
+ adds r1, 0xA4
+ adds r5, 0x1
+ cmp r5, 0x4
+ bgt _08134BA8
+_08134B88:
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08134B80
+ cmp r5, 0x4
+ bgt _08134BA8
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r0, r2
+_08134B9E:
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+ b _08134C5E
+_08134BA8:
+ mov r2, sp
+ movs r3, 0xA7
+ lsls r3, 1
+ mov r1, r12
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ movs r1, 0
+ strh r0, [r2]
+ add r0, sp, 0xC
+ strh r1, [r0]
+ adds r7, 0x1
+ movs r5, 0x1
+ add r2, sp, 0xC
+ mov r9, r2
+ mov r10, r3
+_08134BC6:
+ movs r3, 0
+ adds r0, r5, 0x1
+ mov r12, r0
+ cmp r3, r7
+ bge _08134C0A
+ movs r1, 0xA4
+ adds r0, r5, 0
+ muls r0, r1
+ ldr r2, _08134BFC @ =gSaveBlock2
+ adds r0, r2
+ mov r1, r10
+ adds r4, r0, r1
+ mov r6, sp
+_08134BE0:
+ lsls r0, r3, 1
+ add r0, sp
+ ldrh r2, [r4]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bcs _08134C00
+ movs r3, 0
+ movs r7, 0x1
+ strh r2, [r6]
+ mov r2, r9
+ strh r5, [r2]
+ b _08134C0A
+ .align 2, 0
+_08134BFC: .4byte gSaveBlock2
+_08134C00:
+ cmp r1, r0
+ bhi _08134C0A
+ adds r3, 0x1
+ cmp r3, r7
+ blt _08134BE0
+_08134C0A:
+ cmp r3, r7
+ bne _08134C2A
+ lsls r1, r7, 1
+ mov r3, sp
+ adds r2, r3, r1
+ movs r3, 0xA4
+ adds r0, r5, 0
+ muls r0, r3
+ ldr r3, _08134C70 @ =gSaveBlock2
+ adds r0, r3
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r2]
+ add r1, r9
+ strh r5, [r1]
+ adds r7, 0x1
+_08134C2A:
+ mov r5, r12
+ cmp r5, 0x4
+ ble _08134BC6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ bl __modsi3
+ adds r5, r0, 0
+ ldr r2, _08134C70 @ =gSaveBlock2
+ lsls r0, r5, 1
+ add r0, sp
+ adds r0, 0xC
+ ldrh r1, [r0]
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+_08134C5E:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134C70: .4byte gSaveBlock2
+ thumb_func_end sub_8134AC0
+
+ thumb_func_start get_trainer_class_pic_index
+get_trainer_class_pic_index: @ 8134C74
+ push {lr}
+ ldr r3, _08134C90 @ =gSaveBlock2
+ ldr r0, _08134C94 @ =0x00000564
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134CA0
+ ldr r1, _08134C98 @ =gTrainerClassToPicIndex
+ ldr r2, _08134C9C @ =0x00000499
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134CD2
+ .align 2, 0
+_08134C90: .4byte gSaveBlock2
+_08134C94: .4byte 0x00000564
+_08134C98: .4byte gTrainerClassToPicIndex
+_08134C9C: .4byte 0x00000499
+_08134CA0:
+ cmp r0, 0x63
+ bls _08134CC0
+ ldr r2, _08134CBC @ =gTrainerClassToPicIndex
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+ b _08134CD2
+ .align 2, 0
+_08134CBC: .4byte gTrainerClassToPicIndex
+_08134CC0:
+ ldr r3, _08134CD8 @ =gTrainerClassToPicIndex
+ ldr r2, _08134CDC @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+_08134CD2:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134CD8: .4byte gTrainerClassToPicIndex
+_08134CDC: .4byte gBattleTowerTrainers
+ thumb_func_end get_trainer_class_pic_index
+
+ thumb_func_start get_trainer_class_name_index
+get_trainer_class_name_index: @ 8134CE0
+ push {lr}
+ ldr r3, _08134CFC @ =gSaveBlock2
+ ldr r0, _08134D00 @ =0x00000564
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D0C
+ ldr r1, _08134D04 @ =gTrainerClassToNameIndex
+ ldr r2, _08134D08 @ =0x00000499
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134D40
+ .align 2, 0
+_08134CFC: .4byte gSaveBlock2
+_08134D00: .4byte 0x00000564
+_08134D04: .4byte gTrainerClassToNameIndex
+_08134D08: .4byte 0x00000499
+_08134D0C:
+ cmp r0, 0x63
+ bhi _08134D2C
+ ldr r3, _08134D24 @ =gTrainerClassToNameIndex
+ ldr r2, _08134D28 @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ b _08134D40
+ .align 2, 0
+_08134D24: .4byte gTrainerClassToNameIndex
+_08134D28: .4byte gBattleTowerTrainers
+_08134D2C:
+ ldr r2, _08134D48 @ =gTrainerClassToNameIndex
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+_08134D40:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134D48: .4byte gTrainerClassToNameIndex
+ thumb_func_end get_trainer_class_name_index
+
+ thumb_func_start get_trainer_name
+get_trainer_name: @ 8134D4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _08134D74 @ =gSaveBlock2
+ ldr r0, _08134D78 @ =0x00000564
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D80
+ movs r3, 0
+ ldr r5, _08134D7C @ =0x0000049c
+ adds r2, r5
+_08134D62:
+ adds r0, r4, r3
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D62
+ b _08134DC8
+ .align 2, 0
+_08134D74: .4byte gSaveBlock2
+_08134D78: .4byte 0x00000564
+_08134D7C: .4byte 0x0000049c
+_08134D80:
+ cmp r0, 0x63
+ bhi _08134DA8
+ movs r3, 0
+ ldr r2, _08134DA4 @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1
+ adds r2, r0, r2
+_08134D94:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D94
+ b _08134DC8
+ .align 2, 0
+_08134DA4: .4byte gBattleTowerTrainers
+_08134DA8:
+ movs r3, 0
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r1, r0
+ movs r5, 0xA8
+ lsls r5, 1
+ adds r0, r2, r5
+ adds r2, r1, r0
+_08134DBA:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134DBA
+_08134DC8:
+ adds r1, r4, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end get_trainer_name
+
+ thumb_func_start sub_8134DD4
+sub_8134DD4: @ 8134DD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r1, 0x3C
+ str r1, [sp, 0x1C]
+ add r4, sp, 0xC
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl ZeroEnemyPartyMons
+ ldr r1, _08134E04 @ =gSaveBlock2
+ ldr r2, _08134E08 @ =0x00000564
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _08134E0C
+ movs r3, 0x6
+ str r3, [sp, 0x14]
+ b _08134ED8
+ .align 2, 0
+_08134E04: .4byte gSaveBlock2
+_08134E08: .4byte 0x00000564
+_08134E0C:
+ cmp r0, 0x1D
+ bhi _08134E1A
+ movs r0, 0x9
+ str r0, [sp, 0x14]
+ movs r1, 0x1E
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E1A:
+ cmp r0, 0x27
+ bhi _08134E28
+ movs r2, 0xC
+ str r2, [sp, 0x14]
+ movs r3, 0x3C
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E28:
+ cmp r0, 0x31
+ bhi _08134E36
+ movs r0, 0xF
+ str r0, [sp, 0x14]
+ movs r1, 0x5A
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E36:
+ cmp r0, 0x3B
+ bhi _08134E44
+ movs r2, 0x12
+ str r2, [sp, 0x14]
+ movs r3, 0x78
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E44:
+ cmp r0, 0x45
+ bhi _08134E52
+ movs r0, 0x15
+ str r0, [sp, 0x14]
+ movs r1, 0x96
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E52:
+ cmp r0, 0x4F
+ bhi _08134E60
+ movs r2, 0x1F
+ str r2, [sp, 0x14]
+ movs r3, 0xB4
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E60:
+ cmp r0, 0x63
+ bhi _08134E72
+ movs r0, 0x1F
+ str r0, [sp, 0x14]
+ movs r1, 0xC8
+ str r1, [sp, 0x18]
+ movs r2, 0x64
+ str r2, [sp, 0x1C]
+ b _08134ED8
+_08134E72:
+ cmp r0, 0xC8
+ bne _08134E9C
+ movs r6, 0
+_08134E78:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134E94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r6
+ ldr r2, _08134E98 @ =gSaveBlock2 + 0x4CC
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134E78
+ b _08135082
+ .align 2, 0
+_08134E94: .4byte gEnemyParty
+_08134E98: .4byte gSaveBlock2 + 0x4CC
+_08134E9C:
+ movs r6, 0
+ adds r4, r1, 0
+ ldr r3, _08134ECC @ =0xffffc158
+ adds r5, r4, r3
+_08134EA4:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134ED0 @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _08134ED4 @ =0x00000564
+ adds r1, r4, r2
+ ldrb r2, [r1]
+ movs r1, 0xA4
+ muls r1, r2
+ adds r1, r5
+ movs r2, 0x2C
+ muls r2, r6
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134EA4
+ b _08135082
+ .align 2, 0
+_08134ECC: .4byte 0xffffc158
+_08134ED0: .4byte gEnemyParty
+_08134ED4: .4byte 0x00000564
+_08134ED8:
+ ldr r2, _08134EF4 @ =gSaveBlock2
+ ldr r3, _08134EF8 @ =0x00000554
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _08134F00
+ ldr r0, _08134EFC @ =gBattleTowerLevel100Mons
+ mov r10, r0
+ movs r2, 0x64
+ str r2, [sp, 0x10]
+ b _08134F08
+ .align 2, 0
+_08134EF4: .4byte gSaveBlock2
+_08134EF8: .4byte 0x00000554
+_08134EFC: .4byte gBattleTowerLevel100Mons
+_08134F00:
+ ldr r3, _08134F54 @ =gBattleTowerLevel50Mons
+ mov r10, r3
+ movs r0, 0x32
+ str r0, [sp, 0x10]
+_08134F08:
+ ldr r2, _08134F58 @ =gBattleTowerTrainers
+ ldr r3, _08134F5C @ =0x00000564
+ adds r0, r1, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x9]
+ str r0, [sp, 0x20]
+ movs r6, 0
+_08134F1E:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r2, [sp, 0x1C]
+ adds r0, r1, 0
+ muls r0, r2
+ asrs r0, 8
+ ldr r3, [sp, 0x18]
+ adds r7, r0, r3
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ beq _08134F48
+ lsls r0, r7, 4
+ add r0, r10
+ ldrb r0, [r0, 0x3]
+ ldr r1, [sp, 0x20]
+ ands r0, r1
+ cmp r0, r1
+ beq _08134F48
+ b _0813507C
+_08134F48:
+ movs r5, 0
+ lsls r0, r7, 4
+ mov r2, r10
+ adds r3, r0, r2
+ movs r4, 0
+ b _08134F64
+ .align 2, 0
+_08134F54: .4byte gBattleTowerLevel50Mons
+_08134F58: .4byte gBattleTowerTrainers
+_08134F5C: .4byte 0x00000564
+_08134F60:
+ adds r4, 0x64
+ adds r5, 0x1
+_08134F64:
+ cmp r5, r6
+ bge _08134F7E
+ ldr r1, _08135094 @ =gEnemyParty
+ adds r0, r4, r1
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ ldrh r2, [r3]
+ cmp r0, r2
+ bne _08134F60
+_08134F7E:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FCC
+ ldr r3, _08135098 @ =gBattleTowerHeldItems
+ mov r9, r3
+ lsls r0, r7, 4
+ add r0, r10
+ mov r8, r0
+ movs r3, 0
+_08134F94:
+ ldr r0, _08135094 @ =gEnemyParty
+ adds r4, r3, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ cmp r0, 0
+ beq _08134FC4
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldrb r1, [r2, 0x2]
+ lsls r1, 1
+ add r1, r9
+ ldr r3, [sp, 0x24]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08134FCC
+_08134FC4:
+ adds r3, 0x64
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08134F94
+_08134FCC:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FEE
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08134FEE
+ add r1, sp, 0x4
+_08134FE0:
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08134FEE
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _08134FE0
+_08134FEE:
+ cmp r5, r6
+ bne _0813507C
+ lsls r0, r6, 1
+ add r0, sp
+ adds r0, 0x4
+ strh r7, [r0]
+ movs r3, 0x64
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r1, _08135094 @ =gEnemyParty
+ adds r0, r1
+ lsls r4, r7, 4
+ mov r3, r10
+ adds r2, r4, r3
+ ldrh r1, [r2]
+ ldrb r2, [r2, 0xC]
+ str r2, [sp]
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl CreateMonWithEVSpread
+ movs r5, 0
+ adds r0, r6, 0x1
+ mov r9, r0
+ mov r8, r4
+ movs r0, 0x64
+ adds r7, r6, 0
+ muls r7, r0
+ mov r0, r10
+ adds r0, 0x4
+ adds r4, r0
+ ldr r3, _08135094 @ =gEnemyParty
+_0813502E:
+ ldrh r1, [r4]
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r7, r3
+ str r3, [sp, 0x24]
+ bl SetMonMoveSlot
+ ldrh r0, [r4]
+ ldr r3, [sp, 0x24]
+ cmp r0, 0xDA
+ bne _0813504A
+ movs r0, 0
+ mov r1, sp
+ strb r0, [r1, 0xC]
+_0813504A:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0813502E
+ movs r2, 0x64
+ adds r4, r6, 0
+ muls r4, r2
+ ldr r3, _08135094 @ =gEnemyParty
+ adds r4, r3
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ mov r0, r8
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ lsls r2, 1
+ ldr r0, _08135098 @ =gBattleTowerHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r6, r9
+_0813507C:
+ cmp r6, 0x3
+ beq _08135082
+ b _08134F1E
+_08135082:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135094: .4byte gEnemyParty
+_08135098: .4byte gBattleTowerHeldItems
+ thumb_func_end sub_8134DD4
+
+ thumb_func_start CalcBattleTowerBanlistSeenCount
+CalcBattleTowerBanlistSeenCount: @ 813509C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r2, _081350D8 @ =gBattleTowerBanlist
+ ldrh r0, [r2]
+ ldr r1, _081350DC @ =0x0000ffff
+ cmp r0, r1
+ beq _081350CE
+ adds r6, r1, 0
+ adds r4, r2, 0
+_081350AE:
+ ldrh r0, [r4]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetNationalPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _081350C6
+ adds r5, 0x1
+_081350C6:
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r6
+ bne _081350AE
+_081350CE:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081350D8: .4byte gBattleTowerBanlist
+_081350DC: .4byte 0x0000ffff
+ thumb_func_end CalcBattleTowerBanlistSeenCount
+
+ thumb_func_start AppendBattleTowerBannedSpeciesName
+AppendBattleTowerBannedSpeciesName: @ 81350E0
+ 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 GetNationalPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _081351E6
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ subs r0, r4, 0x1
+ cmp r0, 0xA
+ bhi _081351B0
+ lsls r0, 2
+ ldr r1, _08135118 @ =_0813511C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08135118: .4byte _0813511C
+ .align 2, 0
+_0813511C:
+ .4byte _08135148
+ .4byte _08135178
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+_08135148:
+ cmp r5, r4
+ bne _08135160
+ ldr r0, _08135158 @ =gStringVar1
+ ldr r1, _0813515C @ =gUnknown_08400E23
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135158: .4byte gStringVar1
+_0813515C: .4byte gUnknown_08400E23
+_08135160:
+ cmp r5, r4
+ ble _081351D8
+ ldr r0, _08135170 @ =gStringVar1
+ ldr r1, _08135174 @ =gUnknown_08400E29
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135170: .4byte gStringVar1
+_08135174: .4byte gUnknown_08400E29
+_08135178:
+ cmp r4, r5
+ bne _08135190
+ ldr r0, _08135188 @ =gStringVar1
+ ldr r1, _0813518C @ =gUnknown_08400E23
+ bl StringAppend
+ b _08135198
+ .align 2, 0
+_08135188: .4byte gStringVar1
+_0813518C: .4byte gUnknown_08400E23
+_08135190:
+ ldr r0, _081351A4 @ =gStringVar1
+ ldr r1, _081351A8 @ =gUnknown_08400E29
+ bl StringAppend
+_08135198:
+ ldr r0, _081351A4 @ =gStringVar1
+ ldr r1, _081351AC @ =gUnknown_08400E30
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_081351A4: .4byte gStringVar1
+_081351A8: .4byte gUnknown_08400E29
+_081351AC: .4byte gUnknown_08400E30
+_081351B0:
+ cmp r4, r5
+ bne _081351C8
+ ldr r0, _081351C0 @ =gStringVar1
+ ldr r1, _081351C4 @ =gUnknown_08400E23
+ bl StringAppend
+ b _081351D0
+ .align 2, 0
+_081351C0: .4byte gStringVar1
+_081351C4: .4byte gUnknown_08400E23
+_081351C8:
+ ldr r0, _081351F0 @ =gStringVar1
+ ldr r1, _081351F4 @ =gUnknown_08400E29
+ bl StringAppend
+_081351D0:
+ ldr r0, _081351F0 @ =gStringVar1
+ ldr r1, _081351F8 @ =gUnknown_08400E2E
+ bl StringAppend
+_081351D8:
+ ldr r0, _081351F0 @ =gStringVar1
+ movs r1, 0xB
+ muls r1, r6
+ ldr r2, _081351FC @ =gSpeciesNames
+ adds r1, r2
+ bl StringAppend
+_081351E6:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081351F0: .4byte gStringVar1
+_081351F4: .4byte gUnknown_08400E29
+_081351F8: .4byte gUnknown_08400E2E
+_081351FC: .4byte gSpeciesNames
+ thumb_func_end AppendBattleTowerBannedSpeciesName
+
+ thumb_func_start CheckMonBattleTowerBanlist
+CheckMonBattleTowerBanlist: @ 8135200
+ 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 _081352CE
+ cmp r4, 0
+ beq _081352CE
+ ldr r0, _081352DC @ =gBattleTowerBanlist
+ ldrh r1, [r0]
+ ldr r5, _081352E0 @ =0x0000ffff
+ adds r3, r0, 0
+ cmp r1, r5
+ beq _08135264
+ cmp r1, r4
+ beq _08135258
+ adds r1, r3, 0
+_0813524A:
+ adds r1, 0x2
+ adds r2, 0x1
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _08135264
+ cmp r0, r4
+ bne _0813524A
+_08135258:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ ldr r0, _081352E0 @ =0x0000ffff
+ cmp r1, r0
+ bne _081352CE
+_08135264:
+ mov r0, r12
+ cmp r0, 0
+ bne _08135270
+ mov r1, r8
+ cmp r1, 0x32
+ bhi _081352CE
+_08135270:
+ movs r2, 0
+ ldrb r3, [r7]
+ cmp r2, r3
+ bge _08135290
+ mov r1, r9
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _08135290
+ adds r5, r3, 0
+_08135282:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _08135290
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08135282
+_08135290:
+ cmp r2, r3
+ bne _081352CE
+ cmp r6, 0
+ beq _081352BA
+ movs r2, 0
+ cmp r2, r3
+ bge _081352B6
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, r6
+ beq _081352B6
+ adds r5, r3, 0
+_081352A8:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081352B6
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _081352A8
+_081352B6:
+ cmp r2, r3
+ bne _081352CE
+_081352BA:
+ 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]
+_081352CE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081352DC: .4byte gBattleTowerBanlist
+_081352E0: .4byte 0x0000ffff
+ thumb_func_end CheckMonBattleTowerBanlist
+
+ thumb_func_start CheckPartyBattleTowerBanlist
+CheckPartyBattleTowerBanlist: @ 81352E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ add r1, sp, 0x28
+ movs r0, 0
+ strb r0, [r1]
+ movs r7, 0
+ mov r9, r1
+ add r0, sp, 0x1C
+ mov r10, r0
+_081352FE:
+ movs r0, 0x64
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r0, _081353C4 @ =gPlayerParty
+ adds r5, r0
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r5, _081353C8 @ =gScriptResult
+ ldrb r3, [r5]
+ str r4, [sp]
+ add r0, sp, 0x10
+ str r0, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r6, 0
+ bl CheckMonBattleTowerBanlist
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _081352FE
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08135420
+ ldr r1, _081353CC @ =gStringVar1
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _081353D0 @ =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+ bl CalcBattleTowerBanlistSeenCount
+ adds r6, r0, 0
+ ldr r2, _081353D4 @ =gBattleTowerBanlist
+ ldrh r0, [r2]
+ ldr r1, _081353D8 @ =0x0000ffff
+ cmp r0, r1
+ beq _081353A8
+ mov r5, r9
+ adds r7, r1, 0
+ adds r4, r2, 0
+_08135394:
+ ldrh r0, [r4]
+ ldrb r1, [r5]
+ adds r2, r6, 0
+ bl AppendBattleTowerBannedSpeciesName
+ strb r0, [r5]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _08135394
+_081353A8:
+ mov r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _081353E4
+ ldr r4, _081353CC @ =gStringVar1
+ ldr r1, _081353DC @ =gUnknown_08400E2C
+ adds r0, r4, 0
+ bl StringAppend
+ ldr r1, _081353E0 @ =gUnknown_08400E32
+ adds r0, r4, 0
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_081353C4: .4byte gPlayerParty
+_081353C8: .4byte gScriptResult
+_081353CC: .4byte gStringVar1
+_081353D0: .4byte gSpecialVar_0x8004
+_081353D4: .4byte gBattleTowerBanlist
+_081353D8: .4byte 0x0000ffff
+_081353DC: .4byte gUnknown_08400E2C
+_081353E0: .4byte gUnknown_08400E32
+_081353E4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08135400
+ ldr r0, _081353F8 @ =gStringVar1
+ ldr r1, _081353FC @ =gUnknown_08400E2E
+ bl StringAppend
+ b _08135408
+ .align 2, 0
+_081353F8: .4byte gStringVar1
+_081353FC: .4byte gUnknown_08400E2E
+_08135400:
+ ldr r0, _08135414 @ =gStringVar1
+ ldr r1, _08135418 @ =gUnknown_08400E2C
+ bl StringAppend
+_08135408:
+ ldr r0, _08135414 @ =gStringVar1
+ ldr r1, _0813541C @ =gUnknown_08400E36
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_08135414: .4byte gStringVar1
+_08135418: .4byte gUnknown_08400E2C
+_0813541C: .4byte gUnknown_08400E36
+_08135420:
+ ldr r1, _08135450 @ =gSpecialVar_0x8004
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _08135454 @ =gSaveBlock2
+ ldrb r0, [r5]
+ ldr r1, _08135458 @ =0x00000554
+ adds r2, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0813543E:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135450: .4byte gSpecialVar_0x8004
+_08135454: .4byte gSaveBlock2
+_08135458: .4byte 0x00000554
+ thumb_func_end CheckPartyBattleTowerBanlist
+
+ thumb_func_start sub_813545C
+sub_813545C: @ 813545C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08135470 @ =gStringVar4
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80EB544
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135470: .4byte gStringVar4
+ thumb_func_end sub_813545C
+
+ thumb_func_start sub_8135474
+sub_8135474: @ 8135474
+ push {lr}
+ ldr r2, _08135490 @ =gSaveBlock2
+ ldr r0, _08135494 @ =0x00000564
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08135498
+ movs r1, 0x95
+ lsls r1, 3
+ adds r0, r2, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_08135490: .4byte gSaveBlock2
+_08135494: .4byte 0x00000564
+_08135498:
+ cmp r0, 0x63
+ bhi _081354B4
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081354B0 @ =gBattleTowerTrainers + 0xC
+ adds r0, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_081354B0: .4byte gBattleTowerTrainers + 0xC
+_081354B4:
+ ldrb r1, [r1]
+ movs r0, 0xA4
+ muls r0, r1
+ ldr r3, _081354C8 @ =0xffffc14c
+ adds r1, r2, r3
+ adds r0, r1
+ bl sub_813545C
+_081354C4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081354C8: .4byte 0xffffc14c
+ thumb_func_end sub_8135474
+
+ thumb_func_start sub_81354CC
+sub_81354CC: @ 81354CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _081354E4 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081354E8
+ cmp r0, 0x1
+ ble _08135520
+ cmp r0, 0x2
+ beq _0813551C
+ b _08135520
+ .align 2, 0
+_081354E4: .4byte gSpecialVar_0x8004
+_081354E8:
+ movs r5, 0
+_081354EA:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08135514 @ =gSaveBlock1 + 0x238
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _08135518 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081354EA
+ b _08135520
+ .align 2, 0
+_08135514: .4byte gSaveBlock1 + 0x238
+_08135518: .4byte gPlayerParty
+_0813551C:
+ bl sub_81360D0
+_08135520:
+ ldr r0, _08135530 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_81354CC
+
+ thumb_func_start sub_8135534
+sub_8135534: @ 8135534
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_811AAE8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08135558
+ ldr r0, _08135560 @ =gMain
+ ldr r1, _08135564 @ =sub_81354CC
+ str r1, [r0, 0x8]
+ ldr r0, _08135568 @ =sub_800E7C4
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08135558:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135560: .4byte gMain
+_08135564: .4byte sub_81354CC
+_08135568: .4byte sub_800E7C4
+ thumb_func_end sub_8135534
+
+ thumb_func_start sub_813556C
+sub_813556C: @ 813556C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08135584 @ =gSpecialVar_0x8004
+ ldrh r2, [r0]
+ cmp r2, 0x1
+ beq _081355AC
+ cmp r2, 0x1
+ bgt _08135588
+ cmp r2, 0
+ beq _0813558E
+ b _08135648
+ .align 2, 0
+_08135584: .4byte gSpecialVar_0x8004
+_08135588:
+ cmp r2, 0x2
+ beq _08135600
+ b _08135648
+_0813558E:
+ ldr r1, _081355A4 @ =gBattleTypeFlags
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _081355A8 @ =gTrainerBattleOpponent
+ strh r2, [r0]
+ bl sub_8134DD4
+ b _081355D6
+ .align 2, 0
+_081355A4: .4byte gBattleTypeFlags
+_081355A8: .4byte gTrainerBattleOpponent
+_081355AC:
+ movs r5, 0
+_081355AE:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _081355F4 @ =gPlayerParty
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _081355F8 @ =gSaveBlock1 + 0x238
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081355AE
+_081355D6:
+ ldr r0, _081355FC @ =sub_8135534
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl GetBattleTowerBattleTransition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+ b _08135648
+ .align 2, 0
+_081355F4: .4byte gPlayerParty
+_081355F8: .4byte gSaveBlock1 + 0x238
+_081355FC: .4byte sub_8135534
+_08135600:
+ bl ZeroEnemyPartyMons
+ movs r5, 0
+_08135606:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08135650 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r5
+ ldr r2, _08135654 @ =gSaveBlock2 + 0x4CC
+ adds r1, r2
+ bl sub_803ADE8
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135606
+ ldr r1, _08135658 @ =gBattleTypeFlags
+ ldr r2, _0813565C @ =0x00000808
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08135660 @ =gTrainerBattleOpponent
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08135664 @ =sub_8135534
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl GetBattleTowerBattleTransition
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+_08135648:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135650: .4byte gEnemyParty
+_08135654: .4byte gSaveBlock2 + 0x4CC
+_08135658: .4byte gBattleTypeFlags
+_0813565C: .4byte 0x00000808
+_08135660: .4byte gTrainerBattleOpponent
+_08135664: .4byte sub_8135534
+ thumb_func_end sub_813556C
+
+ thumb_func_start sub_8135668
+sub_8135668: @ 8135668
+ push {r4,r5,lr}
+ ldr r1, _0813568C @ =gSaveBlock2
+ ldr r2, _08135690 @ =0x00000554
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _08135694 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xE
+ bls _08135682
+ b _0813589A
+_08135682:
+ lsls r0, 2
+ ldr r1, _08135698 @ =_0813569C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813568C: .4byte gSaveBlock2
+_08135690: .4byte 0x00000554
+_08135694: .4byte gSpecialVar_0x8004
+_08135698: .4byte _0813569C
+ .align 2, 0
+_0813569C:
+ .4byte _081356D8
+ .4byte _08135700
+ .4byte _0813571C
+ .4byte _08135726
+ .4byte _08135740
+ .4byte _08135754
+ .4byte _08135774
+ .4byte _081357D0
+ .4byte _081357FC
+ .4byte _0813589A
+ .4byte _08135820
+ .4byte _08135834
+ .4byte _0813584C
+ .4byte _0813586C
+ .4byte _08135888
+_081356D8:
+ ldr r0, _081356F0 @ =0x02000000
+ ldr r3, _081356F4 @ =0x00000556
+ adds r1, r5, r3
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ ldr r3, _081356F8 @ =0x000160fb
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, _081356FC @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ b _08135898
+ .align 2, 0
+_081356F0: .4byte 0x02000000
+_081356F4: .4byte 0x00000556
+_081356F8: .4byte 0x000160fb
+_081356FC: .4byte gSpecialVar_0x8005
+_08135700:
+ ldr r0, _08135714 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ ldr r1, _08135718 @ =0x00000554
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ b _08135810
+ .align 2, 0
+_08135714: .4byte gSpecialVar_0x8005
+_08135718: .4byte 0x00000554
+_0813571C:
+ lsls r1, r4, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0813572C
+_08135726:
+ lsls r1, r4, 1
+ ldr r3, _08135738 @ =0x0000055c
+ adds r0, r5, r3
+_0813572C:
+ adds r1, r0
+ ldr r0, _0813573C @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_08135738: .4byte 0x0000055c
+_0813573C: .4byte gSpecialVar_0x8005
+_08135740:
+ ldr r0, _0813574C @ =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ ldr r2, _08135750 @ =0x00000564
+ adds r0, r5, r2
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_0813574C: .4byte gSpecialVar_0x8005
+_08135750: .4byte 0x00000564
+_08135754:
+ movs r2, 0
+ ldr r4, _0813576C @ =gSaveBlock2 + 0x565
+ ldr r3, _08135770 @ =gSelectedOrderFromParty
+_0813575A:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _0813575A
+ b _0813589A
+ .align 2, 0
+_0813576C: .4byte gSaveBlock2 + 0x565
+_08135770: .4byte gSelectedOrderFromParty
+_08135774:
+ ldr r3, _081357C0 @ =0x00000564
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xC8
+ bne _08135788
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r5, r1
+ bl sub_81360AC
+_08135788:
+ movs r3, 0xAE
+ lsls r3, 3
+ adds r2, r5, r3
+ ldrh r1, [r2]
+ ldr r0, _081357C4 @ =0x0000270e
+ cmp r1, r0
+ bhi _0813579A
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_0813579A:
+ lsls r4, 1
+ movs r1, 0xAB
+ lsls r1, 3
+ adds r0, r5, r1
+ adds r4, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ bl sub_8135A3C
+ ldr r1, _081357C8 @ =gScriptResult
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r1, _081357CC @ =gStringVar1
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ b _0813589A
+ .align 2, 0
+_081357C0: .4byte 0x00000564
+_081357C4: .4byte 0x0000270e
+_081357C8: .4byte gScriptResult
+_081357CC: .4byte gStringVar1
+_081357D0:
+ lsls r0, r4, 1
+ ldr r2, _081357F0 @ =0x0000055c
+ adds r1, r5, r2
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _081357F4 @ =0x00000595
+ cmp r1, r0
+ bhi _081357E4
+ adds r0, r1, 0x1
+ strh r0, [r4]
+_081357E4:
+ bl sub_8135A3C
+ ldr r1, _081357F8 @ =gScriptResult
+ ldrh r0, [r4]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_081357F0: .4byte 0x0000055c
+_081357F4: .4byte 0x00000595
+_081357F8: .4byte gScriptResult
+_081357FC:
+ ldr r0, _08135818 @ =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ ldr r1, _0813581C @ =0x00000554
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+_08135810:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _0813589A
+ .align 2, 0
+_08135818: .4byte gSpecialVar_0x8005
+_0813581C: .4byte 0x00000554
+_08135820:
+ ldr r2, _08135830 @ =0x00000572
+ adds r0, r5, r2
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl SetGameStat
+ b _0813589A
+ .align 2, 0
+_08135830: .4byte 0x00000572
+_08135834:
+ ldr r3, _08135848 @ =0x00000556
+ adds r0, r5, r3
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0813589A
+ adds r0, r4, 0
+ bl sub_813461C
+ b _0813589A
+ .align 2, 0
+_08135848: .4byte 0x00000556
+_0813584C:
+ ldr r1, _08135860 @ =0x00000556
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldr r1, _08135864 @ =0x02000000
+ ldr r2, _08135868 @ =0x000160fb
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_08135860: .4byte 0x00000556
+_08135864: .4byte 0x02000000
+_08135868: .4byte 0x000160fb
+_0813586C:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _08135880 @ =gSaveBlock2
+ lsls r2, r4, 1
+ ldr r3, _08135884 @ =0x00000574
+ adds r1, r3
+ adds r2, r1
+ strh r0, [r2]
+ b _0813589A
+ .align 2, 0
+_08135880: .4byte gSaveBlock2
+_08135884: .4byte 0x00000574
+_08135888:
+ ldr r1, _081358A0 @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r5, r2
+_08135898:
+ strb r0, [r1]
+_0813589A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081358A0: .4byte 0x00000554
+ thumb_func_end sub_8135668
+
+ thumb_func_start sub_81358A4
+sub_81358A4: @ 81358A4
+ push {r4,lr}
+ ldr r1, _081358C8 @ =gSaveBlock2
+ ldr r2, _081358CC @ =0x00000554
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _081358D0 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xE
+ bls _081358BE
+ b _08135A0A
+_081358BE:
+ lsls r0, 2
+ ldr r1, _081358D4 @ =_081358D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081358C8: .4byte gSaveBlock2
+_081358CC: .4byte 0x00000554
+_081358D0: .4byte gSpecialVar_0x8004
+_081358D4: .4byte _081358D8
+ .align 2, 0
+_081358D8:
+ .4byte _08135914
+ .4byte _08135928
+ .4byte _0813593C
+ .4byte _0813594C
+ .4byte _08135964
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135978
+ .4byte _08135990
+ .4byte _081359A0
+ .4byte _081359B4
+ .4byte _081359BC
+ .4byte _081359DC
+ .4byte _081359F8
+_08135914:
+ ldr r0, _08135920 @ =gScriptResult
+ ldr r2, _08135924 @ =0x00000556
+ adds r1, r3, r2
+ adds r1, r4, r1
+ b _0813596A
+ .align 2, 0
+_08135920: .4byte gScriptResult
+_08135924: .4byte 0x00000556
+_08135928:
+ ldr r1, _08135934 @ =gScriptResult
+ ldr r4, _08135938 @ =0x00000554
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ b _08135982
+ .align 2, 0
+_08135934: .4byte gScriptResult
+_08135938: .4byte 0x00000554
+_0813593C:
+ ldr r2, _08135948 @ =gScriptResult
+ lsls r0, r4, 1
+ movs r4, 0xAB
+ lsls r4, 3
+ b _08135952
+ .align 2, 0
+_08135948: .4byte gScriptResult
+_0813594C:
+ ldr r2, _0813595C @ =gScriptResult
+ lsls r0, r4, 1
+ ldr r4, _08135960 @ =0x0000055c
+_08135952:
+ adds r1, r3, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_0813595C: .4byte gScriptResult
+_08135960: .4byte 0x0000055c
+_08135964:
+ ldr r0, _08135970 @ =gScriptResult
+ ldr r2, _08135974 @ =0x00000564
+ adds r1, r3, r2
+_0813596A:
+ ldrb r1, [r1]
+ strh r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_08135970: .4byte gScriptResult
+_08135974: .4byte 0x00000564
+_08135978:
+ ldr r1, _08135988 @ =gScriptResult
+ ldr r4, _0813598C @ =0x00000554
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+_08135982:
+ lsrs r0, 31
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_08135988: .4byte gScriptResult
+_0813598C: .4byte 0x00000554
+_08135990:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _0813599C @ =gScriptResult
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_0813599C: .4byte gScriptResult
+_081359A0:
+ ldr r1, _081359B0 @ =0x00000572
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl SetGameStat
+ b _08135A0A
+ .align 2, 0
+_081359B0: .4byte 0x00000572
+_081359B4:
+ adds r0, r4, 0
+ bl sub_813461C
+ b _08135A0A
+_081359BC:
+ ldr r2, _081359D0 @ =0x00000556
+ adds r0, r3, r2
+ adds r0, r4, r0
+ ldr r1, _081359D4 @ =0x02000000
+ ldr r3, _081359D8 @ =0x000160fb
+ adds r1, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_081359D0: .4byte 0x00000556
+_081359D4: .4byte 0x02000000
+_081359D8: .4byte 0x000160fb
+_081359DC:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _081359F0 @ =gSaveBlock2
+ lsls r2, r4, 1
+ ldr r4, _081359F4 @ =0x00000574
+ adds r1, r4
+ adds r2, r1
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_081359F0: .4byte gSaveBlock2
+_081359F4: .4byte 0x00000574
+_081359F8:
+ ldr r1, _08135A10 @ =0x00000554
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r3, r2
+ strb r0, [r1]
+_08135A0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A10: .4byte 0x00000554
+ thumb_func_end sub_81358A4
+
+ thumb_func_start sub_8135A14
+sub_8135A14: @ 8135A14
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _08135A34 @ =gSelectedOrderFromParty
+ ldr r3, _08135A38 @ =gSaveBlock2 + 0x565
+_08135A1C:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08135A1C
+ bl ReducePlayerPartyToThree
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A34: .4byte gSelectedOrderFromParty
+_08135A38: .4byte gSaveBlock2 + 0x565
+ thumb_func_end sub_8135A14
+
+ thumb_func_start sub_8135A3C
+sub_8135A3C: @ 8135A3C
+ push {r4-r6,lr}
+ ldr r6, _08135A84 @ =gSaveBlock2
+ ldr r1, _08135A88 @ =0x00000554
+ adds r0, r6, r1
+ ldrb r4, [r0]
+ lsls r4, 31
+ lsrs r4, 31
+ adds r0, r4, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r4, 1
+ movs r3, 0xAC
+ lsls r3, 3
+ adds r2, r6, r3
+ adds r4, r2
+ ldrh r0, [r4]
+ cmp r0, r5
+ bcs _08135A66
+ strh r5, [r4]
+_08135A66:
+ ldr r0, _08135A8C @ =0x00000562
+ adds r1, r6, r0
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _08135A94
+ adds r5, r0, 0
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl SetGameStat
+ ldr r1, _08135A90 @ =0x0000270f
+ cmp r5, r1
+ bhi _08135AA4
+ b _08135AB4
+ .align 2, 0
+_08135A84: .4byte gSaveBlock2
+_08135A88: .4byte 0x00000554
+_08135A8C: .4byte 0x00000562
+_08135A90: .4byte 0x0000270f
+_08135A94:
+ ldrh r5, [r1]
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl SetGameStat
+ ldr r1, _08135AAC @ =0x0000270f
+ cmp r5, r1
+ bls _08135AB4
+_08135AA4:
+ ldr r2, _08135AB0 @ =0x00000572
+ adds r0, r6, r2
+ strh r1, [r0]
+ b _08135ABA
+ .align 2, 0
+_08135AAC: .4byte 0x0000270f
+_08135AB0: .4byte 0x00000572
+_08135AB4:
+ ldr r3, _08135AC0 @ =0x00000572
+ adds r0, r6, r3
+ strh r5, [r0]
+_08135ABA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135AC0: .4byte 0x00000572
+ thumb_func_end sub_8135A3C
+
+ thumb_func_start sub_8135AC4
+sub_8135AC4: @ 8135AC4
+ push {r4-r6,lr}
+ ldr r5, _08135AF0 @ =gSaveBlock2 + 0xA8
+ adds r2, r5, 0
+ subs r2, 0xA8
+ ldr r1, _08135AF4 @ =0x000004ac
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135AFC
+ ldr r4, _08135AF8 @ =gUnknown_08405E7E
+ 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 _08135B0E
+ .align 2, 0
+_08135AF0: .4byte gSaveBlock2 + 0xA8
+_08135AF4: .4byte 0x000004ac
+_08135AF8: .4byte gUnknown_08405E7E
+_08135AFC:
+ ldr r4, _08135B84 @ =gUnknown_08405E60
+ 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
+_08135B0E:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r6, [r5]
+ strb r0, [r5, 0x1]
+ adds r0, r5, 0
+ adds r0, 0xC
+ ldr r4, _08135B88 @ =gSaveBlock2 + 0xA
+ adds r1, r4, 0
+ bl copy_word_to_mem
+ adds r0, r5, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ adds r0, r6, 0
+ bl sub_8135D3C
+ strh r0, [r5, 0x2]
+ ldr r0, _08135B8C @ =gSaveBlock1
+ ldr r1, _08135B90 @ =0x00002b28
+ adds r2, r0, r1
+ adds r1, r5, 0
+ adds r1, 0x10
+ movs r4, 0x5
+_08135B44:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08135B44
+ movs r4, 0
+ ldr r6, _08135B94 @ =gSaveBlock2 + 0x565
+_08135B56:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08135B98 @ =gUnknown_030042FC
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x1C
+ adds r1, r5, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135B56
+ ldr r0, _08135B9C @ =gSaveBlock2 + 0xA8
+ bl sub_8135CC4
+ bl sub_8135A3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135B84: .4byte gUnknown_08405E60
+_08135B88: .4byte gSaveBlock2 + 0xA
+_08135B8C: .4byte gSaveBlock1
+_08135B90: .4byte 0x00002b28
+_08135B94: .4byte gSaveBlock2 + 0x565
+_08135B98: .4byte gUnknown_030042FC
+_08135B9C: .4byte gSaveBlock2 + 0xA8
+ thumb_func_end sub_8135AC4
+
+ thumb_func_start sub_8135BA0
+sub_8135BA0: @ 8135BA0
+ push {r4,r5,lr}
+ ldr r2, _08135C1C @ =gSaveBlock2
+ ldr r1, _08135C20 @ =0x00000554
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r5, r0, 31
+ ldr r0, _08135C24 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ beq _08135BBA
+ cmp r0, 0
+ bne _08135BD8
+_08135BBA:
+ lsls r1, r5, 1
+ ldr r3, _08135C28 @ =0x0000055c
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _08135BD4
+ subs r3, 0x4
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _08135BD8
+_08135BD4:
+ bl sub_8135AC4
+_08135BD8:
+ bl sub_8135CFC
+ ldr r4, _08135C1C @ =gSaveBlock2
+ ldr r0, _08135C2C @ =gBattleOutcome
+ ldrb r1, [r0]
+ ldr r2, _08135C30 @ =0x00000555
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _08135C24 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ cmp r1, 0x3
+ beq _08135BF8
+ ldr r3, _08135C34 @ =0x00000556
+ adds r0, r4, r3
+ adds r0, r5, r0
+ strb r1, [r0]
+_08135BF8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r0, _08135C20 @ =0x00000554
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ bl TrySavingData
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135C1C: .4byte gSaveBlock2
+_08135C20: .4byte 0x00000554
+_08135C24: .4byte gSpecialVar_0x8004
+_08135C28: .4byte 0x0000055c
+_08135C2C: .4byte gBattleOutcome
+_08135C30: .4byte 0x00000555
+_08135C34: .4byte 0x00000556
+ thumb_func_end sub_8135BA0
+
+ thumb_func_start sub_8135C38
+sub_8135C38: @ 8135C38
+ push {lr}
+ bl DoSoftReset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135C38
+
+ thumb_func_start sub_8135C44
+sub_8135C44: @ 8135C44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r3, 0
+ movs r1, 0
+ ldr r2, _08135CBC @ =gSaveBlock2 + 0xA8
+_08135C50:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C50
+ ldr r5, _08135CC0 @ =gSaveBlock2
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r5, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135C70
+ adds r0, r5, 0
+ adds r0, 0xA8
+ bl sub_8135CE8
+_08135C70:
+ movs r4, 0
+ movs r7, 0xA4
+ movs r0, 0xA6
+ lsls r0, 1
+ adds r6, r5, r0
+ mov r8, r5
+_08135C7C:
+ adds r0, r4, 0
+ muls r0, r7
+ movs r3, 0
+ movs r1, 0
+ adds r5, r4, 0x1
+ adds r2, r0, r6
+_08135C88:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C88
+ adds r1, r4, 0
+ muls r1, r7
+ movs r0, 0xF6
+ lsls r0, 1
+ add r0, r8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135CAA
+ adds r0, r1, r6
+ bl sub_8135CE8
+_08135CAA:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ ble _08135C7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135CBC: .4byte gSaveBlock2 + 0xA8
+_08135CC0: .4byte gSaveBlock2
+ thumb_func_end sub_8135C44
+
+ thumb_func_start sub_8135CC4
+sub_8135CC4: @ 8135CC4
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xA0
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08135CD2:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x27
+ bls _08135CD2
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CC4
+
+ thumb_func_start sub_8135CE8
+sub_8135CE8: @ 8135CE8
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_08135CEE:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x28
+ bls _08135CEE
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CE8
+
+ thumb_func_start sub_8135CFC
+sub_8135CFC: @ 8135CFC
+ push {r4,lr}
+ ldr r4, _08135D34 @ =gSaveBlock2 + 0x484
+ adds r0, r4, 0
+ bl get_trainer_name
+ ldr r2, _08135D38 @ =gBattleMons
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r1, [r0]
+ subs r0, r4, 0x2
+ strh r1, [r0]
+ ldrh r1, [r2]
+ subs r0, r4, 0x4
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, 0x8
+ adds r2, 0x30
+_08135D1E:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _08135D1E
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135D34: .4byte gSaveBlock2 + 0x484
+_08135D38: .4byte gBattleMons
+ thumb_func_end sub_8135CFC
+
+ thumb_func_start sub_8135D3C
+sub_8135D3C: @ 8135D3C
+ push {lr}
+ lsls r0, 24
+ ldr r3, _08135D74 @ =gSaveBlock2
+ lsrs r0, 23
+ ldr r2, _08135D78 @ =0x0000055c
+ adds r1, r3, r2
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ subs r2, 0x1
+ lsls r1, r2, 3
+ subs r1, r2
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r3, r2
+ adds r0, r3
+ ldr r2, _08135D7C @ =0x0000ffff
+ adds r1, r2
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ ldr r1, _08135D80 @ =0x0000270f
+ cmp r0, r1
+ bls _08135D6E
+ adds r0, r1, 0
+_08135D6E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08135D74: .4byte gSaveBlock2
+_08135D78: .4byte 0x0000055c
+_08135D7C: .4byte 0x0000ffff
+_08135D80: .4byte 0x0000270f
+ thumb_func_end sub_8135D3C
+
+ thumb_func_start sub_8135D84
+sub_8135D84: @ 8135D84
+ push {r4,r5,lr}
+ ldr r5, _08135DB0 @ =gSaveBlock2
+ ldr r1, _08135DB4 @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ lsls r0, 1
+ ldr r2, _08135DB8 @ =0x0000055c
+ adds r1, r5, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ ble _08135DC0
+ bl Random
+ ldr r4, _08135DBC @ =gUnknown_08405EE6
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x9
+ b _08135DCC
+ .align 2, 0
+_08135DB0: .4byte gSaveBlock2
+_08135DB4: .4byte 0x00000554
+_08135DB8: .4byte 0x0000055c
+_08135DBC: .4byte gUnknown_08405EE6
+_08135DC0:
+ bl Random
+ ldr r4, _08135DE8 @ =gUnknown_08405EDA
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+_08135DCC:
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r2, 0xAD
+ lsls r2, 3
+ adds r0, r5, r2
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135DE8: .4byte gUnknown_08405EDA
+ thumb_func_end sub_8135D84
+
+ thumb_func_start sub_8135DEC
+sub_8135DEC: @ 8135DEC
+ push {r4-r7,lr}
+ ldr r5, _08135E20 @ =gSaveBlock2
+ ldr r1, _08135E24 @ =0x00000554
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ movs r0, 0xAD
+ lsls r0, 3
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08135E30
+ ldrh r0, [r6]
+ ldr r1, _08135E28 @ =gStringVar1
+ bl CopyItemName
+ ldr r0, _08135E2C @ =gScriptResult
+ strh r4, [r0]
+ b _08135E40
+ .align 2, 0
+_08135E20: .4byte gSaveBlock2
+_08135E24: .4byte 0x00000554
+_08135E28: .4byte gStringVar1
+_08135E2C: .4byte gScriptResult
+_08135E30:
+ ldr r1, _08135E48 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08135E4C @ =0x00000556
+ adds r0, r5, r1
+ adds r0, r7, r0
+ movs r1, 0x6
+ strb r1, [r0]
+_08135E40:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135E48: .4byte gScriptResult
+_08135E4C: .4byte 0x00000556
+ thumb_func_end sub_8135DEC
+
+ thumb_func_start sub_8135E50
+sub_8135E50: @ 8135E50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, _08135ED4 @ =gSaveBlock2
+ ldr r1, _08135ED8 @ =0x00000554
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r0, 0
+ movs r7, 0x44
+ cmp r1, 0
+ beq _08135E6C
+ movs r7, 0x45
+_08135E6C:
+ ldr r4, _08135EDC @ =gScriptResult
+ movs r0, 0
+ strh r0, [r4]
+ adds r0, r1, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x37
+ bls _08135EBA
+ movs r5, 0
+ ldr r0, _08135EE0 @ =0x00000565
+ adds r0, r6
+ mov r8, r0
+ adds r6, r4, 0
+_08135E8A:
+ mov r1, r8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _08135EE4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _08135EB4
+ movs r0, 0x1
+ strh r0, [r6]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+_08135EB4:
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135E8A
+_08135EBA:
+ ldr r0, _08135EDC @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08135EC8
+ movs r0, 0x2A
+ bl IncrementGameStat
+_08135EC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135ED4: .4byte gSaveBlock2
+_08135ED8: .4byte 0x00000554
+_08135EDC: .4byte gScriptResult
+_08135EE0: .4byte 0x00000565
+_08135EE4: .4byte gPlayerParty
+ thumb_func_end sub_8135E50
+
+ thumb_func_start unref_sub_8135EE8
+unref_sub_8135EE8: @ 8135EE8
+ push {r4-r7,lr}
+ ldr r7, _08135F0C @ =gSaveBlock2 + 0x498
+ ldr r0, _08135F10 @ =0xfffffb68
+ adds r2, r7, r0
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135F18
+ ldr r4, _08135F14 @ =gUnknown_08405E7E
+ 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 _08135F2A
+ .align 2, 0
+_08135F0C: .4byte gSaveBlock2 + 0x498
+_08135F10: .4byte 0xfffffb68
+_08135F14: .4byte gUnknown_08405E7E
+_08135F18:
+ ldr r4, _08135FA8 @ =gUnknown_08405E60
+ 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
+_08135F2A:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r7, 0x1]
+ adds r0, r7, 0
+ adds r0, 0xC
+ ldr r4, _08135FAC @ =gSaveBlock2 + 0xA
+ adds r1, r4, 0
+ bl copy_word_to_mem
+ adds r0, r7, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ movs r0, 0x1
+ strh r0, [r7, 0x2]
+ movs r5, 0x7
+ movs r4, 0
+ ldr r0, _08135FB0 @ =gSaveBlock1
+ ldr r1, _08135FB4 @ =0x00002b28
+ adds r6, r0, r1
+ adds r3, r7, 0
+ adds r3, 0x10
+ adds r2, r7, 0
+ adds r2, 0x28
+ adds r1, r7, 0
+ adds r1, 0x1C
+_08135F64:
+ ldrh r0, [r6]
+ strh r0, [r3]
+ strh r5, [r1]
+ adds r0, r5, 0x6
+ strh r0, [r2]
+ adds r5, 0x1
+ adds r6, 0x2
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08135F64
+ movs r4, 0
+_08135F80:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08135FB8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x34
+ adds r1, r7, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135F80
+ adds r0, r7, 0
+ bl sub_8136088
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135FA8: .4byte gUnknown_08405E60
+_08135FAC: .4byte gSaveBlock2 + 0xA
+_08135FB0: .4byte gSaveBlock1
+_08135FB4: .4byte 0x00002b28
+_08135FB8: .4byte gPlayerParty
+ thumb_func_end unref_sub_8135EE8
+
+ thumb_func_start sub_8135FBC
+sub_8135FBC: @ 8135FBC
+ ldr r1, _08135FCC @ =gTrainerClassToPicIndex
+ ldr r0, _08135FD0 @ =gSaveBlock2
+ ldr r2, _08135FD4 @ =0x00000499
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FCC: .4byte gTrainerClassToPicIndex
+_08135FD0: .4byte gSaveBlock2
+_08135FD4: .4byte 0x00000499
+ thumb_func_end sub_8135FBC
+
+ thumb_func_start sub_8135FD8
+sub_8135FD8: @ 8135FD8
+ ldr r1, _08135FE8 @ =gTrainerClassToNameIndex
+ ldr r0, _08135FEC @ =gSaveBlock2
+ ldr r2, _08135FF0 @ =0x00000499
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FE8: .4byte gTrainerClassToNameIndex
+_08135FEC: .4byte gSaveBlock2
+_08135FF0: .4byte 0x00000499
+ thumb_func_end sub_8135FD8
+
+ thumb_func_start sub_8135FF4
+sub_8135FF4: @ 8135FF4
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, _08136018 @ =gSaveBlock2 + 0x49C
+_08135FFC:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _08135FFC
+ adds r1, r3, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136018: .4byte gSaveBlock2 + 0x49C
+ thumb_func_end sub_8135FF4
+
+ thumb_func_start sub_813601C
+sub_813601C: @ 813601C
+ push {r4,r5,lr}
+ ldr r1, _08136044 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r5, _08136048 @ =gSaveBlock2 + 0x498
+ movs r3, 0
+ movs r2, 0
+ adds r4, r1, 0
+ adds r1, r5, 0
+_0813602E:
+ ldm r1!, {r0}
+ orrs r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _0813602E
+ cmp r3, 0
+ bne _0813604C
+ movs r0, 0x1
+ strh r0, [r4]
+ b _08136078
+ .align 2, 0
+_08136044: .4byte gScriptResult
+_08136048: .4byte gSaveBlock2 + 0x498
+_0813604C:
+ movs r3, 0
+ movs r2, 0
+ ldr r4, _08136080 @ =gSaveBlock2
+ adds r1, r5, 0
+_08136054:
+ ldm r1!, {r0}
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _08136054
+ movs r1, 0xAA
+ lsls r1, 3
+ adds r0, r4, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08136078
+ subs r1, 0xB8
+ adds r0, r4, r1
+ bl sub_81360AC
+ ldr r1, _08136084 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_08136078:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136080: .4byte gSaveBlock2
+_08136084: .4byte gScriptResult
+ thumb_func_end sub_813601C
+
+ thumb_func_start sub_8136088
+sub_8136088: @ 8136088
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xB8
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08136096:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _08136096
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136088
+
+ thumb_func_start sub_81360AC
+sub_81360AC: @ 81360AC
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_081360B2:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x2E
+ bls _081360B2
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81360AC
+
+ thumb_func_start sub_81360C0
+sub_81360C0: @ 81360C0
+ push {lr}
+ ldr r0, _081360CC @ =gSaveBlock2 + 0x4A8
+ bl sub_813545C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081360CC: .4byte gSaveBlock2 + 0x4A8
+ thumb_func_end sub_81360C0
+
+ thumb_func_start sub_81360D0
+sub_81360D0: @ 81360D0
+ push {lr}
+ ldr r0, _081360E4 @ =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081360EC
+ ldr r1, _081360E8 @ =gStringVar4
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _08136102
+ .align 2, 0
+_081360E4: .4byte gBattleOutcome
+_081360E8: .4byte gStringVar4
+_081360EC:
+ cmp r0, 0x1
+ bne _081360FC
+ ldr r0, _081360F8 @ =gSaveBlock2 + 0x4C0
+ bl sub_813545C
+ b _08136102
+ .align 2, 0
+_081360F8: .4byte gSaveBlock2 + 0x4C0
+_081360FC:
+ ldr r0, _08136108 @ =gSaveBlock2 + 0x4B4
+ bl sub_813545C
+_08136102:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136108: .4byte gSaveBlock2 + 0x4B4
+ thumb_func_end sub_81360D0
+
+ thumb_func_start sub_813610C
+sub_813610C: @ 813610C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0813612C @ =gSaveBlock2 + 0x556
+_08136112:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813611E
+ bl sub_80BFD20
+_0813611E:
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08136112
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813612C: .4byte gSaveBlock2 + 0x556
+ thumb_func_end sub_813610C
+
+.ifdef GERMAN
+ thumb_func_start de_sub_81364AC
+de_sub_81364AC: @ 81364AC
+ push {lr}
+ ldr r2, _DE_081364C0 @ =gSaveBlock2
+ ldr r0, _DE_081364C4 @ =0x00000564
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _DE_081364CC
+ ldr r1, _DE_081364C8 @ =0x00000499
+ adds r0, r2, r1
+ b _DE_081364F2
+ .align 2, 0
+_DE_081364C0: .4byte gSaveBlock2
+_DE_081364C4: .4byte 0x00000564
+_DE_081364C8: .4byte 0x00000499
+_DE_081364CC:
+ cmp r0, 0x63
+ bhi _DE_081364E4
+ ldr r2, _DE_081364E0 @ =gBattleTowerTrainers
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ b _DE_081364F2
+ .align 2, 0
+_DE_081364E0: .4byte gBattleTowerTrainers
+_DE_081364E4:
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r2
+ adds r1, 0xA9
+ adds r0, r1
+_DE_081364F2:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ thumb_func_end de_sub_81364AC
+
+ thumb_func_start de_sub_81364F8
+de_sub_81364F8: @ 81364F8
+ ldr r0, _DE_08136504 @ =gSaveBlock2
+ ldr r1, _DE_08136508 @ =0x00000499
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_DE_08136504: .4byte gSaveBlock2
+_DE_08136508: .4byte 0x00000499
+ thumb_func_end de_sub_81364F8
+.endif
+
+ .align 2, 0 @ Don't pad with nop.