diff options
Diffstat (limited to 'asm/recorded_battle.s')
-rw-r--r-- | asm/recorded_battle.s | 2749 |
1 files changed, 2749 insertions, 0 deletions
diff --git a/asm/recorded_battle.s b/asm/recorded_battle.s new file mode 100644 index 000000000..5a4a811e6 --- /dev/null +++ b/asm/recorded_battle.s @@ -0,0 +1,2749 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8184DA4 +sub_8184DA4: @ 8184DA4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + ldr r0, =gUnknown_0203C7AC + mov r1, r12 + strb r1, [r0] + ldr r1, =gUnknown_0203CCD0 + movs r0, 0 + strb r0, [r1] + movs r2, 0 + movs r7, 0 + ldr r3, =gUnknown_0203C7BC + mov r10, r3 + ldr r6, =gUnknown_0203C794 + mov r9, r6 + ldr r0, =gUnknown_0203BD34 + mov r8, r0 +_08184DD0: + lsls r0, r2, 1 + mov r3, r9 + adds r1, r0, r3 + strh r7, [r1] + ldr r6, =gUnknown_0203C79C + adds r1, r0, r6 + strh r7, [r1] + ldr r1, =gUnknown_0203C7A4 + adds r0, r1 + strh r7, [r0] + adds r4, r2, 0x1 + mov r3, r12 + cmp r3, 0x1 + bne _08184E1C + ldr r5, =gBattleTypeFlags + movs r3, 0xFF + movs r1, 0xA6 + lsls r1, 2 + adds r0, r2, 0 + muls r0, r1 + mov r6, r8 + adds r2, r0, r6 +_08184DFC: + ldrb r0, [r2] + orrs r0, r3 + strb r0, [r2] + adds r2, 0x1 + subs r1, 0x1 + cmp r1, 0 + bne _08184DFC + ldr r0, [r5] + ldr r1, =gUnknown_0203C7B8 + str r0, [r1] + ldr r3, =gBattleResources + ldr r0, [r3] + ldr r0, [r0, 0x14] + ldr r0, [r0, 0xC] + mov r6, r10 + str r0, [r6] +_08184E1C: + adds r2, r4, 0 + cmp r2, 0x3 + ble _08184DD0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8184DA4 + + thumb_func_start sub_8184E58 +sub_8184E58: @ 8184E58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + ldr r0, =gUnknown_0203C7AC + ldrb r0, [r0] + cmp r0, 0x1 + bne _08184EA0 + ldr r1, =gUnknown_0203BD2C + ldr r0, =gRngValue + ldr r0, [r0] + str r0, [r1] + ldr r4, =gUnknown_0203C7AE + ldr r0, =0x000040cf + bl VarGet + strb r0, [r4] + ldr r4, =gUnknown_0203C7AF + bl sub_81A513C + strb r0, [r4] + b _08184EAC + .pool +_08184EA0: + cmp r0, 0x2 + bne _08184EAC + ldr r0, =gRngValue + ldr r1, =gUnknown_0203BD2C + ldr r1, [r1] + str r1, [r0] +_08184EAC: + ldr r0, =gBattleTypeFlags + ldr r5, [r0] + movs r0, 0x2 + ands r5, r0 + cmp r5, 0 + beq _08184F64 + bl GetMultiplayerId + ldr r1, =gUnknown_0203C7B4 + strb r0, [r1] + bl sub_8009FCC + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r5, 0 + ldr r0, =gUnknown_0203CC80 + mov r9, r0 + ldr r6, =gLinkPlayers + movs r0, 0x8 + adds r0, r6 + mov r8, r0 + mov r7, r9 + adds r7, 0x4 +_08184EDC: + lsls r0, r5, 2 + adds r0, r5 + lsls r4, r0, 2 + mov r0, r9 + adds r2, r4, r0 + lsls r0, r5, 3 + subs r0, r5 + lsls r3, r0, 2 + adds r0, r6, 0x4 + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r2] + adds r1, r3, r6 + ldrb r0, [r1, 0x13] + strb r0, [r2, 0xC] + ldrh r0, [r1, 0x18] + strh r0, [r2, 0xE] + ldrh r0, [r1, 0x1A] + strh r0, [r2, 0x10] + cmp r5, r10 + bge _08184F3C + mov r0, r8 + adds r1, r3, r0 + mov r0, sp + bl StringCopy + mov r0, sp + bl StripExtCtrlCodes + adds r0, r4, r7 + mov r1, sp + bl StringCopy + adds r5, 0x1 + b _08184F56 + .pool +_08184F3C: + adds r5, 0x1 + ldr r0, =gLinkPlayers + 8 + adds r1, r3, r0 + ldr r0, =gUnknown_0203CC84 + adds r2, r4, r0 + movs r3, 0x7 +_08184F48: + ldrb r0, [r1] + strb r0, [r2] + adds r1, 0x1 + adds r2, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _08184F48 +_08184F56: + cmp r5, 0x3 + ble _08184EDC + b _08184FA0 + .pool +_08184F64: + ldr r3, =gUnknown_0203CC80 + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + ldrb r1, [r2, 0xA] + ldrb r0, [r2, 0xB] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0xC] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r2, 0xD] + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + ldrb r0, [r2, 0x8] + strb r0, [r3, 0xC] + strh r5, [r3, 0xE] + ldr r0, =gGameLanguage + ldrb r0, [r0] + strh r0, [r3, 0x10] + movs r5, 0 + adds r3, 0x4 +_08184F90: + adds r0, r5, r3 + ldr r1, [r4] + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r5, 0x1 + cmp r5, 0x7 + ble _08184F90 +_08184FA0: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8184E58 + + thumb_func_start sub_8184FBC +sub_8184FBC: @ 8184FBC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r1, =gUnknown_0203C794 + lsls r0, r5, 1 + adds r4, r0, r1 + ldrh r2, [r4] + adds r3, r2, 0 + ldr r0, =0x00000297 + cmp r3, r0 + bhi _08184FF0 + ldr r0, =gUnknown_0203C7AC + ldrb r0, [r0] + cmp r0, 0x2 + beq _08184FF0 + ldr r1, =gUnknown_0203BD34 + adds r0, r2, 0x1 + strh r0, [r4] + movs r0, 0xA6 + lsls r0, 2 + muls r0, r5 + adds r0, r3, r0 + adds r0, r1 + strb r6, [r0] +_08184FF0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8184FBC + + thumb_func_start sub_8185008 +sub_8185008: @ 8185008 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + movs r3, 0 + cmp r3, r4 + bge _08185046 + ldr r0, =gUnknown_0203C794 + lsls r1, r5, 1 + adds r2, r1, r0 + ldr r7, =gUnknown_0203BD34 + movs r0, 0xA6 + lsls r0, 2 + muls r5, r0 + movs r6, 0xFF +_08185028: + ldrh r0, [r2] + subs r0, 0x1 + strh r0, [r2] + ldrh r1, [r2] + adds r1, r5 + adds r1, r7 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + ldrh r0, [r2] + cmp r0, 0 + beq _08185046 + adds r3, 0x1 + cmp r3, r4 + blt _08185028 +_08185046: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185008 + + thumb_func_start sub_8185054 +sub_8185054: @ 8185054 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, =gUnknown_0203C794 + lsls r0, r3, 1 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, =0x00000297 + cmp r1, r0 + bhi _0818507A + ldr r4, =gUnknown_0203BD34 + adds r0, 0x1 + muls r3, r0 + adds r0, r1, r3 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081850BC +_0818507A: + ldr r2, =gScriptResult + ldr r1, =gBattleOutcome + movs r0, 0x5 + strb r0, [r1] + movs r0, 0x5 + strh r0, [r2] + bl ResetPaletteFadeControl + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, =sub_80384E4 + bl SetMainCallback2 + movs r0, 0xFF + b _081850C6 + .pool +_081850BC: + adds r0, r1, 0x1 + strh r0, [r2] + adds r0, r1, r3 + adds r0, r4 + ldrb r0, [r0] +_081850C6: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8185054 + + thumb_func_start sub_81850D0 +sub_81850D0: @ 81850D0 + ldr r0, =gUnknown_0203C7AC + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81850D0 + + thumb_func_start sub_81850DC +sub_81850DC: @ 81850DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r8, r0 + movs r7, 0 + movs r0, 0 + mov r12, r0 +_081850F0: + mov r1, r12 + lsls r3, r1, 1 + ldr r0, =gUnknown_0203C794 + adds r5, r3, r0 + ldr r1, =gUnknown_0203C79C + adds r6, r3, r1 + ldrh r0, [r5] + mov r9, r3 + mov r1, r12 + adds r1, 0x1 + str r1, [sp] + ldrh r1, [r6] + cmp r0, r1 + beq _0818517E + adds r1, r7, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + adds r2, r7, 0 + add r1, r8 + mov r0, r12 + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + add r2, r8 + ldrb r0, [r5] + ldrb r1, [r6] + subs r0, r1 + strb r0, [r2] + movs r4, 0 + ldrh r0, [r5] + ldrh r1, [r6] + subs r0, r1 + cmp r4, r0 + bge _08185172 + ldr r1, =gUnknown_0203BD34 + mov r10, r1 + ldr r6, =gUnknown_0203C79C + movs r0, 0xA6 + lsls r0, 2 + mov r5, r12 + muls r5, r0 +_08185146: + adds r1, r7, 0 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + add r1, r8 + adds r2, r3, r6 + ldrh r0, [r2] + adds r0, r4 + adds r0, r5 + add r0, r10 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gUnknown_0203C794 + adds r0, r3, r1 + ldrh r1, [r0] + ldrh r0, [r2] + subs r1, r0 + cmp r4, r1 + blt _08185146 +_08185172: + ldr r0, =gUnknown_0203C79C + add r0, r9 + ldr r1, =gUnknown_0203C794 + add r1, r9 + ldrh r1, [r1] + strh r1, [r0] +_0818517E: + ldr r1, [sp] + lsls r0, r1, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0x3 + bls _081850F0 + adds r0, r7, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81850DC + + thumb_func_start sub_81851A8 +sub_81851A8: @ 81851A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + adds r7, r0, 0 + movs r1, 0x2 + mov r0, sp + strb r1, [r0] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + beq _0818525E + movs r5, 0 + ldr r4, =gLinkPlayers + b _081851DA + .pool +_081851D0: + ldrb r0, [r4] + cmp r0, 0x3 + bne _0818525E + adds r4, 0x1C + adds r5, 0x1 +_081851DA: + bl sub_8009FCC + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + blt _081851D0 + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + movs r1, 0x4 + ands r0, r1 + cmp r0, 0 + bne _0818525E + ldrb r0, [r7] + mov r4, sp + adds r4, 0x1 + strb r0, [r4] + ldrb r0, [r4] + mov r8, r4 + cmp r0, 0 + beq _0818525E +_08185202: + adds r0, r7, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_8185278 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + mov r1, sp + adds r2, r4, 0 + bl sub_8185278 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08185256 + ldr r3, =gUnknown_0203BD34 + ldr r0, =gUnknown_0203C7A4 + lsls r1, r6, 1 + adds r4, r1, r0 + adds r5, r2, 0 + movs r0, 0xA6 + lsls r0, 2 + muls r6, r0 +_08185232: + adds r0, r7, 0 + mov r1, sp + mov r2, r8 + str r3, [sp, 0x4] + bl sub_8185278 + ldrh r1, [r4] + adds r2, r1, 0x1 + strh r2, [r4] + lsls r1, 16 + lsrs r1, 16 + adds r1, r6 + ldr r3, [sp, 0x4] + adds r1, r3 + strb r0, [r1] + subs r5, 0x1 + cmp r5, 0 + bne _08185232 +_08185256: + mov r4, r8 + ldrb r0, [r4] + cmp r0, 0 + bne _08185202 +_0818525E: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81851A8 + + thumb_func_start sub_8185278 +sub_8185278: @ 8185278 + ldrb r3, [r2] + subs r3, 0x1 + strb r3, [r2] + ldrb r2, [r1] + adds r3, r2, 0x1 + strb r3, [r1] + lsls r2, 24 + lsrs r2, 24 + adds r0, r2 + ldrb r0, [r0] + bx lr + thumb_func_end sub_8185278 + + thumb_func_start sub_8185290 +sub_8185290: @ 8185290 + push {r4,r5,lr} + movs r0, 0xF8 + lsls r0, 4 + bl AllocZeroed + adds r4, r0, 0 + bl start_ov_to_battle_anim + adds r5, r0, 0 + adds r0, r4, 0 + bl Free + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8185290 + + thumb_func_start sub_81852B0 +sub_81852B0: @ 81852B0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, =0x000004ec + adds r0, r5, r1 + ldr r1, [r0] + cmp r1, 0 + beq _081852E8 + ldr r0, =0x7d007e92 + ands r1, r0 + cmp r1, 0 + bne _081852E8 + ldr r4, =0x00000f7c + adds r0, r5, 0 + adds r1, r4, 0 + bl CalcByteArraySum + adds r4, r5, r4 + ldr r1, [r4] + cmp r0, r1 + bne _081852E8 + movs r0, 0x1 + b _081852EA + .pool +_081852E8: + movs r0, 0 +_081852EA: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81852B0 + + thumb_func_start sub_81852F0 +sub_81852F0: @ 81852F0 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + movs r2, 0x80 + lsls r2, 5 + adds r0, r5, 0 + movs r1, 0 + bl memset + movs r2, 0xF8 + lsls r2, 4 + adds r0, r5, 0 + adds r1, r4, 0 + bl memcpy + ldr r4, =0x00000f7c + adds r0, r5, 0 + adds r1, r4, 0 + bl CalcByteArraySum + adds r4, r5, r4 + str r0, [r4] + movs r0, 0x1F + adds r1, r5, 0 + bl sub_8153634 + cmp r0, 0x1 + bne _08185330 + movs r0, 0x1 + b _08185332 + .pool +_08185330: + movs r0, 0 +_08185332: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81852F0 + + thumb_func_start sub_8185338 +sub_8185338: @ 8185338 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + str r0, [sp, 0x4] + movs r0, 0xF8 + lsls r0, 4 + bl AllocZeroed + adds r7, r0, 0 + movs r0, 0x80 + lsls r0, 5 + bl AllocZeroed + str r0, [sp] + movs r6, 0 +_0818535E: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + adds r5, r7, r4 + ldr r1, =gUnknown_0203C7C0 + adds r1, r4, r1 + adds r0, r5, 0 + movs r2, 0x64 + bl memcpy + movs r1, 0x96 + lsls r1, 2 + adds r5, r1 + ldr r0, =gUnknown_0203CA18 + adds r4, r0 + adds r0, r5, 0 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r6, 0x1 + cmp r6, 0x5 + ble _0818535E + movs r6, 0 + ldr r2, =gSaveBlock2Ptr + mov r9, r2 + movs r3, 0x9A + lsls r3, 3 + adds r3, r7, r3 + str r3, [sp, 0x8] + ldr r5, =gUnknown_0203CC80 + mov r8, r6 + mov r12, r6 + movs r4, 0x96 + lsls r4, 3 + adds r4, r7 + mov r10, r4 + ldr r0, =0x000004e4 + adds r4, r7, r0 +_081853AC: + lsls r1, r6, 3 + ldr r0, =gUnknown_0203CC80 + adds r0, 0x4 + mov r3, r8 + adds r2, r3, r0 + add r1, r10 + movs r3, 0x7 +_081853BA: + ldrb r0, [r2] + strb r0, [r1] + adds r2, 0x1 + adds r1, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _081853BA + ldr r0, [sp, 0x8] + adds r1, r0, r6 + ldrb r0, [r5, 0xC] + strb r0, [r1] + ldrh r0, [r5, 0x10] + strb r0, [r4] + ldrh r0, [r5, 0xE] + strb r0, [r4, 0xC] + ldr r1, =0x000004d4 + adds r0, r7, r1 + add r0, r12 + ldr r1, [r5] + str r1, [r0] + adds r5, 0x14 + movs r2, 0x14 + add r8, r2 + movs r3, 0x4 + add r12, r3 + adds r4, 0x1 + adds r6, 0x1 + cmp r6, 0x3 + ble _081853AC + movs r4, 0x9D + lsls r4, 3 + adds r1, r7, r4 + ldr r5, =gUnknown_0203BD2C + ldr r0, [r5] + str r0, [r1] + ldr r0, =gUnknown_0203C7B8 + ldr r2, [r0] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _081854DC + ldr r1, =0x000004ec + adds r3, r7, r1 + movs r1, 0x23 + negs r1, r1 + ands r1, r2 + movs r0, 0x80 + lsls r0, 18 + orrs r1, r0 + str r1, [r3] + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + beq _08185454 + movs r0, 0x80 + lsls r0, 24 + orrs r1, r0 + str r1, [r3] + b _081854E2 + .pool +_08185454: + movs r0, 0x40 + ands r2, r0 + cmp r2, 0 + beq _081854E2 + ldr r2, =gUnknown_0203CC80 + ldrh r0, [r2, 0xE] + cmp r0, 0x1 + beq _081854A8 + cmp r0, 0x1 + bgt _08185474 + cmp r0, 0 + beq _0818547E + b _081854E2 + .pool +_08185474: + cmp r0, 0x2 + beq _0818547E + cmp r0, 0x3 + beq _081854A8 + b _081854E2 +_0818547E: + ldr r3, =gUnknown_0203C7B4 + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r4, =gUnknown_0203CC80 + adds r0, r4 + ldrh r1, [r0, 0xE] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081854E2 + ldr r5, =0x000004ec + adds r0, r7, r5 + b _081854C4 + .pool +_081854A8: + ldr r0, =gUnknown_0203C7B4 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, =gUnknown_0203CC80 + adds r0, r1 + ldrh r1, [r0, 0xE] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081854E2 + ldr r2, =0x000004ec + adds r0, r7, r2 +_081854C4: + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0] + b _081854E2 + .pool +_081854DC: + ldr r3, =0x000004ec + adds r0, r7, r3 + str r2, [r0] +_081854E2: + ldr r4, =gTrainerBattleOpponent_A + ldrh r1, [r4] + ldr r5, =0x000004f4 + adds r0, r7, r5 + strh r1, [r0] + ldr r0, =gTrainerBattleOpponent_B + ldrh r1, [r0] + ldr r2, =0x000004f6 + adds r0, r7, r2 + strh r1, [r0] + ldr r3, =gUnknown_02038BCE + ldrh r1, [r3] + movs r4, 0x9F + lsls r4, 3 + adds r0, r7, r4 + strh r1, [r0] + ldr r5, =gUnknown_0203C7B4 + ldrb r1, [r5] + adds r2, 0x4 + adds r0, r7, r2 + strh r1, [r0] + mov r3, r9 + ldr r0, [r3] + ldr r4, =0x00000ca9 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + ldr r5, =0x000004fc + adds r1, r7, r5 + strb r0, [r1] + ldr r0, =gUnknown_0203C7AE + ldrb r1, [r0] + adds r2, 0x3 + adds r0, r7, r2 + strb r1, [r0] + ldr r3, =gUnknown_0203C7AF + ldrb r1, [r3] + ldr r4, =0x000004fe + adds r0, r7, r4 + strb r1, [r0] + mov r5, r9 + ldr r0, [r5] + ldrb r1, [r0, 0x15] + lsls r1, 29 + ldr r0, =0x000004ff + adds r3, r7, r0 + lsrs r1, 31 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r5] + ldrb r1, [r1, 0x14] + lsls r1, 29 + lsrs r1, 28 + movs r2, 0xF + negs r2, r2 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r2, 0xA0 + lsls r2, 3 + adds r1, r7, r2 + ldr r3, =gUnknown_0203C7BC + ldr r0, [r3] + str r0, [r1] + ldr r4, =0xfffffed4 + adds r1, r4, 0 + ldr r5, =gTrainerBattleOpponent_A + ldrh r5, [r5] + adds r0, r1, r5 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x63 + bls _08185580 + b _081856C4 +_08185580: + movs r6, 0 + ldr r0, =0x00000504 + adds r3, r7, r0 + mov r10, r9 + ldr r1, =gTrainerBattleOpponent_A + mov r12, r1 + adds r2, r4, 0 + mov r8, r2 + ldr r4, =0x0000073c +_08185592: + adds r2, r3, r6 + mov r5, r10 + ldr r1, [r5] + mov r5, r12 + ldrh r0, [r5] + add r0, r8 + movs r5, 0xEC + muls r0, r5 + adds r0, r6, r0 + adds r1, r4 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x7 + ble _08185592 + mov r0, r9 + ldr r2, [r0] + ldr r1, =gTrainerBattleOpponent_A + ldrh r0, [r1] + ldr r3, =0xfffffed4 + adds r0, r3 + movs r1, 0xEC + muls r0, r1 + adds r2, r0 + ldr r4, =0x00000739 + adds r2, r4 + ldrb r1, [r2] + ldr r5, =0x0000050c + adds r0, r7, r5 + strb r1, [r0] + ldr r1, =gUnknown_0203CCE8 + ldrb r0, [r1] + cmp r0, 0x1 + bne _08185664 + movs r6, 0 + ldr r2, =0x0000050e + adds r4, r7, r2 + mov r10, r9 + ldr r5, =gTrainerBattleOpponent_A + mov r8, r5 + adds r5, r3, 0 +_081855E6: + lsls r3, r6, 1 + mov r0, r10 + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r5 + movs r1, 0xEC + muls r0, r1 + adds r3, r0 + movs r0, 0xEC + lsls r0, 3 + adds r2, r0 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _081855E6 + b _08185696 + .pool +_08185664: + movs r6, 0 + ldr r1, =0x0000050e + adds r4, r7, r1 + mov r10, r9 + ldr r2, =gTrainerBattleOpponent_A + mov r8, r2 + adds r5, r3, 0 +_08185672: + lsls r3, r6, 1 + mov r0, r10 + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r5 + movs r1, 0xEC + muls r0, r1 + adds r3, r0 + ldr r0, =0x00000754 + adds r2, r0 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08185672 +_08185696: + mov r1, r9 + ldr r2, [r1] + ldr r3, =gTrainerBattleOpponent_A + ldrh r0, [r3] + ldr r4, =0xfffffed4 + adds r0, r4 + movs r1, 0xEC + muls r0, r1 + adds r2, r0 + ldr r5, =0x0000081c + adds r2, r5 + ldrb r1, [r2] + b _08185856 + .pool +_081856C4: + ldr r3, =gTrainerBattleOpponent_B + ldrh r3, [r3] + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x63 + bls _081856D4 + b _081857E4 +_081856D4: + movs r6, 0 + ldr r4, =0x00000504 + adds r3, r7, r4 + mov r10, r9 + ldr r5, =gTrainerBattleOpponent_B + mov r12, r5 + ldr r0, =0xfffffed4 + mov r8, r0 + ldr r4, =0x0000073c +_081856E6: + adds r2, r3, r6 + mov r5, r10 + ldr r1, [r5] + mov r5, r12 + ldrh r0, [r5] + add r0, r8 + movs r5, 0xEC + muls r0, r5 + adds r0, r6, r0 + adds r1, r4 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x7 + ble _081856E6 + mov r0, r9 + ldr r2, [r0] + ldr r1, =gTrainerBattleOpponent_B + ldrh r0, [r1] + ldr r3, =0xfffffed4 + adds r0, r3 + movs r1, 0xEC + muls r0, r1 + adds r2, r0 + ldr r4, =0x00000739 + adds r2, r4 + ldrb r1, [r2] + ldr r5, =0x0000050c + adds r0, r7, r5 + strb r1, [r0] + ldr r1, =gUnknown_0203CCE8 + ldrb r0, [r1] + cmp r0, 0x1 + bne _08185784 + movs r6, 0 + ldr r2, =0x0000050e + adds r4, r7, r2 + mov r10, r9 + ldr r5, =gTrainerBattleOpponent_B + mov r8, r5 + adds r5, r3, 0 +_0818573A: + lsls r3, r6, 1 + mov r0, r10 + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r5 + movs r1, 0xEC + muls r0, r1 + adds r3, r0 + movs r0, 0xEC + lsls r0, 3 + adds r2, r0 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _0818573A + b _081857B6 + .pool +_08185784: + movs r6, 0 + ldr r1, =0x0000050e + adds r4, r7, r1 + mov r10, r9 + ldr r2, =gTrainerBattleOpponent_B + mov r8, r2 + adds r5, r3, 0 +_08185792: + lsls r3, r6, 1 + mov r0, r10 + ldr r2, [r0] + mov r1, r8 + ldrh r0, [r1] + adds r0, r5 + movs r1, 0xEC + muls r0, r1 + adds r3, r0 + ldr r0, =0x00000754 + adds r2, r0 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08185792 +_081857B6: + mov r1, r9 + ldr r2, [r1] + ldr r3, =gTrainerBattleOpponent_B + ldrh r0, [r3] + ldr r4, =0xfffffed4 + adds r0, r4 + movs r1, 0xEC + muls r0, r1 + adds r2, r0 + ldr r5, =0x0000081c + adds r2, r5 + ldrb r1, [r2] + b _08185856 + .pool +_081857E4: + ldr r3, =gUnknown_02038BCE + ldrh r3, [r3] + adds r0, r1, r3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x63 + bhi _0818585C + movs r6, 0 + ldr r4, =0x00000504 + adds r3, r7, r4 + mov r10, r9 + ldr r5, =gUnknown_02038BCE + mov r12, r5 + ldr r0, =0xfffffed4 + mov r8, r0 + ldr r4, =0x0000073c +_08185804: + adds r2, r3, r6 + mov r5, r10 + ldr r1, [r5] + mov r5, r12 + ldrh r0, [r5] + add r0, r8 + movs r5, 0xEC + muls r0, r5 + adds r0, r6, r0 + adds r1, r4 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x7 + ble _08185804 + mov r0, r9 + ldr r1, [r0] + ldr r2, =gUnknown_02038BCE + ldrh r0, [r2] + ldr r3, =0xfffffed4 + adds r0, r3 + movs r2, 0xEC + muls r0, r2 + adds r1, r0 + ldr r4, =0x00000739 + adds r1, r4 + ldrb r1, [r1] + ldr r5, =0x0000050c + adds r0, r7, r5 + strb r1, [r0] + mov r0, r9 + ldr r1, [r0] + ldr r4, =gUnknown_02038BCE + ldrh r0, [r4] + adds r0, r3 + muls r0, r2 + adds r1, r0 + ldr r5, =0x0000081c + adds r1, r5 + ldrb r1, [r1] +_08185856: + ldr r2, =0x0000051a + adds r0, r7, r2 + strb r1, [r0] +_0818585C: + ldr r3, =gTrainerBattleOpponent_A + ldrh r0, [r3] + ldr r1, =0x0000018f + cmp r0, r1 + bls _08185900 + mov r4, r9 + ldr r2, [r4] + adds r1, r0, 0 + ldr r3, =0xfffffe70 + adds r1, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, 0xDC + ldrb r0, [r2] + lsls r0, 27 + lsrs r0, 27 + ldr r5, =0x0000050d + adds r1, r7, r5 + strb r0, [r1] + movs r6, 0 + ldr r0, =0x0000050e + adds r4, r7, r0 + mov r10, r9 + ldr r1, =gTrainerBattleOpponent_A + mov r8, r1 + adds r5, r3, 0 +_08185894: + lsls r3, r6, 1 + mov r0, r10 + ldr r2, [r0] + mov r0, r8 + ldrh r1, [r0] + adds r1, r5 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0 + movs r1, 0x82 + lsls r1, 1 + adds r2, r1 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08185894 + mov r3, r9 + ldr r2, [r3] + ldr r4, =gTrainerBattleOpponent_A + ldrh r1, [r4] + ldr r5, =0xfffffe70 + adds r1, r5 + b _081859AC + .pool +_08185900: + ldr r3, =gTrainerBattleOpponent_B + ldrh r0, [r3] + cmp r0, r1 + bls _0818597C + mov r4, r9 + ldr r2, [r4] + adds r1, r0, 0 + ldr r3, =0xfffffe70 + adds r1, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, 0xDC + ldrb r0, [r2] + lsls r0, 27 + lsrs r0, 27 + ldr r5, =0x0000050d + adds r1, r7, r5 + strb r0, [r1] + movs r6, 0 + ldr r0, =0x0000050e + adds r4, r7, r0 + mov r10, r9 + ldr r1, =gTrainerBattleOpponent_B + mov r8, r1 + adds r5, r3, 0 +_08185936: + lsls r3, r6, 1 + mov r0, r10 + ldr r2, [r0] + mov r0, r8 + ldrh r1, [r0] + adds r1, r5 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0 + movs r1, 0x82 + lsls r1, 1 + adds r2, r1 + adds r2, r3 + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08185936 + mov r3, r9 + ldr r2, [r3] + ldr r4, =gTrainerBattleOpponent_B + ldrh r1, [r4] + ldr r5, =0xfffffe70 + adds r1, r5 + b _081859AC + .pool +_0818597C: + ldr r3, =gUnknown_02038BCE + ldrh r0, [r3] + cmp r0, r1 + bls _081859C0 + mov r4, r9 + ldr r2, [r4] + adds r1, r0, 0 + ldr r3, =0xfffffe70 + adds r1, r3 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, 0xDC + ldrb r0, [r2] + lsls r0, 27 + lsrs r0, 27 + ldr r5, =0x0000050d + adds r1, r7, r5 + strb r0, [r1] + ldr r2, [r4] + ldr r0, =gUnknown_02038BCE + ldrh r1, [r0] + adds r1, r3 +_081859AC: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + ldr r1, =0x0000011b + adds r0, r2, r1 + ldrb r1, [r0] + ldr r2, =0x0000051b + adds r0, r7, r2 + strb r1, [r0] +_081859C0: + movs r6, 0 + ldr r3, =0x00000297 + mov r10, r3 + ldr r4, =gUnknown_0203BD34 + mov r9, r4 + movs r5, 0xA6 + lsls r5, 2 + mov r8, r5 + ldr r0, =0x0000051c + adds r5, r7, r0 +_081859D4: + adds r4, r6, 0x1 + mov r0, r8 + muls r0, r6 + mov r1, r9 + adds r2, r0, r1 + adds r1, r0, r5 + mov r3, r10 + adds r3, 0x1 +_081859E4: + ldrb r0, [r2] + strb r0, [r1] + adds r2, 0x1 + adds r1, 0x1 + subs r3, 0x1 + cmp r3, 0 + bne _081859E4 + adds r6, r4, 0 + cmp r6, 0x3 + ble _081859D4 +_081859F8: + adds r0, r7, 0 + ldr r1, [sp] + bl sub_81852F0 + adds r4, r0, 0 + cmp r4, 0x1 + beq _08185A14 + ldr r0, [sp, 0x4] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + cmp r0, 0x2 + bls _081859F8 +_08185A14: + adds r0, r7, 0 + bl Free + ldr r0, [sp] + bl Free + adds r0, r4, 0 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8185338 + + thumb_func_start sub_8185A54 +sub_8185A54: @ 8185A54 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r0, 0x1F + bl sub_81535DC + cmp r0, 0x1 + bne _08185A7E + movs r2, 0xF8 + lsls r2, 4 + adds r0, r5, 0 + adds r1, r4, 0 + bl memcpy + adds r0, r5, 0 + bl sub_81852B0 + cmp r0, 0 + beq _08185A7E + movs r0, 0x1 + b _08185A80 +_08185A7E: + movs r0, 0 +_08185A80: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8185A54 + + thumb_func_start start_ov_to_battle_anim +start_ov_to_battle_anim: @ 8185A88 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x80 + lsls r0, 5 + bl AllocZeroed + adds r5, r0, 0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8185A54 + adds r4, r0, 0 + adds r0, r5, 0 + bl Free + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end start_ov_to_battle_anim + + thumb_func_start sub_8185AB0 +sub_8185AB0: @ 8185AB0 + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r2, [r0] + ldr r0, =gUnknown_0203C7AD + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r2, r1 + movs r1, 0x3 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r1, =gBattleOutcome + movs r0, 0 + strb r0, [r1] + ldr r0, =gBattleTypeFlags + movs r1, 0 + str r1, [r0] + ldr r0, =gTrainerBattleOpponent_A + strh r1, [r0] + ldr r0, =gTrainerBattleOpponent_B + strh r1, [r0] + ldr r0, =gUnknown_02038BCE + strh r1, [r0] + bl sub_8185EFC + ldr r0, =gUnknown_0203C7B0 + ldr r0, [r0] + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185AB0 + + thumb_func_start sub_8185B1C +sub_8185B1C: @ 8185B1C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + subs r1, 0x1 + strh r1, [r0, 0x8] + lsls r1, 16 + cmp r1, 0 + bne _08185B4A + ldr r0, =gMain + ldr r1, =sub_8185AB0 + str r1, [r0, 0x8] + ldr r0, =sub_8036760 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08185B4A: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185B1C + + thumb_func_start sub_8185B60 +sub_8185B60: @ 8185B60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r0, 0 + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + movs r6, 0 + ldr r0, =gPlayerParty + mov r8, r0 +_08185B7C: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + mov r1, r8 + adds r0, r4, r1 + adds r5, r7, r4 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + ldr r0, =gEnemyParty + adds r4, r0 + movs r2, 0x96 + lsls r2, 2 + adds r5, r2 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r6, 0x1 + cmp r6, 0x5 + ble _08185B7C + movs r6, 0 + ldr r3, =gLinkPlayers + mov r8, r3 + mov r0, r8 + adds r0, 0x8 + str r0, [sp] + mov r4, r8 + adds r4, 0x4 + mov r10, r6 + mov r9, r6 +_08185BBE: + movs r1, 0 + mov r12, r1 + lsls r5, r6, 2 + movs r2, 0x96 + lsls r2, 3 + adds r0, r7, r2 + mov r3, r9 + adds r2, r3, r0 + mov r0, r10 + lsls r1, r0, 2 + mov r0, r8 + adds r0, 0x8 + adds r1, r0 + movs r3, 0x7 +_08185BDA: + ldrb r0, [r2] + strb r0, [r1] + ldrb r0, [r2] + cmp r0, 0xFF + bne _08185BE8 + movs r0, 0x1 + mov r12, r0 +_08185BE8: + adds r2, 0x1 + adds r1, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _08185BDA + movs r1, 0x9A + lsls r1, 3 + adds r0, r7, r1 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r4, 0xF] + ldr r2, =0x000004e4 + adds r0, r7, r2 + adds r0, r6 + ldrb r1, [r0] + strh r1, [r4, 0x16] + movs r3, 0x9E + lsls r3, 3 + adds r0, r7, r3 + adds r0, r6 + ldrb r0, [r0] + strh r0, [r4, 0x14] + subs r2, 0x10 + adds r0, r7, r2 + adds r0, r5 + ldr r0, [r0] + str r0, [r4] + mov r3, r12 + cmp r3, 0 + beq _08185C2A + ldr r0, [sp] + bl ConvertInternationalString +_08185C2A: + ldr r0, [sp] + adds r0, 0x1C + str r0, [sp] + adds r4, 0x1C + movs r1, 0x7 + add r10, r1 + movs r2, 0x8 + add r9, r2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08185BBE + ldr r1, =gUnknown_0203BD2C + movs r3, 0x9D + lsls r3, 3 + adds r0, r7, r3 + ldr r0, [r0] + str r0, [r1] + ldr r2, =gBattleTypeFlags + ldr r1, =0x000004ec + adds r0, r7, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + orrs r0, r1 + str r0, [r2] + ldr r1, =gTrainerBattleOpponent_A + ldr r2, =0x000004f4 + adds r0, r7, r2 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gTrainerBattleOpponent_B + adds r3, 0xE + adds r0, r7, r3 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gUnknown_02038BCE + adds r2, 0x4 + adds r0, r7, r2 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =gUnknown_0203C7B4 + adds r3, 0x4 + adds r0, r7, r3 + ldrh r0, [r0] + strb r0, [r1] + ldr r1, =gUnknown_0203C7AD + ldr r3, =gSaveBlock2Ptr + ldr r0, [r3] + ldr r2, =0x00000ca9 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 30 + lsrs r0, 30 + strb r0, [r1] + ldr r1, =gUnknown_0203C7AE + ldr r2, =0x000004fd + adds r0, r7, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, =gUnknown_0203C7AF + adds r2, 0x1 + adds r0, r7, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r2, =gUnknown_0203C7B6 + ldr r1, =0x000004ff + adds r0, r7, r1 + ldrb r1, [r0] + lsls r0, r1, 31 + lsrs r0, 31 + strb r0, [r2] + ldr r0, =gUnknown_0203C7B7 + lsls r1, 28 + lsrs r1, 29 + strb r1, [r0] + ldr r1, =gUnknown_0203C7BC + movs r2, 0xA0 + lsls r2, 3 + adds r0, r7, r2 + ldr r0, [r0] + str r0, [r1] + movs r6, 0 + mov r10, r3 + ldr r2, =gUnknown_0203CCD9 + ldr r3, =gUnknown_0203CCDA + ldr r0, =gUnknown_03001278 + mov r8, r0 + ldr r1, =gUnknown_03001279 + mov r9, r1 + ldr r5, =gUnknown_0203CCD1 + ldr r0, =0x00000504 + adds r4, r7, r0 +_08185CE2: + adds r0, r6, r5 + adds r1, r4, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x7 + ble _08185CE2 + ldr r1, =0x0000050c + adds r0, r7, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, =0x0000050d + adds r0, r7, r2 + ldrb r0, [r0] + strb r0, [r3] + ldr r3, =0x0000051a + adds r0, r7, r3 + ldrb r0, [r0] + mov r1, r8 + strb r0, [r1] + adds r2, 0xE + adds r0, r7, r2 + ldrb r0, [r0] + mov r3, r9 + strb r0, [r3] + ldr r0, =0x0000050e + adds r1, r7, r0 + ldr r4, =gUnknown_0203CCDC + movs r6, 0x5 +_08185D1C: + ldrh r0, [r1] + strh r0, [r4] + adds r1, 0x2 + adds r4, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _08185D1C + mov r1, r10 + ldr r2, [r1] + ldr r3, =0x000004fc + adds r0, r7, r3 + ldrb r0, [r0] + ldr r1, =0x00000ca9 + adds r2, r1 + movs r1, 0x3 + ands r1, r0 + ldrb r3, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + movs r6, 0 + ldr r2, =0x00000297 + mov r10, r2 + ldr r3, =gUnknown_0203BD34 + mov r9, r3 + movs r0, 0xA6 + lsls r0, 2 + mov r8, r0 + ldr r1, =0x0000051c + adds r5, r7, r1 +_08185D5C: + adds r2, r6, 0x1 + mov r0, r8 + muls r0, r6 + adds r1, r0, r5 + mov r3, r9 + adds r4, r0, r3 + mov r3, r10 + adds r3, 0x1 +_08185D6C: + ldrb r0, [r1] + strb r0, [r4] + adds r1, 0x1 + adds r4, 0x1 + subs r3, 0x1 + cmp r3, 0 + bne _08185D6C + adds r6, r2, 0 + cmp r6, 0x3 + ble _08185D5C + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185B60 + + thumb_func_start sub_8185E24 +sub_8185E24: @ 8185E24 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0xF8 + lsls r0, 4 + bl AllocZeroed + adds r4, r0, 0 + bl start_ov_to_battle_anim + cmp r0, 0x1 + bne _08185E6E + bl sub_8185EB8 + adds r0, r4, 0 + bl sub_8185B60 + ldr r0, =sub_8185B1C + movs r1, 0x1 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x80 + strh r0, [r1, 0x8] + ldr r0, =gUnknown_0203C7B0 + str r5, [r0] + movs r0, 0 + bl PlayNewMapMusic__default_for_battle + ldr r0, =sub_8185E8C + bl SetMainCallback2 +_08185E6E: + adds r0, r4, 0 + bl Free + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185E24 + + thumb_func_start sub_8185E8C +sub_8185E8C: @ 8185E8C + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_8185E8C + + thumb_func_start sub_8185EA0 +sub_8185EA0: @ 8185EA0 + ldr r0, =gUnknown_0203C7AE + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8185EA0 + + thumb_func_start sub_8185EAC +sub_8185EAC: @ 8185EAC + ldr r0, =gUnknown_0203C7AF + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8185EAC + + thumb_func_start sub_8185EB8 +sub_8185EB8: @ 8185EB8 + push {r4-r6,lr} + movs r5, 0 + ldr r6, =gUnknown_0203C7C0 +_08185EBE: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + adds r0, r4, r6 + ldr r1, =gPlayerParty + adds r1, r4, r1 + movs r2, 0x64 + bl memcpy + ldr r0, =gUnknown_0203CA18 + adds r0, r4, r0 + ldr r1, =gEnemyParty + adds r4, r1 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x1 + cmp r5, 0x5 + ble _08185EBE + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185EB8 + + thumb_func_start sub_8185EFC +sub_8185EFC: @ 8185EFC + push {r4-r6,lr} + movs r5, 0 + ldr r6, =gPlayerParty +_08185F02: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + adds r0, r4, r6 + ldr r1, =gUnknown_0203C7C0 + adds r1, r4, r1 + movs r2, 0x64 + bl memcpy + ldr r0, =gEnemyParty + adds r0, r4, r0 + ldr r1, =gUnknown_0203CA18 + adds r4, r1 + adds r1, r4, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x1 + cmp r5, 0x5 + ble _08185F02 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185EFC + + thumb_func_start sub_8185F40 +sub_8185F40: @ 8185F40 + push {r4,r5,lr} + movs r2, 0 + ldr r0, =gLinkPlayers + ldr r3, =gActiveBank + ldrh r1, [r0, 0x18] + adds r4, r0, 0 + ldrb r0, [r3] + cmp r1, r0 + beq _08185F64 + adds r1, r4, 0 +_08185F54: + adds r1, 0x1C + adds r2, 0x1 + cmp r2, 0x3 + bgt _08185F64 + ldrh r0, [r1, 0x18] + ldrb r5, [r3] + cmp r0, r5 + bne _08185F54 +_08185F64: + cmp r2, 0x4 + bne _08185F74 + movs r0, 0 + b _08185F7E + .pool +_08185F74: + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x13] +_08185F7E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8185F40 + + thumb_func_start sub_8185F84 +sub_8185F84: @ 8185F84 + ldr r1, =gUnknown_0203C7B5 + movs r0, 0 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_8185F84 + + thumb_func_start sub_8185F90 +sub_8185F90: @ 8185F90 + lsls r0, 16 + lsrs r0, 16 + ldr r2, =gUnknown_0203C7B5 + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + lsls r0, 16 + lsrs r0, 31 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + bx lr + .pool + thumb_func_end sub_8185F90 + + thumb_func_start sub_8185FAC +sub_8185FAC: @ 8185FAC + ldr r0, =gUnknown_0203C7B5 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8185FAC + + thumb_func_start sub_8185FB8 +sub_8185FB8: @ 8185FB8 + ldr r0, =gUnknown_0203C7B6 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8185FB8 + + thumb_func_start sub_8185FC4 +sub_8185FC4: @ 8185FC4 + ldr r0, =gUnknown_0203C7B7 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_8185FC4 + + thumb_func_start sub_8185FD0 +sub_8185FD0: @ 8185FD0 + push {r4-r7,lr} + ldr r4, =gActiveBank + ldrb r0, [r4] + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0818601C + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x02000002 + ands r0, r1 + cmp r0, 0 + bne _0818601C + ldr r0, =gUnknown_0203C7AC + ldrb r0, [r0] + cmp r0, 0x2 + beq _0818601C + movs r3, 0 + ldr r7, =gUnknown_0203CC70 + adds r6, r4, 0 + ldr r5, =gBattleMons + 0xC + movs r4, 0x58 +_08186000: + lsls r2, r3, 1 + ldrb r1, [r6] + lsrs r0, r1, 1 + lsls r0, 3 + adds r0, r2, r0 + adds r0, r7 + muls r1, r4 + adds r2, r1 + adds r2, r5 + ldrh r1, [r2] + strh r1, [r0] + adds r3, 0x1 + cmp r3, 0x3 + ble _08186000 +_0818601C: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8185FD0 + + thumb_func_start sub_818603C +sub_818603C: @ 818603C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x50 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + ldr r0, =gBattleTypeFlags + ldr r0, [r0] + ldr r1, =0x02000002 + ands r0, r1 + cmp r0, 0 + beq _0818605C + b _081863FC +_0818605C: + movs r0, 0 + mov r10, r0 + b _081863F2 + .pool +_0818606C: + mov r1, r10 + lsls r4, r1, 24 + lsrs r5, r4, 24 + adds r0, r5, 0 + bl GetBankSide + lsls r0, 24 + lsrs r0, 24 + str r4, [sp, 0x4C] + mov r2, r10 + adds r2, 0x1 + str r2, [sp, 0x38] + cmp r0, 0x1 + bne _0818608A + b _081863EE +_0818608A: + ldr r3, [sp, 0x24] + cmp r3, 0x1 + bne _0818611E + movs r5, 0 + ldr r4, =gUnknown_0203CC70 + mov r0, r10 + asrs r6, r0, 31 + subs r0, r6 + asrs r0, 1 + lsls r0, 3 + adds r2, r0, r4 + movs r1, 0x58 + mov r0, r10 + muls r0, r1 + ldr r3, =gBattleMons + 0xC + adds r1, r0, r3 +_081860AA: + ldrh r0, [r1] + ldrh r4, [r2] + cmp r0, r4 + bne _081860BC + adds r2, 0x2 + adds r1, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _081860AA +_081860BC: + cmp r5, 0x4 + bne _081860C2 + b _081863EE +_081860C2: + ldr r1, [sp, 0x4C] + lsrs r0, r1, 24 + movs r1, 0x6 + bl sub_8184FBC + movs r5, 0 + ldr r2, =gUnknown_0203CC70 + mov r8, r2 + movs r3, 0x58 + mov r7, r10 + muls r7, r3 + mov r4, r10 + subs r0, r4, r6 + asrs r4, r0, 1 +_081860DE: + movs r2, 0 + lsls r0, r5, 1 + adds r5, 0x1 + adds r0, r7 + ldr r1, =gBattleMons + 0xC + adds r3, r0, r1 + lsls r0, r4, 3 + mov r6, r8 + adds r1, r0, r6 +_081860F0: + ldrh r0, [r3] + ldrh r6, [r1] + cmp r0, r6 + bne _08186110 + lsls r1, r2, 24 + lsrs r1, 24 + ldr r2, [sp, 0x4C] + lsrs r0, r2, 24 + bl sub_8184FBC + b _08186118 + .pool +_08186110: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _081860F0 +_08186118: + cmp r5, 0x3 + ble _081860DE + b _081863EE +_0818611E: + ldr r3, =gUnknown_0203BD34 + ldr r1, =gUnknown_0203C794 + mov r4, r10 + lsls r2, r4, 1 + adds r1, r2, r1 + movs r0, 0xA6 + lsls r0, 2 + mov r6, r10 + muls r6, r0 + adds r0, r6, 0 + ldrh r1, [r1] + adds r0, r1 + adds r0, r3 + ldrb r0, [r0] + str r2, [sp, 0x44] + cmp r0, 0x6 + beq _08186142 + b _081863EE +_08186142: + adds r0, r5, 0 + bl sub_8185054 + movs r5, 0 + mov r0, sp + adds r0, 0x4 + str r0, [sp, 0x28] + mov r1, sp + adds r1, 0xC + str r1, [sp, 0x30] + mov r2, sp + adds r2, 0x14 + str r2, [sp, 0x34] + mov r3, sp + adds r3, 0x18 + str r3, [sp, 0x3C] + mov r4, sp + adds r4, 0x8 + str r4, [sp, 0x2C] + mov r6, r10 + lsls r6, 3 + str r6, [sp, 0x48] + movs r1, 0x58 + mov r0, r10 + muls r0, r1 + ldr r2, =gBattleMons + adds r0, r2 + adds r6, r0, 0 + adds r6, 0x3B + movs r4, 0x3 +_0818617E: + mov r0, sp + adds r3, r0, r5 + ldrb r1, [r6] + lsls r2, r5, 1 + adds r0, r4, 0 + lsls r0, r2 + ands r1, r0 + asrs r1, r2 + strb r1, [r3] + adds r5, 0x1 + cmp r5, 0x3 + ble _0818617E + movs r5, 0 + ldr r1, =gBattleMons + mov r9, r1 + movs r2, 0x58 + mov r7, r10 + muls r7, r2 + ldr r4, [sp, 0x28] + ldr r6, [sp, 0x30] +_081861A6: + ldr r3, [sp, 0x4C] + lsrs r0, r3, 24 + bl sub_8185054 + strb r0, [r4] + ldrb r0, [r4] + lsls r0, 1 + adds r0, r7 + movs r1, 0xC + add r1, r9 + mov r8, r1 + add r0, r8 + ldrh r0, [r0] + strh r0, [r6] + ldr r2, [sp, 0x34] + adds r1, r2, r5 + ldrb r0, [r4] + adds r0, r7 + ldr r3, =gBattleMons + 0x24 + adds r0, r3 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, [sp, 0x3C] + adds r1, r0, r5 + ldrb r0, [r4] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [sp, 0x2C] + adds r3, r1, r5 + ldr r2, [sp, 0x48] + mov r1, r10 + subs r0, r2, r1 + lsls r0, 2 + ldr r2, =gDisableStructs + adds r0, r2 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + lsrs r1, r5 + strb r1, [r3] + adds r4, 0x1 + adds r6, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _081861A6 + movs r5, 0 + movs r3, 0xC + negs r3, r3 + add r3, r8 + mov r12, r3 + ldr r4, =gDisableStructs + mov r9, r4 + movs r6, 0x58 + mov r1, r10 + muls r1, r6 + mov r0, r8 + adds r0, 0x18 + adds r4, r1, r0 + adds r3, r1, 0 + mov r7, r8 + ldr r6, [sp, 0x34] + ldr r2, [sp, 0x30] +_0818622C: + adds r1, r3, r7 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r6, r5 + ldrb r0, [r0] + strb r0, [r4] + adds r4, 0x1 + adds r3, 0x2 + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _0818622C + movs r0, 0x58 + mov r4, r10 + muls r4, r0 + mov r1, r12 + adds r0, r4, r1 + adds r0, 0x3B + movs r1, 0 + strb r1, [r0] + ldr r2, [sp, 0x48] + mov r6, r10 + subs r3, r2, r6 + lsls r3, 2 + mov r0, r9 + adds r2, r3, r0 + ldrb r1, [r2, 0x18] + movs r0, 0xF + ands r0, r1 + strb r0, [r2, 0x18] + movs r5, 0 + ldr r1, =gBattleMons + adds r4, r1 + adds r4, 0x3B + ldr r0, =gDisableStructs + adds r6, r3, r0 +_08186274: + ldr r2, [sp, 0x3C] + adds r0, r2, r5 + ldrb r0, [r0] + lsls r1, r5, 1 + lsls r0, r1 + ldrb r1, [r4] + orrs r0, r1 + strb r0, [r4] + ldrb r2, [r6, 0x18] + lsrs r3, r2, 4 + ldr r1, [sp, 0x2C] + adds r0, r1, r5 + ldrb r1, [r0] + lsls r1, r5 + orrs r1, r3 + lsls r1, 4 + movs r0, 0xF + ands r0, r2 + orrs r0, r1 + strb r0, [r6, 0x18] + adds r5, 0x1 + cmp r5, 0x3 + ble _08186274 + movs r2, 0x58 + mov r0, r10 + muls r0, r2 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + beq _081862BC + b _081863CA +_081862BC: + movs r5, 0 + mov r3, sp + adds r3, 0x20 + str r3, [sp, 0x40] + ldr r0, =gBattlePartyID + ldr r4, [sp, 0x44] + adds r6, r4, r0 +_081862CA: + ldrh r1, [r6] + movs r0, 0x64 + muls r0, r1 + ldr r4, =gPlayerParty + adds r0, r4 + movs r1, 0x15 + movs r2, 0 + bl GetMonData + mov r1, sp + adds r3, r1, r5 + lsls r2, r5, 1 + movs r1, 0x3 + lsls r1, r2 + ands r0, r1 + lsrs r0, r2 + strb r0, [r3] + adds r5, 0x1 + cmp r5, 0x3 + ble _081862CA + movs r5, 0 + ldr r0, =gBattlePartyID + ldr r2, [sp, 0x44] + adds r7, r2, r0 + movs r3, 0x64 + mov r9, r3 + mov r8, r4 + ldr r4, [sp, 0x28] + ldr r6, [sp, 0x30] +_08186304: + ldrh r0, [r7] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + ldrb r1, [r4] + adds r1, 0xD + movs r2, 0 + bl GetMonData + strh r0, [r6] + ldrh r0, [r7] + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + add r0, r8 + ldrb r1, [r4] + adds r1, 0x11 + movs r2, 0 + bl GetMonData + ldr r3, [sp, 0x34] + adds r1, r3, r5 + strb r0, [r1] + ldr r0, [sp, 0x3C] + adds r1, r0, r5 + ldrb r0, [r4] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + adds r4, 0x1 + adds r6, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _08186304 + movs r5, 0 + ldr r0, =gBattlePartyID + ldr r1, [sp, 0x44] + adds r7, r1, r0 + movs r2, 0x64 + mov r9, r2 + ldr r3, =gPlayerParty + mov r8, r3 + ldr r6, [sp, 0x30] + adds r6, 0x8 + ldr r4, [sp, 0x30] +_08186360: + ldrh r0, [r7] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + adds r1, r5, 0 + adds r1, 0xD + adds r2, r4, 0 + bl SetMonData + ldrh r0, [r7] + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + add r0, r8 + adds r1, r5, 0 + adds r1, 0x11 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + adds r5, 0x1 + cmp r5, 0x3 + ble _08186360 + movs r0, 0 + ldr r3, [sp, 0x40] + strb r0, [r3] + movs r5, 0 + ldr r4, =gBattlePartyID + ldr r6, =gPlayerParty + ldr r3, [sp, 0x3C] + ldr r2, [sp, 0x40] +_081863A2: + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r5, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r5, 0x1 + cmp r5, 0x3 + ble _081863A2 + ldr r1, [sp, 0x44] + adds r0, r1, r4 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + adds r0, r6 + movs r1, 0x15 + ldr r2, [sp, 0x40] + bl SetMonData +_081863CA: + ldr r2, =gUnknown_02024274 + ldr r3, [sp, 0x44] + adds r2, r3, r2 + ldr r0, =gBattleStruct + ldr r0, [r0] + add r0, r10 + adds r0, 0x80 + ldrb r0, [r0] + lsls r0, 1 + movs r4, 0x58 + mov r1, r10 + muls r1, r4 + adds r0, r1 + ldr r1, =gBattleMons + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] +_081863EE: + ldr r6, [sp, 0x38] + mov r10, r6 +_081863F2: + ldr r0, =gNoOfAllBanks + ldrb r0, [r0] + cmp r10, r0 + bge _081863FC + b _0818606C +_081863FC: + add sp, 0x50 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_818603C + + thumb_func_start GetAiScriptsInRecordedBattle +GetAiScriptsInRecordedBattle: @ 8186438 + ldr r0, =gUnknown_0203C7BC + ldr r0, [r0] + bx lr + .pool + thumb_func_end GetAiScriptsInRecordedBattle + + thumb_func_start sub_8186444 +sub_8186444: @ 8186444 + ldr r1, =gUnknown_0203CCD0 + movs r0, 0x1 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_8186444 + + thumb_func_start rfu_lacks_rfufunc +rfu_lacks_rfufunc: @ 8186450 + push {lr} + movs r1, 0 + ldr r0, =gUnknown_0203CCD0 + ldrb r0, [r0] + cmp r0, 0 + bne _0818645E + movs r1, 0x1 +_0818645E: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end rfu_lacks_rfufunc + + thumb_func_start sub_8186468 +sub_8186468: @ 8186468 + push {r4,r5,lr} + adds r3, r0, 0 + movs r2, 0 + ldr r5, =gUnknown_03001278 + ldr r4, =gUnknown_0203CCD1 +_08186472: + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x7 + ble _08186472 + movs r0, 0xFF + strb r0, [r3, 0x7] + ldrb r1, [r5] + adds r0, r3, 0 + bl ConvertInternationalString + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8186468 + + thumb_func_start sub_818649C +sub_818649C: @ 818649C + ldr r0, =gUnknown_0203CCD9 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_818649C + + thumb_func_start sub_81864A8 +sub_81864A8: @ 81864A8 + ldr r0, =gUnknown_0203CCDA + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81864A8 + + thumb_func_start sub_81864B4 +sub_81864B4: @ 81864B4 + ldr r0, =gUnknown_03001278 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81864B4 + + thumb_func_start sub_81864C0 +sub_81864C0: @ 81864C0 + ldr r0, =gUnknown_03001279 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_81864C0 + + thumb_func_start sub_81864CC +sub_81864CC: @ 81864CC + ldr r0, =gUnknown_0203CCE8 + ldr r1, =gBattleOutcome + ldrb r1, [r1] + strb r1, [r0] + bx lr + .pool + thumb_func_end sub_81864CC + + thumb_func_start sub_81864E0 +sub_81864E0: @ 81864E0 + ldr r0, =gUnknown_0203CCDC + bx lr + .pool + thumb_func_end sub_81864E0 + + .align 2, 0 @ Don't pad with nop. |