diff options
Diffstat (limited to 'asm/battle_tower.s')
-rw-r--r-- | asm/battle_tower.s | 3663 |
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. |